Here is a link to an online generator of signed documents that will demonstrate the behaviour I described previously:<br><br><a href="http://www.cinecert.com/dci_ref_01/">http://www.cinecert.com/dci_ref_01/</a><br><br>Is there perhaps something about these documents that means xmlsec is unable to populate a store of untrusted certificates?<br>
<br>Many thanks for your help already.<br><br><br><div class="gmail_quote">On Feb 14, 2008 5:29 PM, Aleksey Sanin &lt;<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The error indicates that verification of one of the certificate<br>chains failed but xmlsec was able to extract the key either from<br>another certificate chain or from some other place. Hard to say<br>more w/o looking at the document.<br>
<br>Aleksey<br><div><div></div><div class="Wj3C7c"><br><br><br>Paul Keeler wrote:<br>&gt; I would be grateful if somone could help me with this problem. &nbsp;I have a<br>&gt; signed document which reports that it verifies ok, but also gives an<br>
&gt; error message: &quot;unable to get local issuer certificate&quot;. &nbsp;The same thing<br>&gt; happens both running from my own application and calling xmlsec from the<br>&gt; command line:<br>&gt;<br>&gt; xmlsec1 --verify --id-attr:&lt;my_ID_attribute_name&gt;<br>
&gt; &lt;my_node_namespace_uri&gt;:&lt;my_first_node_name&gt;<br>&gt; --id-attr:&lt;my_ID_attribute_name&gt;<br>&gt; &lt;my_node_namespace_uri&gt;:&lt;my_second_node_name&gt; --trusted-pem<br>&gt; &lt;my_trusted_root_pem&gt; &nbsp;&lt;my_signed_document&gt;<br>
&gt;<br>&gt; This is the result:<br>&gt;<br>&gt; func=xmlSecOpenSSLX509StoreVerify:file=x509vfy.c:line=351:obj=x509-store:subj=unknown:error=71:certificate<br>&gt; verification failed:err=20;msg=unable to get local issuer certificate<br>
&gt; OK<br>&gt; SignedInfo References (ok/all): 2/2<br>&gt; Manifests References (ok/all): 0/0<br>&gt;<br>&gt; The verification seems to have been successful (indicated by &quot;OK&quot;), but<br>&gt; clearly an error was also reported.<br>
&gt;<br>&gt; The signed document contains my entire certificate chain: Signer -&gt;<br>&gt; Intermediate CA -&gt; Root CA. &nbsp;The Root CA in the chain is the same as the<br>&gt; trusted root pem I pass using the --trusted-pem option, so I would<br>
&gt; expect verification to succeed.<br>&gt;<br>&gt; Now, I can make the error message go away by extracting the Intermediate<br>&gt; CA certificate from the signed document and passing it to XMLSEC using<br>&gt; the --untrusted-pem option:<br>
&gt;<br>&gt; xmlsec1 --verify --id-attr:&lt;my_ID_attribute_name&gt;<br>&gt; &lt;my_node_namespace_uri&gt;:&lt;my_first_node_name&gt;<br>&gt; --id-attr:&lt;my_ID_attribute_name&gt;<br>&gt; &lt;my_node_namespace_uri&gt;:&lt;my_second_node_name&gt; --trusted-pem<br>
&gt; &lt;my_trusted_root_pem&gt; --untrusted-pem &lt;intermediate_CA_pem&gt;<br>&gt; &lt;my_signed_document&gt;<br>&gt;<br>&gt; I did not expect that I would have to explicitly pass a certificate from<br>&gt; the chain to xmlsec and flag it as being untrusted. &nbsp;Am I doing<br>
&gt; something wrong? &nbsp;Surely xmlsec should assume that all X509 certificates<br>&gt; in a chain are untrusted by default? &nbsp;Have I missed the point somewhere?<br>&gt;<br>&gt; Many thanks in advance.<br>&gt;<br>&gt;<br></div>
</div>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________<br>&gt; xmlsec mailing list<br>&gt; <a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a><br>
&gt; <a href="http://www.aleksey.com/mailman/listinfo/xmlsec" target="_blank">http://www.aleksey.com/mailman/listinfo/xmlsec</a><br></blockquote></div><br>