EVP_CipherInit(): use EVP_CIPHER_CTX_cleanup()
authortb <tb@openbsd.org>
Sun, 10 Sep 2023 16:53:56 +0000 (16:53 +0000)
committertb <tb@openbsd.org>
Sun, 10 Sep 2023 16:53:56 +0000 (16:53 +0000)
commite30cae19668b74eda9fa733df75ea51f637618a5
tree23aa1c679e9dcea9d36f217688a4681e12e500b5
parent53e9b61ae4ba5ebd4fc7d86919b5dd7c10e2625f
EVP_CipherInit(): use EVP_CIPHER_CTX_cleanup()

Before EVP_CIPHER_CTX was opaque, callers could pass an uninitialized
ctx into EVP_CipherInit() and calling EVP_CIPHER_CTX_cleanup() on such
a ctx would end in tears.

The only way to initialize a ctx is by way of EVP_CIPHER_CTX_new(), on
which we can call EVP_CIPHER_CTX_cleanup() and avoid silly leaks on ctx
reuse. This also allows some simplifications in the documentation.

There are more changes of this kind that should be done all over libcrypto.
They will be tackled in subsequent commits.

"makes a lot of sense" schwarze
ok jsing
lib/libcrypto/evp/evp_enc.c