Hi forks,
I've been using OpenSSL 0.9.8h, I use it for SMIME sign/verify. I've just
upgraded to OpenSSL 0.9.8i and my code doesn't work anymore.
The error is: [error:21075081:PKCS7 routines:PKCS7_verify:smime text error]
After spending sometime to investigate, I see the only diff is: the SMIME_text
function (crypto/asn1/asn_mime.c) in 0.9.8i was added the check for len
variable:
if (len 0)
return 0;
I don't know why we need this check. But my code works on 0.9.8h (the one
without the check). Could someone give me a hint?
Here's is the code for signing:
...
flags = PKCS7_DETACHED;
flags |= PKCS7_STREAM;
flags |= PKCS7_NOCERTS;
flags |= PKCS7_TEXT;
p7 = PKCS7_sign(pCert,pPrivKey,NULL,in, flags);
if (!p7){
ret = ERRROR_INVALID;
goto done;
}
SMIME_write_PKCS7(out,p7,in, flags);
And here the code for verifying:
...
flags = PKCS7_NOVERIFY;
flags |= PKCS7_TEXT;
p7 = SMIME_read_PKCS7(in, indata);
if (!p7){
ret = ERROR_INVALID;
goto done;
}
certs = sk_X509_new_null();
sk_X509_push(certs,pCert);
if (PKCS7_verify(p7,certs,NULL,indata,out,flags)){
...
Thanks!
__
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager [EMAIL PROTECTED]