On Mon, Aug 27, 2007 at 09:22:25AM -0700, Aleksey Sanin wrote:
>
>> In the most simple case, I have generated a signature with no indentation 
>> except on
>> first line :
>
> OK, then I don't know. The error means that signatures don't match.
> You can try to dump the pre-signature buffer (after c14n) to make
> sure they match (see --print-signature xmlsec command line option).

So i've found the XMLSEC_DSIG_FLAGS_STORE_SIGNATURE flag here are the results :
signing :

...
== PreSigned data - start buffer:
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#";
xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd";
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xlink="http://www.w3.org/1999/xlink";>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315";></CanonicalizationMethod>
<SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1";></SignatureMethod>
<Reference URI="">
<Transforms>
<Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature";></Transform>
<Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";>
<XPath>not(ancestor-or-self::node()[EMAIL 
PROTECTED]:actor="urn:oasis:names:tc:ebxml-msg:service:nextMSH"]
|
ancestor-or-self::node()[EMAIL 
PROTECTED]:actor="http://schemas.xmlsoap.org/soap/actor/next";])</XPath>
</Transform>
<Transform
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315";></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></DigestMethod>
<DigestValue>nLo8xi/sqV0d4Cnl4L8vN0SzXMU=</DigestValue>
</Reference>
<Reference URI="cid:payload-1-contid0000330b46d41445000a8049">
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></DigestMethod>
<DigestValue>/mBI15W23WOx3Lw0hcLzIMzPvsk=</DigestValue>
</Reference>
</SignedInfo>
== PreSigned data - end buffer

Checking signature :

... (SignedInfo on 1 single line)
== PreSigned data - start buffer:
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"; 
xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd";
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xlink="http://www.w3.org/1999/xlink";><CanonicalizationMethod 
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315";></CanonicalizationMethod><SignatureMethod
 
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1";></SignatureMethod><Reference
 URI=""><Transforms><Transform 
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature";></Transform><Transform
 
Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";><XPath>not(ancestor-or-self::node()[EMAIL
 PROTECTED]:actor="urn:oasis:names:tc:ebxml-msg:service:nextMSH"] | 
ancestor-or-self::node()[EMAIL 
PROTECTED]:actor="http://schemas.xmlsoap.org/soap/actor/next";])</XPath></Transform><Transform
 
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315";></Transform></Transforms><DigestMethod
 
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></DigestMethod><DigestValue>nLo8xi/sqV0d4Cnl4L8vN0SzXMU=</DigestValue></Reference><Reference
 URI="cid:payload-1-contid0000330b46d41445000a8049"><DigestMethod 
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></DigestMethod><DigestValue>/mBI15W23WOx3Lw0hcLzIMzPvsk=</DigestValue></Reference></SignedInfo>
== PreSigned data - end buffer

whereas the received message is formatted as emmitted ...
Is the signature node extraction that do modify the message ?
Is there a way to check the signature without using XPath extraction ?

Fredd.
_______________________________________________
xmlsec mailing list
[email protected]
http://www.aleksey.com/mailman/listinfo/xmlsec

Reply via email to