The 5 certificates represent a whole certificate chain in order from signer back to self-signed trusted root.&nbsp; If I use the fifth certificate as a trusted root (extract it to file, add the begin/end certificate tags, and use the  --trusted-pem option), then my understanding is that I should be able to verify the signature and the entire certificate chain.&nbsp; Surely there should be no failure?&nbsp; Am I missing something here?<br>
<br>Thanks again.<br><br><div class="gmail_quote">On Feb 19, 2008 3:26 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;">
You have multiple certificates (X509Data) element. The error<br>indicates that verification of one certificate have failed<br>but the other succeeds and the signature is verified.<br><br>Aleksey<br><div class="Ih2E3d"><br>
Paul Keeler wrote:<br>&gt; Looks like the body of my previous message was somehow scrubbed along<br>&gt; with the attachment. &nbsp;Here it is again:<br>&gt;<br>&gt; On Feb 19, 2008 11:00 AM, Paul Keeler &lt;<a href="mailto:keelerp@googlemail.com">keelerp@googlemail.com</a><br>
</div><div class="Ih2E3d">&gt; &lt;mailto:<a href="mailto:keelerp@googlemail.com">keelerp@googlemail.com</a>&gt;&gt; wrote:<br>&gt;<br>&gt; &nbsp; &nbsp; Ok, I guess it was a bit unreasonable to send you a link - my<br>&gt; &nbsp; &nbsp; apologies! &nbsp;Here&#39;s a concrete example. &nbsp;See attached.<br>
&gt;<br>&gt; &nbsp; &nbsp; Thanks for your patience.<br>&gt;<br>&gt;<br>&gt; &nbsp; &nbsp; On Feb 18, 2008 5:08 PM, Aleksey Sanin &lt;<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a><br></div><div class="Ih2E3d">&gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>&gt;&gt; wrote:<br>
&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; I have no idea what &quot;target kdm certificate&quot; is :) Please, attach<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; a signed document to the email.<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; Aleksey<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; Paul Keeler wrote:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; Here is a link to an online generator of signed documents<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; that will<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; demonstrate the behaviour I described previously:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; <a href="http://www.cinecert.com/dci_ref_01/" target="_blank">http://www.cinecert.com/dci_ref_01/</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; Is there perhaps something about these documents that means<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; xmlsec is<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; unable to populate a store of untrusted certificates?<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; Many thanks for your help already.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; On Feb 14, 2008 5:29 PM, Aleksey Sanin &lt;<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;mailto:<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>&gt;<br></div><div><div></div><div class="Wj3C7c">&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &lt;mailto:<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a> &lt;mailto:<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>&gt;&gt;&gt; wrote:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; The error indicates that verification of one of the<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; certificate<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; chains failed but xmlsec was able to extract the key<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; either from<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; another certificate chain or from some other place. Hard<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; to say<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; more w/o looking at the document.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; Aleksey<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; Paul Keeler wrote:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; I would be grateful if somone could help me with this<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; problem. &nbsp;I<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; have a<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; signed document which reports that it verifies ok, but<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; also gives an<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; error message: &quot;unable to get local issuer<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; certificate&quot;. &nbsp;The<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; same thing<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; happens both running from my own application and<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; calling xmlsec<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; from the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; command line:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; xmlsec1 --verify --id-attr:&lt;my_ID_attribute_name&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_node_namespace_uri&gt;:&lt;my_first_node_name&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; --id-attr:&lt;my_ID_attribute_name&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_node_namespace_uri&gt;:&lt;my_second_node_name&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; --trusted-pem<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_trusted_root_pem&gt; &nbsp;&lt;my_signed_document&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; This is the result:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; func=xmlSecOpenSSLX509StoreVerify:file=x509vfy.c:line=351:obj=x509-store:subj=unknown:error=71:certificate<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; verification failed:err=20;msg=unable to get local<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; issuer certificate<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; OK<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; SignedInfo References (ok/all): 2/2<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; Manifests References (ok/all): 0/0<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; The verification seems to have been successful<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; (indicated by<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &quot;OK&quot;), but<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; clearly an error was also reported.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; The signed document contains my entire certificate<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; chain: Signer -&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; Intermediate CA -&gt; Root CA. &nbsp;The Root CA in the chain<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; is the same<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; as the<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; trusted root pem I pass using the --trusted-pem<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; option, so I would<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; expect verification to succeed.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; Now, I can make the error message go away by<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; extracting the<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; Intermediate<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; CA certificate from the signed document and passing it<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; to XMLSEC<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; using<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; the --untrusted-pem option:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; xmlsec1 --verify --id-attr:&lt;my_ID_attribute_name&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_node_namespace_uri&gt;:&lt;my_first_node_name&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; --id-attr:&lt;my_ID_attribute_name&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_node_namespace_uri&gt;:&lt;my_second_node_name&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; --trusted-pem<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_trusted_root_pem&gt; --untrusted-pem<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;intermediate_CA_pem&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; &lt;my_signed_document&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; I did not expect that I would have to explicitly pass a<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; certificate from<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; the chain to xmlsec and flag it as being untrusted.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Am I doing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; something wrong? &nbsp;Surely xmlsec should assume that all<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; X509<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; certificates<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; in a chain are untrusted by default? &nbsp;Have I missed<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the point<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; somewhere?<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; Many thanks in advance.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; ------------------------------------------------------------------------<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; _______________________________________________<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; xmlsec mailing list<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; <a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a> &lt;mailto:<a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a>&gt;<br></div>
</div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;mailto:<a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a> &lt;mailto:<a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a>&gt;&gt;<br><div><div></div><div class="Wj3C7c">&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;&gt; <a href="http://www.aleksey.com/mailman/listinfo/xmlsec" target="_blank">http://www.aleksey.com/mailman/listinfo/xmlsec</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; ------------------------------------------------------------------------<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; _______________________________________________<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; xmlsec mailing list<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; <a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a> &lt;mailto:<a href="mailto:xmlsec@aleksey.com">xmlsec@aleksey.com</a>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt; <a href="http://www.aleksey.com/mailman/listinfo/xmlsec" target="_blank">http://www.aleksey.com/mailman/listinfo/xmlsec</a><br>
&gt;<br>&gt;<br>&gt;<br>&gt;<br>&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></div></div></blockquote></div><br>