W3C home > Mailing lists > Public > w3c-ietf-xmldsig@w3.org > April to June 2002

c14n/exc-c14n interop samples

From: merlin <merlin@baltimore.ie>
Date: Tue, 28 May 2002 15:02:57 +0100
To: w3c-ietf-xmldsig@w3.org
Message-Id: <20020528140257.501784432D@yog-sothoth.ie.baltimore.com>
Hi,

Attached is a signature with 9 XPath-transformed examples
run through c14, exc-c14n and exc-c14n with an inclusive
namespace prefix list. The XPath transforms variously
manipulate the namespace axis to demonstrate c14n behaviour
in different situations. For example:

<foo:Root xmlns:bar="http://example.org/bar"
          xmlns:baz="http://example.org/baz" 
          xmlns:foo="http://example.org/foo"
          xmlns="http://example.org/"
          xml:lang="en-ie">
  <bar:Something>
     <foo:Something>
        <bar:Something>
           <foo:Something>
             <baz:Something />
           </foo:Something>
        </bar:Something>
     </foo:Something>
  </bar:Something>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" ... />
</foo:Root

The following XPath selects the bar:Something subtree, but
only includes namespace nodes that are directly used by their
parent element.

  ancestor-or-self::bar:Something  and
  (self::text()  or
   (namespace-uri() != "")  or
   (string(self::node()) = namespace-uri(parent::node())))

I believe that the canonical form is then:

<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie">
     <foo:Something xmlns:foo="http://example.org/foo">
        <bar:Something xmlns:bar="http://example.org/bar">
           <foo:Something xmlns:foo="http://example.org/foo">
             <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
           </foo:Something>
        </bar:Something>
     </foo:Something>
  </bar:Something>

And I believe that the exclusive canonical form is:

<bar:Something xmlns:bar="http://example.org/bar">
     <foo:Something xmlns:foo="http://example.org/foo">
        <bar:Something>
           <foo:Something>
             <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
           </foo:Something>
        </bar:Something>
     </foo:Something>
  </bar:Something>

Merlin


Received on Tuesday, 28 May 2002 10:03:29 GMT

This archive was generated by hypermail 2.2.0 + w3c-0.29 : Thursday, 13 January 2005 12:10:15 GMT