Add EVP_CIPHER_CTX_legacy_clear()
authortb <tb@openbsd.org>
Sun, 18 Feb 2024 15:41:50 +0000 (15:41 +0000)
committertb <tb@openbsd.org>
Sun, 18 Feb 2024 15:41:50 +0000 (15:41 +0000)
commit87da0f20d01e42fecc73a2ca1675e48d7a60d0a5
treeddbfa40b35743f06a2e90f9ee7616e9a28f4d1ca
parent60cbec2cacb68beb91c1ef6537a1bac757f77966
Add EVP_CIPHER_CTX_legacy_clear()

OpenSSL 1.1 made EVP_CIPHER_CTX_init() an alias of EVP_CIPHER_CTX_reset().
In particular, it changed signature and it would no longer leak internal
state if used on an already used ctx. On the other hand, it can't be used
for ctx on the stack.

libcrypto still has a few ctx on the stack which will be converted to heap
allocated contexts at some point. Until this is completed, we will use
EVP_CIPHER_CTX_legacy_clear() internally, so that the public API can be
changed to match OpenSSL 1.1.

ok jsing
lib/libcrypto/evp/evp_cipher.c
lib/libcrypto/evp/evp_local.h