From openssl CVS, "Make S/MIME encrypt work again." --- openssl-0.9.7d/crypto/pkcs7/pk7_doit.c.orig 2003-11-10 02:29:27.000000000 +0100 +++ openssl-0.9.7d/crypto/pkcs7/pk7_doit.c 2004-06-01 21:42:38.199995776 +0200 @@ -257,10 +257,15 @@ bio=BIO_new(BIO_s_null()); else { - ASN1_OCTET_STRING *os; - os = PKCS7_get_octet_string(p7->d.sign->contents); - if (os && os->length > 0) - bio = BIO_new_mem_buf(os->data, os->length); + if (PKCS7_type_is_signed(p7)) + { + ASN1_OCTET_STRING *os; + os = PKCS7_get_octet_string( + p7->d.sign->contents); + if (os && os->length > 0) + bio = BIO_new_mem_buf(os->data, + os->length); + } if(bio == NULL) { bio=BIO_new(BIO_s_mem());