[xmlsec] Problem with ver 0.0.11

Aleksey Sanin aleksey at aleksey.com
Sun Dec 8 18:07:25 PST 2002


This is not a surprise for me at all. You are signing *everything* in 
the document
includingthe <dsig:Signature> node subtree. Which means that you never get
it verified:
    -  when you are signing the <dsig:SignatureValue> is not yet calculated
    (i.e. empty)
    - when you are verifying the <dsig:SignatureValue> has a non-empty value
    and, of course, the digest is *different*

Probably, you want to add an enveloped transform

        ...
	<Transforms>
	  <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
          <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
        </Transforms>

To exclude <dsig:Signature> subtree.

Aleksey


kltsai wrote:

>Hi aleksey and igor:
>
>	I am sorry to make such a big mistake. In fact, I downloaded
>v0.0.10 from Mr. Igor's site. But I still have some problem with he
>example:
>
><?xml version="1.0"?>
><IFX>
><Data1 Id="anchor1">
><Name>May</Name>
></Data1>
><Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="kenny at a.b.c">
>    <SignedInfo>
>      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
>      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
>      <Reference URI="#xpointer(/)">
>        <Transforms>
>          <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
>        </Transforms>
>        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
>        <DigestValue></DigestValue>
>      </Reference>
>    </SignedInfo>
>    <SignatureValue/>
>    <KeyInfo>
>    <KeyValue/>
>    </KeyInfo>
>  </Signature></IFX>
>
>
>And it causes the following message:
>C:\temp\xmlsec-0.0.11\TestApp\Debug>testapp verify kltsai6.xml
> (c:\temp\xmlsec-0.0.11\src\xmldsig.c:1493): error 51: invalid reference :
>= Status:
>== Signatures ok: 0
>== Signatures fail: 1
>== SignedInfo Ref ok: 0
>== SignedInfo Ref fail: 1
>== Manifest Ref ok: 0
>== Manifest Ref fail: 0
>FAIL
>Error: operation failed
>
>I debug into the sourse code, and find it means verification stage gets
>different digestvalue from DigestValue node. It doesn't stand for xmlSec
>does not recognize reference node. I am still trying to find out the
>problem. Does anyone have any idea about my problem? Thanks in
>advance~~~
>
>
>							kltsai
>  
>





More information about the xmlsec mailing list