summaryrefslogtreecommitdiff
path: root/tests/merlin-c14n-three
diff options
context:
space:
mode:
Diffstat (limited to 'tests/merlin-c14n-three')
-rw-r--r--tests/merlin-c14n-three/Readme.txt20
-rw-r--r--tests/merlin-c14n-three/c14n-0.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-1.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-10.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-11.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-12.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-13.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-14.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-15.txt0
-rw-r--r--tests/merlin-c14n-three/c14n-16.txt0
-rw-r--r--tests/merlin-c14n-three/c14n-17.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-18.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-19.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-2.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-20.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-21.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-22.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-23.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-24.txt1
-rw-r--r--tests/merlin-c14n-three/c14n-25.txt0
-rw-r--r--tests/merlin-c14n-three/c14n-26.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-27.txt430
-rw-r--r--tests/merlin-c14n-three/c14n-3.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-4.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-5.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-6.txt1
-rw-r--r--tests/merlin-c14n-three/c14n-7.txt1
-rw-r--r--tests/merlin-c14n-three/c14n-8.txt15
-rw-r--r--tests/merlin-c14n-three/c14n-9.txt15
-rw-r--r--tests/merlin-c14n-three/signature.xml526
30 files changed, 1294 insertions, 0 deletions
diff --git a/tests/merlin-c14n-three/Readme.txt b/tests/merlin-c14n-three/Readme.txt
new file mode 100644
index 00000000..fdef3efb
--- /dev/null
+++ b/tests/merlin-c14n-three/Readme.txt
@@ -0,0 +1,20 @@
+Signature[1] using Canonical XML[2] and Exclusive Canonical XML[3]
+
+[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
+[2] http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+[3] http://www.w3.org/TR/2002/PR-xml-exc-c14n-20020524/
+
+. signature.xml - The signatures
+. c14n-*.xml - The intermediate c14n output
+
+This signature demonstrates canonicalization behaviour when
+parts of the namespace axis are excluded or included. The
+same examples are repeated for canonical XML, exclusive
+canonical XML and exclusive canonical XML with an inclusive
+namespace prefix list. Some examples repeat the same
+behaviour with different XPath expressions.
+
+Merlin Hughes <merlin@baltimore.ie>
+Baltimore Technologies, Ltd.
+
+Friday, May 31, 2002
diff --git a/tests/merlin-c14n-three/c14n-0.txt b/tests/merlin-c14n-three/c14n-0.txt
new file mode 100644
index 00000000..6bac93e4
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-0.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie">
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-1.txt b/tests/merlin-c14n-three/c14n-1.txt
new file mode 100644
index 00000000..2bb5f06e
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-1.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie">
+ <foo:Nothing>
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <foo:Nothing>
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-10.txt b/tests/merlin-c14n-three/c14n-10.txt
new file mode 100644
index 00000000..7a86b5e7
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-10.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing>
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-11.txt b/tests/merlin-c14n-three/c14n-11.txt
new file mode 100644
index 00000000..1fcc3513
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-11.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-12.txt b/tests/merlin-c14n-three/c14n-12.txt
new file mode 100644
index 00000000..afaa6a8c
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-12.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+
+ <bar:Something>
+
+ <foo:Nothing>
+
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+
+ </foo:Nothing>
+
+ </bar:Something>
+
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-13.txt b/tests/merlin-c14n-three/c14n-13.txt
new file mode 100644
index 00000000..e8e07daa
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-13.txt
@@ -0,0 +1,15 @@
+<bar:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-14.txt b/tests/merlin-c14n-three/c14n-14.txt
new file mode 100644
index 00000000..e8e07daa
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-14.txt
@@ -0,0 +1,15 @@
+<bar:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-15.txt b/tests/merlin-c14n-three/c14n-15.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-15.txt
diff --git a/tests/merlin-c14n-three/c14n-16.txt b/tests/merlin-c14n-three/c14n-16.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-16.txt
diff --git a/tests/merlin-c14n-three/c14n-17.txt b/tests/merlin-c14n-three/c14n-17.txt
new file mode 100644
index 00000000..e8e07daa
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-17.txt
@@ -0,0 +1,15 @@
+<bar:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-18.txt b/tests/merlin-c14n-three/c14n-18.txt
new file mode 100644
index 00000000..e3c3ce55
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-18.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns="http://example.org/" xmlns:bar="http://example.org/bar">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-19.txt b/tests/merlin-c14n-three/c14n-19.txt
new file mode 100644
index 00000000..7a86b5e7
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-19.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing>
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-2.txt b/tests/merlin-c14n-three/c14n-2.txt
new file mode 100644
index 00000000..dfacdb4b
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-2.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+ <foo:Something>
+ <bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Something xmlns:foo="http://example.org/foo">
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-20.txt b/tests/merlin-c14n-three/c14n-20.txt
new file mode 100644
index 00000000..1fcc3513
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-20.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-21.txt b/tests/merlin-c14n-three/c14n-21.txt
new file mode 100644
index 00000000..afaa6a8c
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-21.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+
+ <bar:Something>
+
+ <foo:Nothing>
+
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+
+ </foo:Nothing>
+
+ </bar:Something>
+
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-22.txt b/tests/merlin-c14n-three/c14n-22.txt
new file mode 100644
index 00000000..e8e07daa
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-22.txt
@@ -0,0 +1,15 @@
+<bar:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-23.txt b/tests/merlin-c14n-three/c14n-23.txt
new file mode 100644
index 00000000..e8e07daa
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-23.txt
@@ -0,0 +1,15 @@
+<bar:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-24.txt b/tests/merlin-c14n-three/c14n-24.txt
new file mode 100644
index 00000000..50dc4231
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-24.txt
@@ -0,0 +1 @@
+ xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-25.txt b/tests/merlin-c14n-three/c14n-25.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-25.txt
diff --git a/tests/merlin-c14n-three/c14n-26.txt b/tests/merlin-c14n-three/c14n-26.txt
new file mode 100644
index 00000000..19c70cb0
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-26.txt
@@ -0,0 +1,15 @@
+<bar:Something>
+ <foo:Nothing xmlns="http://example.org/">
+ <foo:Something xmlns="">
+ <bar:Something xmlns="http://example.org/">
+ <foo:Something xmlns="">
+ <foo:Nothing xmlns="http://example.org/">
+ <foo:Something xmlns="">
+ <baz:Something xmlns="http://example.org/"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-27.txt b/tests/merlin-c14n-three/c14n-27.txt
new file mode 100644
index 00000000..117f21a7
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-27.txt
@@ -0,0 +1,430 @@
+<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie">
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>zDcKZDPIDity6ezoUjjYh5l5HD8=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ ((name() != "bar") or parent::bar:Something) and
+ ((name() != "foo") or parent::foo:Something) and
+ ((name() != "baz") or parent::baz:Something) and
+ ((name() != "") or self::text())
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>c6/BJXIi3MjZG8+1xfVv0U0OF/s=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>jT1amifr+CPI+9DdvhzLAJhMggs=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ not (self::foo:Something) and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>rwkxkAxYpYzu6x85sa2RgCWmn2Q=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) !=
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != ""))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) =
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>TYZShIzLB4+/2u+yVB7OocXtWyI=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (string(self::node()) = namespace-uri(parent::node()))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>EhCKd+AMiKcL/i41otNu2FnO+/s=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ ((name() = "") and
+ ((count(ancestor-or-self::node()) mod 2) = 1)))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>5oWfKR+g5kK86E3FRTBck+R/BQ0=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ ((name() != "bar") or parent::bar:Something) and
+ ((name() != "foo") or parent::foo:Something) and
+ ((name() != "baz") or parent::baz:Something) and
+ ((name() != "") or self::text())
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ not (self::foo:Something) and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) !=
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != ""))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) =
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (string(self::node()) = namespace-uri(parent::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ ((name() = "") and
+ ((count(ancestor-or-self::node()) mod 2) = 1)))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>K5OrULSkVjkuQd85gxbrkcowg60=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ ((name() != "bar") or parent::bar:Something) and
+ ((name() != "foo") or parent::foo:Something) and
+ ((name() != "baz") or parent::baz:Something) and
+ ((name() != "") or self::text())
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ not (self::foo:Something) and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) !=
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != ""))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) =
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>9nKcDwpjNsAMgP+d+YYSVix6DG0=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (string(self::node()) = namespace-uri(parent::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ ((name() = "") and
+ ((count(ancestor-or-self::node()) mod 2) = 1)))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
+ <DigestValue>CwltHOmCf0tFSyrqRDYQNFT4eo8=</DigestValue>
+ </Reference>
+ </SignedInfo> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-3.txt b/tests/merlin-c14n-three/c14n-3.txt
new file mode 100644
index 00000000..fe106675
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-3.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+
+ <bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie">
+ xmlns:foo="http://example.org/foo"
+ <foo:Nothing xmlns:foo="http://example.org/foo" xml:lang="en-ie">
+
+ <baz:Something xmlns:baz="http://example.org/baz" xml:lang="en-ie"></baz:Something>
+
+ </foo:Nothing>
+
+ </bar:Something>
+
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-4.txt b/tests/merlin-c14n-three/c14n-4.txt
new file mode 100644
index 00000000..bf97f5e7
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-4.txt
@@ -0,0 +1,15 @@
+<bar:Something xml:lang="en-ie">
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-5.txt b/tests/merlin-c14n-three/c14n-5.txt
new file mode 100644
index 00000000..bf97f5e7
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-5.txt
@@ -0,0 +1,15 @@
+<bar:Something xml:lang="en-ie">
+ <foo:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-6.txt b/tests/merlin-c14n-three/c14n-6.txt
new file mode 100644
index 00000000..eef68d40
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-6.txt
@@ -0,0 +1 @@
+ xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-7.txt b/tests/merlin-c14n-three/c14n-7.txt
new file mode 100644
index 00000000..6644ce3e
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-7.txt
@@ -0,0 +1 @@
+ xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:foo="http://example.org/foo" xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:foo="http://example.org/foo" xmlns:foo="http://example.org/foo" xmlns:baz="http://example.org/baz" \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-8.txt b/tests/merlin-c14n-three/c14n-8.txt
new file mode 100644
index 00000000..2c4ed848
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-8.txt
@@ -0,0 +1,15 @@
+<bar:Something xml:lang="en-ie">
+ <foo:Nothing xmlns="http://example.org/">
+ <foo:Something xmlns="">
+ <bar:Something xmlns="http://example.org/">
+ <foo:Something xmlns="">
+ <foo:Nothing xmlns="http://example.org/">
+ <foo:Something xmlns="">
+ <baz:Something xmlns="http://example.org/"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/c14n-9.txt b/tests/merlin-c14n-three/c14n-9.txt
new file mode 100644
index 00000000..1fcc3513
--- /dev/null
+++ b/tests/merlin-c14n-three/c14n-9.txt
@@ -0,0 +1,15 @@
+<bar:Something xmlns:bar="http://example.org/bar">
+ <foo:Nothing xmlns:foo="http://example.org/foo">
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something xmlns:baz="http://example.org/baz"></baz:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something> \ No newline at end of file
diff --git a/tests/merlin-c14n-three/signature.xml b/tests/merlin-c14n-three/signature.xml
new file mode 100644
index 00000000..a344404e
--- /dev/null
+++ b/tests/merlin-c14n-three/signature.xml
@@ -0,0 +1,526 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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:Nothing>
+ <foo:Something>
+ <bar:Something>
+ <foo:Something>
+ <foo:Nothing>
+ <foo:Something>
+ <baz:Something />
+ </foo:Something>
+ </foo:Nothing>
+ </foo:Something>
+ </bar:Something>
+ </foo:Something>
+ </foo:Nothing>
+ </bar:Something>
+ <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <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="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>zDcKZDPIDity6ezoUjjYh5l5HD8=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ ((name() != "bar") or parent::bar:Something) and
+ ((name() != "foo") or parent::foo:Something) and
+ ((name() != "baz") or parent::baz:Something) and
+ ((name() != "") or self::text())
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>c6/BJXIi3MjZG8+1xfVv0U0OF/s=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>jT1amifr+CPI+9DdvhzLAJhMggs=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ not (self::foo:Something) and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>rwkxkAxYpYzu6x85sa2RgCWmn2Q=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) !=
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != ""))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) =
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>TYZShIzLB4+/2u+yVB7OocXtWyI=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (string(self::node()) = namespace-uri(parent::node()))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>EhCKd+AMiKcL/i41otNu2FnO+/s=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ ((name() = "") and
+ ((count(ancestor-or-self::node()) mod 2) = 1)))
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>5oWfKR+g5kK86E3FRTBck+R/BQ0=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ ((name() != "bar") or parent::bar:Something) and
+ ((name() != "foo") or parent::foo:Something) and
+ ((name() != "baz") or parent::baz:Something) and
+ ((name() != "") or self::text())
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ not (self::foo:Something) and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) !=
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != ""))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) =
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (string(self::node()) = namespace-uri(parent::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ ((name() = "") and
+ ((count(ancestor-or-self::node()) mod 2) = 1)))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>K5OrULSkVjkuQd85gxbrkcowg60=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ ((name() != "bar") or parent::bar:Something) and
+ ((name() != "foo") or parent::foo:Something) and
+ ((name() != "baz") or parent::baz:Something) and
+ ((name() != "") or self::text())
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ not (self::foo:Something) and
+ (self::text() or
+ (namespace-uri() != "") or
+ (string(self::node()) = namespace-uri(parent::node())))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) !=
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != ""))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (count(parent::node()/namespace::*) =
+ count(parent::node()/namespace::* | self::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>9nKcDwpjNsAMgP+d+YYSVix6DG0=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (string(self::node()) = namespace-uri(parent::node()))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+
+ ancestor-or-self::bar:Something and
+ (self::text() or
+ (namespace-uri() != "") or
+ ((name() = "") and
+ ((count(ancestor-or-self::node()) mod 2) = 1)))
+ </XPath>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>CwltHOmCf0tFSyrqRDYQNFT4eo8=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ N6aqg79OKMQzkU7uTHRmn4ryplhaTh0OFlCRqa/rS+pUBV6M8nTX5A==
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ <DSAKeyValue>
+ <P>
+ 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH
+ Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi
+ 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=
+ </P>
+ <Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</Q>
+ <G>
+ nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z
+ Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM
+ 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=
+ </G>
+ <Y>
+ cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i
+ Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv
+ +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=
+ </Y>
+ </DSAKeyValue>
+ </KeyValue>
+ <X509Data>
+ <X509SubjectName>
+ CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE
+ </X509SubjectName>
+ <X509IssuerSerial>
+ <X509IssuerName>
+ CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE
+ </X509IssuerName>
+ <X509SerialNumber>1017788370348</X509SerialNumber>
+ </X509IssuerSerial>
+ <X509Certificate>
+ MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl
+ czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn
+ Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS
+ 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1
+ MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx
+ YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU
+ 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N
+ A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q
+ 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA
+ R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL
+ ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE
+ lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj
+ Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn
+ </X509Certificate>
+ <X509Certificate>
+ MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch
+ 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx
+ 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw
+ w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg
+ nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ
+ t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D
+ 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7
+ PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5
+ NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25
+ 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA
+ MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s
+ gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ </Signature>
+</foo:Root>