Skip to content

Commit

Permalink
Detect symmetric crypto errors in PKCS7_decrypt.
Browse files Browse the repository at this point in the history
Thanks to Ivan Nestlerode <inestlerode@us.ibm.com> for reporting this bug.
  • Loading branch information
snhenson committed Feb 27, 2012
1 parent 04b4363 commit 236a99a
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions crypto/pkcs7/pk7_smime.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,15 +573,30 @@ int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags)
return 0;
}
ret = SMIME_text(bread, data);
if (ret > 0 && BIO_method_type(tmpmem) == BIO_TYPE_CIPHER)
{
if (!BIO_get_cipher_status(tmpmem))
ret = 0;
}
BIO_free_all(bread);
return ret;
} else {
for(;;) {
i = BIO_read(tmpmem, buf, sizeof(buf));
if(i <= 0) break;
if(i <= 0)
{
ret = 1;
if (BIO_method_type(tmpmem) == BIO_TYPE_CIPHER)
{
if (!BIO_get_cipher_status(tmpmem))
ret = 0;
}

break;
}
BIO_write(data, buf, i);
}
BIO_free_all(tmpmem);
return 1;
return ret;
}
}

0 comments on commit 236a99a

Please sign in to comment.