> > 696:error:2106B00B:PKCS7 routines:PKCS7_dataVerify:X509
> > lib:.\crypto\pkcs7\pk7_doit.c:684:
> 
> 
> Obviously, X509_verify_cert() failed this time, probably there was no
> callback function installed catching the verification failures.
> You must use a verify_callback to learn about the details of 
> the failure.
> But well, you probably already now them from the discussion above.

Ah, thank you! I had this callback installed in my old version, but not
my new version - I think I removed it once I believed the code debugged,
concluding it was no longer needed. Wrong.

So, with the callback in place, I do indeed get more detailed errors.
I've added the lines of dashes for clarity, and numbered each block of
the verify debug so I can refer to them below:

[1]
depth=2 /C=US/O=VeriSign, Inc./OU=Class 1 Public Primary Certification
Authority 
verify return:1
------------------------------------------------------------------------
[2]
depth=1 /O=VeriSign, Inc./OU=VeriSign Trust Network/OU=www.verisign.co
m/repository/RPA Incorp. By Ref.,LIAB.LTD(c)98/CN=VeriSign Class 1 CA
Individual Subscriber-Persona Not Validated
verify return:1
-----------------------------------------------------------------------
[3]
depth=0 /O=VeriSign, Inc./OU=VeriSign Trust Network/OU=www.verisign.co
m/repository/RPA Incorp. by Ref.,LIAB.LTD(c)98/OU=Persona Not Validated
/OU=Digital ID Class 1 - Microsoft Full Service/CN=Robert Steele/Email=
[EMAIL PROTECTED]
verify error:num=10:certificate has expired
verify return:1
-----------------------------------------------------------------------
[4]
depth=0 /O=VeriSign, Inc./OU=VeriSign Trust Network/OU=www.verisign.co
m/repository/RPA Incorp. by Ref.,LIAB.LTD(c)98/OU=Persona Not Validate
d/OU=Digital ID Class 1 - Microsoft Full Service/CN=Robert Steele/Emai
[EMAIL PROTECTED]
verify return:1
-----------------------------------------------------------------------

Now, obviously #3 is a certificate that has expired - but are 1,2, and
4 references to other, distinct certificates that are valid? I don't see
any way to distinguish these Certificates from each other at this level.

Part of my problem clearly is I do not know which of these certificates,
if any, is the one I would need to use to validate my signature. Is it 
possible to examine my signing certificate, determine which CA
certificate
was used to sign it, and then download it from VeriSign? This would make
my testing much clearer, I think.

Anyhow, adding the callback routine now changes the error I get back
from
OpenSSL:

1904:error:04077068:rsa routines:RSA_verify:bad signature:.\crypto\rs
a\rsa_sign.c:210:
1904:error:21071069:PKCS7 routines:PKCS7_signatureVerify:signature fail
ure:.\crypto\pkcs7\pk7_doit.c:806:

(If I'm right that adding the callback has changed behavior, why is
this?)

It seems to be complaining that the signature itself is bad. (This is 
certainly possible. Although it was a VeriSign product that produced the
signature, I may be presenting the detached data it is signing off on
incorrectly.) 

Put very specifically, does this error mean that a corresponding and
valid certificate was found, but that the signature itself is bad?

I apologize for the scattershot nature of my questions, and appreciate
all and any help.

- Bob



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to