From: Matt Caswell Date: Wed, 10 Apr 2019 12:54:38 +0000 (+0100) Subject: Make implementation of blocksize, iv_length and key_length mandatory X-Git-Tag: openssl-3.0.0-alpha1~2151 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=dcd446f1005f5c99768965a11c10dd6c7b6aee59;p=oweals%2Fopenssl.git Make implementation of blocksize, iv_length and key_length mandatory Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/8700) --- diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c index 69cd577800..4426a81629 100644 --- a/crypto/evp/evp_enc.c +++ b/crypto/evp/evp_enc.c @@ -1109,12 +1109,16 @@ static void *evp_cipher_from_dispatch(int nid, const OSSL_DISPATCH *fns, } if ((fnciphcnt != 0 && fnciphcnt != 3 && fnciphcnt != 4) || (fnciphcnt == 0 && cipher->ccipher == NULL) - || fnctxcnt != 2) { + || fnctxcnt != 2 + || cipher->blocksize == NULL + || cipher->iv_length == NULL + || cipher->key_length == NULL) { /* * In order to be a consistent set of functions we must have at least * a complete set of "encrypt" functions, or a complete set of "decrypt" * functions, or a single "cipher" function. In all cases we need a - * complete set of context management functions + * complete set of context management functions, as well as the + * blocksize, iv_length and key_length functions. */ EVP_CIPHER_meth_free(cipher); EVPerr(EVP_F_EVP_CIPHER_FROM_DISPATCH, EVP_R_INVALID_PROVIDER_FUNCTIONS);