From: Dr. Stephen Henson Date: Sat, 23 Apr 2016 12:33:05 +0000 (+0100) Subject: Reject inappropriate private key encryption ciphers. X-Git-Tag: OpenSSL_1_0_1t~16 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=6dfa55ab2fbd9a0f45c3ce088b1dd61800fb03d3 Reject inappropriate private key encryption ciphers. The traditional private key encryption algorithm doesn't function properly if the IV length of the cipher is zero. These ciphers (e.g. ECB mode) are not suitable for private key encryption anyway. Reviewed-by: Emilia Käsper (cherry picked from commit d78df5dfd650e6de159a19a033513481064644f5) --- diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c index 55071616e2..ab45a84fa2 100644 --- a/crypto/pem/pem_lib.c +++ b/crypto/pem/pem_lib.c @@ -344,7 +344,7 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, if (enc != NULL) { objstr = OBJ_nid2sn(EVP_CIPHER_nid(enc)); - if (objstr == NULL) { + if (objstr == NULL || EVP_CIPHER_iv_length(enc) == 0) { PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, PEM_R_UNSUPPORTED_CIPHER); goto err; }