If the entire cert chain is in the signed document the error i get is<br>msg=self signed certificate in certificate chain<br><br>if i remove the Root certificate from the chain in the signed xml file, and pass a root certificate as trusted, then i get the error as <br>
msg=invalid CA certificate<br><br>is there something that i am missing or this is not the right way to do?<br><br>thanks :)<br><br>Naval.<br><br><div class="gmail_quote">On Tue, Dec 21, 2010 at 9:24 PM, Aleksey Sanin <span dir="ltr"><<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">What errors do you get?<br>
<br>
Aleksey<div><div></div><div class="h5"><br>
<br>
On 12/21/10 12:38 AM, Naval Patel wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div class="h5">
Hi,<br>
<br>
Its been quite some time i am modifying my code to allow a signed xml<br>
document containing the entire chain of certificates from "Local cert"<br>
through CAs and ultimately the Root CA. I have debugged the code till<br>
the call goes to *X509_verify_cert(&xsc)*. I have observed that for each<br>
*<X509Certificate> *the xmlsec adds the certificate to the X509_STACK.<br>
The function call (*xmlSecOpenSSLX509FindNextChainCert*) inside the *for<br>
loop* inside the function *xmlSecOpenSSLX509StoreVerify* with the<br>
comment [/* get one cert after another and try to verify */] returns<br>
NULL only when it finds that the certificate does not extend any other<br>
certificates.<br>
<br>
I have RootCa.pem > CA1.pem > CA2.pem > signerCert.pem.<br>
<br>
If i simply execute the signeddoc.xml, I am receiving the error<br>
[*msg=invalid CA certificate* for CA2.pem] ... the command used is<br>
*xmlsec.exe verify --trusted-pem RootCa.pem signeddoc.xml*<br>
I broke the certificate chain by removing RootCa.pem from the<br>
signeddoc.xml and the error i received is same as of the above case<br>
*xmlsec.exe verify --trusted-pem RootCa.pem signeddoc.xml<br>
*I changed the command for the above file as *xmlsec.exe verify<br>
--trusted-pem RootCa.pem --trusted-pem CA2.pem signeddoc.xml*, still the<br>
error was same<br>
I maintained only CA1, CA2 and signerCert.pem in signeddoc.xml and used<br>
the command *xmlsec.exe verify --trusted-pem RootCa.pem --trusted-pem<br>
CA1.pem --trusted-pem CA2.pem signeddoc.xml<br>
*Now I removed CA2 from the signeddoc.xml and kept only CA1 and<br>
signerCert.pem, and used the command *xmlsec.exe verify --trusted-pem<br>
RootCa.pem --trusted-pem CA1.pem --trusted-pem CA2.pem signeddoc.xml ...<br>
*i could see that the verification was passing.<br>
<br>
I have deviced another way too to make this work, but i am not sure how<br>
good this way is...<br>
<br>
before passing the signeddoc.xml to xmlsec, I load the x509certificate<br>
as trusted using the api *xmlSecCryptoAppKeysMngrCertLoadMemory* but the<br>
problem is not solved because the same document continues to be<br>
evaluated by xmlsec later and the results produced are same.<br>
<br>
Another alternative i thought was once the function<br>
*xmlSecOpenSSLX509FindNextChainCert *returns NULL, I would remove the<br>
other certificates from the STACK. That way, i will have trusted certs<br>
loaded to the global stack and while signerCert.pem is verified.<br>
<br>
Please let me know your suggestions, I will try your suggested methods.<br>
<br>
And thanks a lot for this library, it had done wonders for my work till<br>
now :)<br>
<br>
I had read an email from the archive<br>
[*<a href="http://www.aleksey.com/pipermail/xmlsec/2008/008326.html*" target="_blank">http://www.aleksey.com/pipermail/xmlsec/2008/008326.html*</a>], but i<br>
could not get the break through yet :(<br>
<br>
Regards,<br>
Naval<br>
<br>
<br>
<br></div></div>
_______________________________________________<br>
xmlsec mailing list<br>
<a href="mailto:xmlsec@aleksey.com" target="_blank">xmlsec@aleksey.com</a><br>
<a href="http://www.aleksey.com/mailman/listinfo/xmlsec" target="_blank">http://www.aleksey.com/mailman/listinfo/xmlsec</a><br>
</blockquote>
</blockquote></div><br><br clear="all"><br>-- <br>Naval Patel<br>~ have fun ~<br>