mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
f7397f0d58
EVP_Cipher() would return whatever ctx->cipher->ccipher() returned with no regard for historical semantics. We change this to first look if there is a ctx->cipher->ccipher(), and in that case we treat the implementation as one with a custom cipher, and "translate" it's return value like this: 0 => -1, 1 => outl, where |outl| is the output length. If there is no ctx->cipher->ccipher, we treat the implementation as one without a custom cipher, call ctx->cipher->cupdate or ctx->cipher->cfinal depending on input, and return whatever they return (0 or 1). Furthermore, we add a small hack in EVP_CIPHER_flags() to check if the cipher is a provided one, and add EVP_CIPH_FLAG_CUSTOM_CIPHER to the flags to be returned if there is a cipher->ccipher. That way, provided implementations never have to set that flag themselves, all they need to do is to include a OSSL_FUNC_CIPHER_CIPHER function. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10137) |
||
---|---|---|
.. | ||
HOWTO | ||
internal | ||
man1 | ||
man3 | ||
man5 | ||
man7 | ||
dir-locals.example.el | ||
fingerprints.txt | ||
openssl-c-indent.el | ||
README |
README This file fingerprints.txt PGP fingerprints of authorised release signers standards.txt Moved to the web, https://www.openssl.org/docs/standards.html HOWTO/ A few how-to documents; not necessarily up-to-date man1/ The openssl command-line tools; start with openssl.pod man3/ The SSL library and the crypto library man5/ File formats man7/ Overviews; start with crypto.pod and ssl.pod, for example Algorithm specific EVP_PKEY documentation. Formatted versions of the manpages (apps,ssl,crypto) can be found at https://www.openssl.org/docs/manpages.html