]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Reject inappropriate private key encryption ciphers.
authorDr. Stephen Henson <steve@openssl.org>
Sat, 23 Apr 2016 12:33:05 +0000 (13:33 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 27 Apr 2016 23:07:20 +0000 (00:07 +0100)
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 <emilia@openssl.org>
(cherry picked from commit d78df5dfd650e6de159a19a033513481064644f5)

crypto/pem/pem_lib.c

index 55071616e203bb57aff408569e819cc9f55704a1..ab45a84fa26596a55c0c6e58a70096329fbece6d 100644 (file)
@@ -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;
         }