<div dir="ltr"><div>I do not understand saml.</div><div><br></div><div>But, to use URI to retrieve ID, this works:</div><br><div>static const xmlChar* xmlDSigIds[] = { BAD_CAST "Id", BAD_CAST "id", BAD_CAST "iD", BAD_CAST "ID", NULL };</div>
<div>xmlSecAddIDs( node->doc, xmlDocGetRootElement(node->doc), xmlDSigIds );</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 2, 2013 at 12:23 AM, Jeffrey Jin (jefjin) <span dir="ltr"><<a href="mailto:jefjin@cisco.com" target="_blank">jefjin@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Aleksey, when I add correct DTD, it works fine. And Xmlsec is a<br>
very good library.<br>
<br>
-Jeffrey<br>
<div><div class="h5"><br>
On 8/2/13 9:39 AM, "Aleksey Sanin" <<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>> wrote:<br>
<br>
>You don't need to make this change. What you need to do is to setup<br>
>correct DTD to tell XML where is your ID attribute.<br>
><br>
>Aleksey<br>
><br>
>On 8/1/13 6:21 PM, Jeffrey Jin (jefjin) wrote:<br>
>> Hi Aleksey,<br>
>><br>
>> Sorry, I have to bother you again.<br>
>> If we change<br>
>> expr=xpointer(id('s29c0153b613859ac1c788536d2a924d65e643b308')) to<br>
>> expr=xpointer(//*[@ID='s29c0153b613859ac1c788536d2a924d65e643b308']) I<br>
>> think it should be okay.<br>
>> So , could we change xmlsec source code to achieve this? And could you<br>
>> tell us which file or some place do this changes?<br>
>><br>
>> -Jeffrey<br>
>><br>
>> On 8/1/13 3:28 PM, "Jeffrey Jin (jefjin)" <<a href="mailto:jefjin@cisco.com">jefjin@cisco.com</a>> wrote:<br>
>><br>
>>> Hi Aleksey,<br>
>>><br>
>>> I found something:<br>
>>> failed:expr=xpointer(id('s29c0153b613859ac1c788536d2a924d65e643b308'))<br>
>>> refers to the element in the target document, with the id value of<br>
>>> "s29c0153b613859ac1c788536d2a924d65e643b308".<br>
>>><br>
>>> But my saml response :<br>
>>> <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"<br>
>>> ID="s29c0153b613859ac1c788536d2a924d65e643b308"<br>
>>> IssueInstant="2013-07-30T09:57:48Z" Version="2.0">. It's a capital ID.<br>
>>><br>
>>> If I change ID to id in assertion element then add<br>
>>> <!DOCTYPE test [<br>
>>> <!ATTLIST saml:Assertion id ID #IMPLIED><br>
>>> ]><br>
>>><br>
>>> It seems no this error. But I actually modify the saml response, it<br>
>>>will<br>
>>> lead verify failed.<br>
>>> So do you have any idea on this? Thanks in advance.<br>
>>><br>
>>> -Jeffrey<br>
>>><br>
>>><br>
>>><br>
>>> On 8/1/13 10:28 AM, "Jeffrey Jin (jefjin)" <<a href="mailto:jefjin@cisco.com">jefjin@cisco.com</a>> wrote:<br>
>>><br>
>>>> Anyway, thanks again. Let me check if there has other way to solve it!<br>
>>>><br>
>>>> On 8/1/13 9:59 AM, "Aleksey Sanin" <<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>> wrote:<br>
>>>><br>
>>>>> Well, it means that I failed to explain what needs to be done in my<br>
>>>>> first email and I don't have any other ides how to do it.<br>
>>>>><br>
>>>>> Aleksey<br>
>>>>><br>
>>>>> On 7/31/13 6:57 PM, Jeffrey Jin (jefjin) wrote:<br>
>>>>>> You mean xmlsec can't work in URI case?<br>
>>>>>><br>
>>>>>> On 8/1/13 9:43 AM, "Aleksey Sanin" <<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>> wrote:<br>
>>>>>><br>
>>>>>>> I am sorry but you need to read XML DTD spec and XMLDsig spec as<br>
>>>>>>> well.<br>
>>>>>>> Unfortunately, this is required reading if you want to use xmlsec<br>
>>>>>>> library.<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> Aleksey<br>
>>>>>>><br>
>>>>>>> On 7/31/13 6:40 PM, Jeffrey Jin (jefjin) wrote:<br>
>>>>>>>> Hi Aleksey,<br>
>>>>>>>><br>
>>>>>>>> Thanks for your quick replay. You mean I need to change attribute<br>
>>>>>>>> URI<br>
>>>>>>>> to<br>
>>>>>>>> ID? Like this:<br>
>>>>>>>> "<ds:Reference ID="#s29c0153b613859ac1c788536d2a924d65e643b308"<br>
>>>>>>>> xmlns:ds="<a href="http://www.w3.org/2000/09/xmldsig#" target="_blank">http://www.w3.org/2000/09/xmldsig#</a>">"<br>
>>>>>>>><br>
>>>>>>>> If my understanding is correct, there has two issues coming:<br>
>>>>>>>> 1) it's saml response from ci, I need to change the URI to ID<br>
>>>>>>>>when I<br>
>>>>>>>> receive the response<br>
>>>>>>>> 2) when I change URI to ID, yes, below error is gone, but I got<br>
>>>>>>>> error:<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>>func=xmlSecOpenSSLEvpDigestVerify:file=digests.c:line=229:obj=sha1:<br>
>>>>>>>>su<br>
>>>>>>>> b<br>
>>>>>>>> j<br>
>>>>>>>> =u<br>
>>>>>>>> nk<br>
>>>>>>>> nown:error=12:invalid data:data and digest do not match<br>
>>>>>>>> RESULT: Signature is INVALID<br>
>>>>>>>><br>
>>>>>>>> I can make sure I use the correct public key to verify, it should<br>
>>>>>>>>be<br>
>>>>>>>> VALID. I'm worry about changing URI to ID whether has problem. I<br>
>>>>>>>> check<br>
>>>>>>>> the<br>
>>>>>>>> URI type in anyURI on <a href="http://www.w3.org/2000/09/xmldsig#" target="_blank">http://www.w3.org/2000/09/xmldsig#</a> and<br>
>>>>>>>> URI="#s29c0153b613859ac1c788536d2a924d65e643b308"identifies a<br>
>>>>>>>> node-set<br>
>>>>>>>> containing the element with ID attribute value<br>
>>>>>>>> 's29c0153b613859ac1c788536d2a924d65e643b308' of the XML resource<br>
>>>>>>>> containing the signature. XML Signature (and its applications)<br>
>>>>>>>> modify<br>
>>>>>>>> this<br>
>>>>>>>> node-set to include the element plus all descendants including<br>
>>>>>>>> namespaces<br>
>>>>>>>> and attributes -- but not comments.<br>
>>>>>>>><br>
>>>>>>>> -Jeffrey<br>
>>>>>>>><br>
>>>>>>>> On 8/1/13 2:00 AM, "Aleksey Sanin" <<a href="mailto:aleksey@aleksey.com">aleksey@aleksey.com</a>> wrote:<br>
>>>>>>>><br>
>>>>>>>>> You need to define ID attribute to the element where it is<br>
>>>>>>>>> specified,<br>
>>>>>>>>> not to the Reference element where it is used<br>
>>>>>>>>><br>
>>>>>>>>> Aleksey<br>
>>>>>>>>><br>
>>>>>>>>> On 7/31/13 12:25 AM, Jeffrey Jin (jefjin) wrote:<br>
>>>>>>>>>> Hi xmlsec team,<br>
>>>>>>>>>><br>
>>>>>>>>>> I use xmlsec library to verify signature whether correct. But<br>
>>>>>>>>>>when<br>
>>>>>>>>>> saml<br>
>>>>>>>>>> response include "<ds:Reference<br>
>>>>>>>>>> URI="#s29c0153b613859ac1c788536d2a924d65e643b308"<br>
>>>>>>>>>> xmlns:ds="<a href="http://www.w3.org/2000/09/xmldsig#" target="_blank">http://www.w3.org/2000/09/xmldsig#</a>">"<br>
>>>>>>>>>> I got the error:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecXPathDataExecute:file=xpath.c:line=273:obj=unknown:sub<br>
>>>>>>>>>>j=<br>
>>>>>>>>>> x<br>
>>>>>>>>>> m<br>
>>>>>>>>>> lX<br>
>>>>>>>>>> Pt<br>
>>>>>>>>>> rEval:error=5:libxml2 library function<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>failed:expr=xpointer(id('s29c0153b613859ac1c788536d2a924d65e643b3<br>
>>>>>>>>>>08<br>
>>>>>>>>>> '<br>
>>>>>>>>>> )<br>
>>>>>>>>>> )<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecXPathDataListExecute:file=xpath.c:line=356:obj=unknown<br>
>>>>>>>>>>:s<br>
>>>>>>>>>> u<br>
>>>>>>>>>> b<br>
>>>>>>>>>> j=<br>
>>>>>>>>>> xm<br>
>>>>>>>>>> lSecXPathDataExecute:error=1:xmlsec library function failed:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecTransformXPathExecute:file=xpath.c:line=466:obj=xpoint<br>
>>>>>>>>>>er<br>
>>>>>>>>>> :<br>
>>>>>>>>>> s<br>
>>>>>>>>>> ub<br>
>>>>>>>>>> j=<br>
>>>>>>>>>> xmlSecXPathDataExecute:error=1:xmlsec library function failed:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecTransformDefaultPushXml:file=transforms.c:line=2405:ob<br>
>>>>>>>>>>j=<br>
>>>>>>>>>> x<br>
>>>>>>>>>> p<br>
>>>>>>>>>> oi<br>
>>>>>>>>>> nt<br>
>>>>>>>>>> er:subj=xmlSecTransformExecute:error=1:xmlsec library function<br>
>>>>>>>>>> failed:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
</div></div>>>>>>>>>>>func=xmlSecTransformCtxXmlExecute:file=transforms.c:line=1236:obj<br>
<div class="im">>>>>>>>>>>=u<br>
>>>>>>>>>> n<br>
>>>>>>>>>> k<br>
>>>>>>>>>> no<br>
>>>>>>>>>> wn<br>
</div><div class="im">>>>>>>>>>> :subj=xmlSecTransformPushXml:error=1:xmlsec library function<br>
>>>>>>>>>> failed:transform=xpointer<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
</div>>>>>>>>>>>func=xmlSecTransformCtxExecute:file=transforms.c:line=1296:obj=un<br>
>>>>>>>>>>kn<br>
>>>>>>>>>> o<br>
>>>>>>>>>> w<br>
<div class="HOEnZb"><div class="h5">>>>>>>>>>> n:<br>
>>>>>>>>>> su<br>
>>>>>>>>>> bj=xmlSecTransformCtxXmlExecute:error=1:xmlsec library function<br>
>>>>>>>>>> failed:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecDSigReferenceCtxProcessNode:file=xmldsig.c:line=1571:o<br>
>>>>>>>>>>bj<br>
>>>>>>>>>> =<br>
>>>>>>>>>> u<br>
>>>>>>>>>> nk<br>
>>>>>>>>>> no<br>
>>>>>>>>>> wn:subj=xmlSecTransformCtxExecute:error=1:xmlsec library<br>
>>>>>>>>>>function<br>
>>>>>>>>>> failed:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecDSigCtxProcessSignedInfoNode:file=xmldsig.c:line=804:o<br>
>>>>>>>>>>bj<br>
>>>>>>>>>> =<br>
>>>>>>>>>> u<br>
>>>>>>>>>> nk<br>
>>>>>>>>>> no<br>
>>>>>>>>>> wn:subj=xmlSecDSigReferenceCtxProcessNode:error=1:xmlsec library<br>
>>>>>>>>>> function failed:node=Reference<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecDSigCtxProcessSignatureNode:file=xmldsig.c:line=547:ob<br>
>>>>>>>>>>j=<br>
>>>>>>>>>> u<br>
>>>>>>>>>> n<br>
>>>>>>>>>> kn<br>
>>>>>>>>>> ow<br>
>>>>>>>>>> n:subj=xmlSecDSigCtxProcessSignedInfoNode:error=1:xmlsec library<br>
>>>>>>>>>> function failed:<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>>func=xmlSecDSigCtxVerify:file=xmldsig.c:line=366:obj=unknown:subj<br>
>>>>>>>>>>=x<br>
>>>>>>>>>> m<br>
>>>>>>>>>> l<br>
>>>>>>>>>> Se<br>
>>>>>>>>>> cD<br>
>>>>>>>>>> SigCtxSigantureProcessNode:error=1:xmlsec library function<br>
>>>>>>>>>>failed:<br>
>>>>>>>>>> Error: signature verification failed<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> I found the answer of similar issue from<br>
>>>>>>>>>> <a href="http://www.aleksey.com/xmlsec/faq.html" target="_blank">http://www.aleksey.com/xmlsec/faq.html</a><br>
>>>>>>>>>><br>
>>>>>>>>>> So I add the DTD:<br>
>>>>>>>>>><br>
>>>>>>>>>> <!DOCTYPE test [<br>
>>>>>>>>>> <!ATTLIST ds:Reference URI ID #IMPLIED><br>
>>>>>>>>>> ]><br>
>>>>>>>>>><br>
>>>>>>>>>> But it doesn't work. Someone can help me out.<br>
>>>>>>>>>><br>
>>>>>>>>>> Thanks in advance.<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> -Jeffrey<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> _______________________________________________<br>
>>>>>>>>>> xmlsec mailing list<br>
>>>>>>>>>> <a href="mailto:xmlsec@aleksey.com">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>
>>>>>>>>>><br>
>>>>>>>><br>
>>>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> xmlsec mailing list<br>
>>>> <a href="mailto:xmlsec@aleksey.com">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>
>>><br>
>><br>
<br>
_______________________________________________<br>
xmlsec mailing list<br>
<a href="mailto:xmlsec@aleksey.com">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>
</div></div></blockquote></div><br></div>