1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00
putty-source/crypto
Simon Tatham dbc77dbd7a Change the rules for how we free a linked cipher and MAC.
In the situation where a MAC and cipher implementation are tied
together by being facets of the same underlying object (used by the
inseparable ChaCha20 + Poly1305 pair), previously we freed them by
having the cipher_free function actually do the freeing, having the
mac_free function do nothing, and taking great care to call those in
the right order. (Otherwise, the mac_free function dereferences a
no-longer-valid vtable pointer and doesn't get as far as _finding out_
that it doesn't have to do anything.)

That's a time bomb in general, and especially awkward in situations
like testcrypt where we don't get precise control over freeing order
in any case. So I've replaced that system with one in which there are
two flags in the ChaCha20-Poly1305 structure, saying whether each of
the cipher and MAC facets is currently considered to be allocated.
When the last of those flags is cleared, the object is actually freed.
So now they can be freed in either order.
2022-08-16 18:22:29 +01:00
..
aes-common.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
aes-neon.c Formatting: realign run-on parenthesised stuff. 2022-08-03 20:48:46 +01:00
aes-ni.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
aes-select.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
aes-sw.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
aes.h Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
arcfour.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
argon2.c Fix a batch of typos in comments and docs. 2022-01-03 06:40:51 +00:00
bcrypt.c Expose openssh_bcrypt() to testcrypt, and test it. 2021-12-24 10:13:28 +00:00
blake2.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
blowfish.c Formatting: remove spurious spaces in 'type * var'. 2022-08-03 20:48:46 +01:00
blowfish.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
chacha20-poly1305.c Change the rules for how we free a linked cipher and MAC. 2022-08-16 18:22:29 +01:00
CMakeLists.txt Family of key types for OpenSSH certificates. 2022-04-25 15:09:31 +01:00
crc32.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
des.c Formatting: realign run-on parenthesised stuff. 2022-08-03 20:48:46 +01:00
diffie-hellman.c Use C99 named initialisers in all ssh_kex instances. 2022-04-15 17:46:06 +01:00
dsa.c Formatting: realign run-on parenthesised stuff. 2022-08-03 20:48:46 +01:00
ecc-arithmetic.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
ecc-ssh.c Formatting: realign run-on parenthesised stuff. 2022-08-03 20:48:46 +01:00
ecc.h testcrypt: adjust some function parameter names. 2021-11-21 22:19:01 +00:00
hash_simple.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
hmac.c Generalise strbuf_catf() into put_fmt(). 2021-11-19 11:32:47 +00:00
mac_simple.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
mac.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
md5.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
mpint_i.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
mpint.c Utility function mp_resize. 2022-04-15 17:46:06 +01:00
ntru.c Formatting: realign run-on parenthesised stuff. 2022-08-03 20:48:46 +01:00
ntru.h Implement OpenSSH 9.x's NTRU Prime / Curve25519 kex. 2022-04-15 17:46:06 +01:00
openssh-certs.c Certificate-aware handling of key fingerprints. 2022-08-05 18:08:59 +01:00
prng.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
pubkey-pem.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
pubkey-ppk.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
pubkey-ssh1.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
rsa.c Pageant core: separate public and private key storage. 2022-08-06 11:34:36 +01:00
sha1-common.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha1-neon.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha1-ni.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha1-select.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha1-sw.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha1.h Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha3.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00
sha256-common.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha256-neon.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha256-ni.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha256-select.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha256-sw.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha256.h Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha512-common.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha512-neon.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha512-select.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha512-sw.c Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
sha512.h Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
xdmauth.c Move crypto into its own subdirectory. 2021-04-21 21:55:26 +01:00