summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/01-phaos-xmlenc-3/Readme.txt52
-rw-r--r--tests/01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des.xml29
-rw-r--r--tests/01-phaos-xmlenc-3/dh-priv-key.derbin0 -> 114 bytes
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.xml30
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.xml30
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml30
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.tmpl24
-rw-r--r--tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml63
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml83
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.tmpl23
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml61
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml63
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml63
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml63
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml29
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml83
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.tmpl20
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml61
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml63
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml29
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml29
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml83
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml63
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml29
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml83
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml29
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl23
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml32
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.tmpl21
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml28
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.tmpl20
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml62
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data9
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.tmpl22
-rw-r--r--tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml64
-rw-r--r--tests/01-phaos-xmlenc-3/key.txt117
-rw-r--r--tests/01-phaos-xmlenc-3/keys.xml61
-rw-r--r--tests/01-phaos-xmlenc-3/payment.xml9
-rw-r--r--tests/01-phaos-xmlenc-3/rsa-priv-key.derbin0 -> 1216 bytes
-rw-r--r--tests/01-phaos-xmlenc-3/rsa-priv-key.p12bin0 -> 2454 bytes
-rw-r--r--tests/aleksey-xkms-01/bad-request-name-not-supported.xml2
-rw-r--r--tests/aleksey-xkms-01/bad-request-name.xml10
-rw-r--r--tests/aleksey-xkms-01/compound-example-1-no-match.xml7
-rw-r--r--tests/aleksey-xkms-01/compound-example-1.xml51
-rw-r--r--tests/aleksey-xkms-01/keys/cert1.derbin0 -> 1137 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/cert1.pem26
-rw-r--r--tests/aleksey-xkms-01/keys/cert2.derbin0 -> 1065 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/cert2.pem25
-rw-r--r--tests/aleksey-xkms-01/keys/cert3.derbin0 -> 1041 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/cert3.pem24
-rwxr-xr-xtests/aleksey-xkms-01/keys/create-keys.sh73
-rw-r--r--tests/aleksey-xkms-01/keys/key1-pk8.derbin0 -> 677 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key1.derbin0 -> 608 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key1.p12bin0 -> 2206 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key1.pem18
-rw-r--r--tests/aleksey-xkms-01/keys/key2-pk8.derbin0 -> 389 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key2.derbin0 -> 320 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key2.p12bin0 -> 1846 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key2.pem9
-rw-r--r--tests/aleksey-xkms-01/keys/key3-pk8.derbin0 -> 389 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key3.derbin0 -> 318 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key3.p12bin0 -> 1822 bytes
-rw-r--r--tests/aleksey-xkms-01/keys/key3.pem9
-rw-r--r--tests/aleksey-xkms-01/keys/openssl.cnf106
-rw-r--r--tests/aleksey-xkms-01/keys/req2.pem11
-rw-r--r--tests/aleksey-xkms-01/keys/req3.pem11
-rw-r--r--tests/aleksey-xkms-01/locate-example-1-bad-service.xml2
-rw-r--r--tests/aleksey-xkms-01/locate-example-1-no-match.xml2
-rw-r--r--tests/aleksey-xkms-01/locate-example-1.xml18
-rw-r--r--tests/aleksey-xkms-01/locate-example-2-no-match.xml2
-rw-r--r--tests/aleksey-xkms-01/locate-example-2.xml39
-rw-r--r--tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml2
-rw-r--r--tests/aleksey-xkms-01/locate-opaque-client-data.xml32
-rw-r--r--tests/aleksey-xkms-01/readme.txt117
-rw-r--r--tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml9
-rw-r--r--tests/aleksey-xkms-01/soap11-bad-request-name.xml14
-rw-r--r--tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml6
-rw-r--r--tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml13
-rw-r--r--tests/aleksey-xkms-01/soap11-locate-example-1.xml23
-rw-r--r--tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml11
-rw-r--r--tests/aleksey-xkms-01/soap12-bad-request-name.xml14
-rw-r--r--tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml6
-rw-r--r--tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml9
-rw-r--r--tests/aleksey-xkms-01/soap12-locate-example-1.xml23
-rw-r--r--tests/aleksey-xkms-01/status-request-success.xml2
-rw-r--r--tests/aleksey-xkms-01/status-request.xml7
-rw-r--r--tests/aleksey-xkms-01/validate-example-1-no-match.xml2
-rw-r--r--tests/aleksey-xkms-01/validate-example-1.xml65
-rw-r--r--tests/aleksey-xmldsig-01/README47
-rw-r--r--tests/aleksey-xmldsig-01/dtd-hmac-91.dtd1
-rw-r--r--tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl27
-rw-r--r--tests/aleksey-xmldsig-01/dtd-hmac-91.xml27
-rw-r--r--tests/aleksey-xmldsig-01/enveloped-gost.tmpl31
-rw-r--r--tests/aleksey-xmldsig-01/enveloped-gost.xml42
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.tmpl18
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.xml87
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl18
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-expired-cert.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml13
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.xml13
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.tmpl18
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.xml13
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.xml13
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.xml13
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.xml85
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.xml13
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.xml103
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.tmpl16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.xml16
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.tmpl14
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.xml15
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.tmpl17
-rw-r--r--tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.xml104
-rwxr-xr-xtests/aleksey-xmldsig-01/x509data-sn-test.tmpl27
-rwxr-xr-xtests/aleksey-xmldsig-01/x509data-sn-test.xml40
-rw-r--r--tests/aleksey-xmldsig-01/x509data-test.tmpl31
-rw-r--r--tests/aleksey-xmldsig-01/x509data-test.xml117
-rw-r--r--tests/aleksey-xmldsig-01/xpointer-hmac.tmpl29
-rw-r--r--tests/aleksey-xmldsig-01/xpointer-hmac.xml28
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl11
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml12
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.xml21
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl11
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml12
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl10
-rw-r--r--tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml12
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.tmpl16
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.xml18
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data7
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.tmpl11
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.xml15
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data7
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.tmpl11
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.xml15
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data9
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.tmpl11
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.xml17
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl8
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml8
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data1
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl10
-rw-r--r--tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml12
-rw-r--r--tests/keys/README203
-rw-r--r--tests/keys/ca2cert.derbin0 -> 1049 bytes
-rw-r--r--tests/keys/ca2cert.pem66
-rw-r--r--tests/keys/ca2key.pem9
-rw-r--r--tests/keys/cacert.derbin0 -> 1105 bytes
-rw-r--r--tests/keys/cacert.pem72
-rw-r--r--tests/keys/cakey.pem18
-rw-r--r--tests/keys/demoCA/cacert.pem72
-rw-r--r--tests/keys/demoCA/careq.pem14
-rw-r--r--tests/keys/demoCA/index.txt6
-rw-r--r--tests/keys/demoCA/newcerts/01.pem65
-rw-r--r--tests/keys/demoCA/newcerts/02.pem93
-rw-r--r--tests/keys/demoCA/newcerts/03.pem60
-rw-r--r--tests/keys/demoCA/newcerts/04.pem60
-rw-r--r--tests/keys/demoCA/newcerts/05.pem83
-rw-r--r--tests/keys/demoCA/private/cakey.pem18
-rw-r--r--tests/keys/demoCA/serial1
-rw-r--r--tests/keys/dsacert.derbin0 -> 1144 bytes
-rw-r--r--tests/keys/dsacert.pem78
-rw-r--r--tests/keys/dsakey.derbin0 -> 250 bytes
-rw-r--r--tests/keys/dsakey.p12bin0 -> 4047 bytes
-rw-r--r--tests/keys/dsakey.p8-derbin0 -> 243 bytes
-rw-r--r--tests/keys/dsakey.p8-pem8
-rw-r--r--tests/keys/dsakey.pem14
-rw-r--r--tests/keys/expiredcert.derbin0 -> 991 bytes
-rw-r--r--tests/keys/expiredcert.pem61
-rw-r--r--tests/keys/expiredkey.derbin0 -> 317 bytes
-rw-r--r--tests/keys/expiredkey.p12bin0 -> 4056 bytes
-rw-r--r--tests/keys/expiredkey.pem9
-rw-r--r--tests/keys/expiredreq.pem11
-rw-r--r--tests/keys/gost2001ca.derbin0 -> 527 bytes
-rw-r--r--tests/keys/gost2001ca.pem13
-rw-r--r--tests/keys/hmackey.bin1
-rw-r--r--tests/keys/keys.xml83
-rw-r--r--tests/keys/largersacert.derbin0 -> 1437 bytes
-rw-r--r--tests/keys/largersacert.pem100
-rw-r--r--tests/keys/largersakey-win.p12bin0 -> 6656 bytes
-rw-r--r--tests/keys/largersakey-winxp.p12bin0 -> 6683 bytes
-rw-r--r--tests/keys/largersakey.derbin0 -> 2348 bytes
-rw-r--r--tests/keys/largersakey.p12bin0 -> 6532 bytes
-rw-r--r--tests/keys/largersakey.p8-derbin0 -> 2413 bytes
-rw-r--r--tests/keys/largersakey.p8-pem53
-rw-r--r--tests/keys/largersakey.pem51
-rw-r--r--tests/keys/largersareq.pem30
-rw-r--r--tests/keys/merlincert.pem20
-rw-r--r--tests/keys/openssl.cnf316
-rw-r--r--tests/keys/rsacert.derbin0 -> 995 bytes
-rw-r--r--tests/keys/rsacert.pem61
-rw-r--r--tests/keys/rsakey-win.p12bin0 -> 4166 bytes
-rw-r--r--tests/keys/rsakey-winxp.p12bin0 -> 4193 bytes
-rw-r--r--tests/keys/rsakey.derbin0 -> 320 bytes
-rw-r--r--tests/keys/rsakey.p12bin0 -> 4042 bytes
-rw-r--r--tests/keys/rsakey.p8-derbin0 -> 389 bytes
-rw-r--r--tests/keys/rsakey.p8-pem11
-rw-r--r--tests/keys/rsakey.pem9
-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
-rw-r--r--tests/merlin-exc-c14n-one/Readme.txt3
-rw-r--r--tests/merlin-exc-c14n-one/exc-signature.tmpl52
-rw-r--r--tests/merlin-exc-c14n-one/exc-signature.xml73
-rw-r--r--tests/merlin-xmldsig-twenty-three/Readme.txt63
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/badb.derbin0 -> 850 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/badb.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/balor.derbin0 -> 851 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/balor.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/bres.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/ca.derbin0 -> 862 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/ca.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/lugh-cert.derbin0 -> 851 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/lugh-cert.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/lugh.derbin0 -> 442 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/lugh.pem12
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/macha.derbin0 -> 852 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/macha.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/merlin.derbin0 -> 847 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/merlin.pem21
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/morigu.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/nemain.derbin0 -> 852 bytes
-rw-r--r--tests/merlin-xmldsig-twenty-three/certs/nemain.pem20
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.tmpl22
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml43
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.tmpl21
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml42
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.tmpl18
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml39
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.tmpl16
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.tmpl14
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml15
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.tmpl18
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml31
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.tmpl20
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml41
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-external-dsa.tmpl17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-external-dsa.xml38
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-keyname.tmpl16
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-keyname.xml17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.tmpl16
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.tmpl17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml47
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-crt.tmpl17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-crt.xml38
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-is.tmpl17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-is.xml24
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-ski.tmpl17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-ski.xml21
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-sn.tmpl17
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature-x509-sn.xml21
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature.tmpl245
-rw-r--r--tests/merlin-xmldsig-twenty-three/signature.xml269
-rw-r--r--tests/merlin-xmlenc-five/Readme.txt117
-rw-r--r--tests/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml42
-rw-r--r--tests/merlin-xmlenc-five/decryption-transform-except.xml83
-rw-r--r--tests/merlin-xmlenc-five/decryption-transform.xml73
-rw-r--r--tests/merlin-xmlenc-five/dh0.p8bin0 -> 409 bytes
-rw-r--r--tests/merlin-xmlenc-five/dh1.p8bin0 -> 409 bytes
-rw-r--r--tests/merlin-xmlenc-five/dsa.p8bin0 -> 333 bytes
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data27
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.tmpl20
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml45
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml113
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data27
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.tmpl18
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml42
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data27
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.tmpl11
-rw-r--r--tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml35
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.data1
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.tmpl11
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml12
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data1
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.tmpl20
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml22
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data1
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.tmpl20
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml22
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml46
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data1
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl21
-rw-r--r--tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml43
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data27
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.tmpl19
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml63
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.data36
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml42
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml57
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml122
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.data40
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml47
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data27
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.tmpl20
-rw-r--r--tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml43
-rw-r--r--tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml98
-rw-r--r--tests/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml108
-rw-r--r--tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml46
-rw-r--r--tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml51
-rw-r--r--tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl25
-rw-r--r--tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml27
-rw-r--r--tests/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml27
-rw-r--r--tests/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml27
-rw-r--r--tests/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml28
-rw-r--r--tests/merlin-xmlenc-five/ids.p12bin0 -> 499 bytes
-rw-r--r--tests/merlin-xmlenc-five/keys.xml42
-rw-r--r--tests/merlin-xmlenc-five/plaintext.xml24
-rw-r--r--tests/merlin-xmlenc-five/rsa.p8bin0 -> 312 bytes
-rw-r--r--tests/merlin-xmlenc-five/rsapriv.derbin0 -> 609 bytes
-rw-r--r--tests/merlin-xmlenc-five/rsapriv.p12bin0 -> 2140 bytes
-rw-r--r--tests/merlin-xmlenc-five/rsapriv.p8-derbin0 -> 677 bytes
-rw-r--r--tests/merlin-xmlenc-five/rsapriv.p8-pem17
-rw-r--r--tests/merlin-xmlenc-five/rsapriv.pem15
-rw-r--r--tests/merlin-xmlenc-five/rsapub.pem6
-rw-r--r--tests/merlin-xpath-filter2-three/Readme.txt23
-rw-r--r--tests/merlin-xpath-filter2-three/sign-spec-c14n-0.txt11
-rw-r--r--tests/merlin-xpath-filter2-three/sign-spec-c14n-1.txt0
-rw-r--r--tests/merlin-xpath-filter2-three/sign-spec-c14n-2.txt25
-rw-r--r--tests/merlin-xpath-filter2-three/sign-spec.tmpl50
-rw-r--r--tests/merlin-xpath-filter2-three/sign-spec.xml122
-rw-r--r--tests/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt3986
-rw-r--r--tests/merlin-xpath-filter2-three/sign-xfdl.tmpl4153
-rw-r--r--tests/merlin-xpath-filter2-three/sign-xfdl.xml4225
-rw-r--r--tests/nss.supp220
-rw-r--r--tests/nssdb/cert8.dbbin0 -> 65536 bytes
-rw-r--r--tests/nssdb/key3.dbbin0 -> 16384 bytes
-rw-r--r--tests/nssdb/secmod.dbbin0 -> 16384 bytes
-rw-r--r--tests/openssl.supp63
-rw-r--r--tests/phaos-xmldsig-three/README.txt248
-rw-r--r--tests/phaos-xmldsig-three/certs/crl.derbin0 -> 418 bytes
-rw-r--r--tests/phaos-xmldsig-three/certs/dsa-ca-cert.derbin0 -> 911 bytes
-rw-r--r--tests/phaos-xmldsig-three/certs/dsa-cert.derbin0 -> 915 bytes
-rw-r--r--tests/phaos-xmldsig-three/certs/enc-dsa-key.derbin0 -> 374 bytes
-rw-r--r--tests/phaos-xmldsig-three/certs/enc-rsa-key.derbin0 -> 678 bytes
-rw-r--r--tests/phaos-xmldsig-three/certs/hmackey.bin1
-rw-r--r--tests/phaos-xmldsig-three/certs/rsa-ca-cert.derbin0 -> 722 bytes
-rw-r--r--tests/phaos-xmldsig-three/certs/rsa-cert.derbin0 -> 724 bytes
-rw-r--r--tests/phaos-xmldsig-three/document-stylesheet.xml7
-rw-r--r--tests/phaos-xmldsig-three/document.b644
-rw-r--r--tests/phaos-xmldsig-three/document.xml6
-rw-r--r--tests/phaos-xmldsig-three/document.xsl45
-rw-r--r--tests/phaos-xmldsig-three/signature-big.xml39
-rw-r--r--tests/phaos-xmldsig-three/signature-dsa-detached.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-dsa-enveloped.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-dsa-enveloping.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-dsa-manifest.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-hmac-md5-c14n-enveloping.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-hmac-sha1-40-c14n-comments-detached.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-comments-detached.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-enveloped.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-detached-b64-transform.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-detached-xpath-transform.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method.xml39
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform.xml39
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-detached.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-sig.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-enveloped.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-enveloping.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-manifest.xml1
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped.xml6
-rw-r--r--tests/phaos-xmldsig-three/signature-rsa-~x509-data-crl.xml1
-rwxr-xr-xtests/testDSig.sh875
-rwxr-xr-xtests/testEnc.sh411
-rwxr-xr-xtests/testKeys.sh69
-rwxr-xr-xtests/testRes.sh20
-rwxr-xr-xtests/testXKMS.sh129
-rwxr-xr-xtests/testrun.sh443
-rw-r--r--tests/xmldsig2ed-tests/c14n11/xml-base-input.xml17
-rw-r--r--tests/xmldsig2ed-tests/defCan-1.tmpl2
-rw-r--r--tests/xmldsig2ed-tests/defCan-1.xml2
-rw-r--r--tests/xmldsig2ed-tests/defCan-2.tmpl2
-rw-r--r--tests/xmldsig2ed-tests/defCan-2.xml2
-rw-r--r--tests/xmldsig2ed-tests/defCan-3.tmpl2
-rw-r--r--tests/xmldsig2ed-tests/defCan-3.xml2
-rw-r--r--tests/xmldsig2ed-tests/xpointer-1-SUN.xml21
-rw-r--r--tests/xmldsig2ed-tests/xpointer-2-SUN.xml21
-rw-r--r--tests/xmldsig2ed-tests/xpointer-3-SUN.xml21
-rw-r--r--tests/xmldsig2ed-tests/xpointer-4-SUN.xml21
-rw-r--r--tests/xmldsig2ed-tests/xpointer-5-SUN.xml21
-rw-r--r--tests/xmldsig2ed-tests/xpointer-6-SUN.xml21
479 files changed, 27210 insertions, 0 deletions
diff --git a/tests/01-phaos-xmlenc-3/Readme.txt b/tests/01-phaos-xmlenc-3/Readme.txt
new file mode 100644
index 00000000..5d11ee2d
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/Readme.txt
@@ -0,0 +1,52 @@
+This directory contains the following files:
+
+ Readme.txt -- This file.
+
+ payment.xml -- A sample XML file.
+
+ key.txt -- Keys for decrypting the encrypted XML files enc-*-*-*-*.xml.
+
+ dh-priv-key.der
+ -- Diffie-Hellman private key encoded in PKCS#8 PrivateKeyInfo formate.
+ This key can be used to decrypt the files enc-*-*-ka-dh.xml.
+ rsa-priv-key.der
+ -- RSA private key encoded in PKCS#8 PrivateKeyInfo formate.
+ This key can be used to decrypt the files enc-*-*-kt-*.xml.
+
+ enc-*-*-*-*.xml
+ -- XML document obtained by encrypting and replacing part of the
+ sample payment.xml. The data encryption key is in turn
+ encrypted.
+
+ Each file has the form: enc-A-B-C-D.xml, where:
+
+ A indicates the type of the data encrypted. This includes:
+
+ element = The CreditCard element.
+ content = The content of the CreditCard element
+ (multiple elements).
+ text = The content of the Number element (text node).
+
+ B indicates the data encryption algorithm.
+
+ C indicates the key encryption protocols:
+ kt = key transport
+ kw = key wrap
+ ka = key agreement
+
+ D indicates the key encryption algorithm.
+
+bad-*-enc-*-*-*-*.xml
+ -- some "screw-up" samples
+
+The sample encrypted XML files are produced from Phaos XML toolkit.
+
+Jiandong Guo
+Phaos Technology
+http://www.phaos.com
+
+jguo@phaos.com
+
+
+
+
diff --git a/tests/01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des.xml b/tests/01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des.xml
new file mode 100644
index 00000000..b7156579
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-tripledes-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>HgVuHoXxBQWD9fvi0gt9TanywZ5lJokM/12fcMG6gRoMjsCPulH+4A==</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ yUMIHkj5EETckjZ59fpda4+m4YLCrkJsnuRz+Q3e5sP+VvHKRH1kdeGkXw3kYURV
+ JM3nQjGl2egW80oUxSykQD2F9iDoIjNhLSgIbyuse64oo/5/v9IiaUpSvrAocwLP
+ AzFIUmOrxmIagAkRGDOeMR8tdHLD6g84dQj4O/aGfwhL/2wUo/l+7onrbmsd6pVI
+ fjNyvXm+eITuyUnkDTHrCR+dfb2sHaQ3g3McgyfP6ZjI/L50SPJZ/w==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/dh-priv-key.der b/tests/01-phaos-xmlenc-3/dh-priv-key.der
new file mode 100644
index 00000000..8af4f0ac
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/dh-priv-key.der
Binary files differ
diff --git a/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data b/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.tmpl b/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.tmpl
new file mode 100644
index 00000000..fa26733c
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes192-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.xml b/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.xml
new file mode 100644
index 00000000..4771f01d
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes192-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>5+GpVUQNTAT3uY8pPedEg/PpftiX+fJsTCun+fgmIz0=</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ QBWlf/iYDXKbBWf0Pu3Bgzt5oLBwIs4NKPb/I0SxDYVnDc34i7tZG5UzHlztsWlX
+ udfbIW9l7k5WVdy9bfXZWrp6sXamBedUQTrr+z4v4u2jWaUyqEioLe7h36QeoU23
+ QvkOzRO9AiWm/QCCzePZ3Frp4LM9lXOE
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data b/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.tmpl b/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.tmpl
new file mode 100644
index 00000000..623a8268
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-3des-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.xml b/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.xml
new file mode 100644
index 00000000..7958d57d
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-3des-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>/PZvvn42E9dmMUZ8KCY6B5XtLaaIaG4X5YNDwgV5Vlo=</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ rINpr0HonGcKnnf/vYx8N3gnd+1rb+zwH1vnfjyt+bOoSU72w/QqniT71/GxtFFx
+ gwE0/arABVa1r8/PMRerWqyParMnpwIRq6dzQHKb5SqiqFEYPRZhytTGZFXN39oG
+ YZkSINOli5paMwTWrq6hDSPRozKvfEqhuI0VgZU4OLM=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data b/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.tmpl b/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.tmpl
new file mode 100644
index 00000000..11aa7632
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml b/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml
new file mode 100644
index 00000000..86a787be
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>IbnoS1cvuIFIGB46jj1V1FGftc92irrCwcC7BoBvxwQ=</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ /RDTbL2ce9Ca+2GS0FLJbFMXcpEvDLlW5RnpeKLe+pIO1lNpxsi40/tsqCVauD66
+ FOCaXkKPcQYaeHVtD4jnE/OHZYFVJ8zS8z4I7nDg44R1e9ZJ9xN3kAEub1T2MdeK
+ SVxPrhksHOWTwxFbPul9YRaNsrmi9a0XN4ggudJu+Rw=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data b/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.tmpl b/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.tmpl
new file mode 100644
index 00000000..709ee222
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.tmpl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:RetrievalMethod Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey" URI="#EK"/>
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml b/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml
new file mode 100644
index 00000000..3f77c81b
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:RetrievalMethod Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey" URI="#EK"/>
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ Vc7VOXgJDlw/oQ0hOvIaBKsGiOwyvIArzkhd2W7mZBQyeFlkJlxZQdnPGGg4kJE9
+ EGWeMWQZ0XavJy+xA9Z+PlIFqkpPHUXyos9jZZNniRxEtl6tLce2ReSVah+y8Lb3
+ 3xSNSm+O9k2B42yP3Osrj175KNMSMLLM2ZuA0iq28aP7v7DmtDY7VNp0n+O4nJUM
+ Eyy4RO0jmtXctt3jUfpCmGkqy42/LG6F5h1kluyfszjHvi/9lD5LEkCl2Y/3az+j
+ 2vLuuXM45z6ef14Dlgsh7eJtqp3bRT0Tpp4JvBWMiuDZaV1zUcZq7q80lNMvXucb
+ mSrSmlXn2lWPttfTrcjXrw==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ p5MMs6F765jIUqOj5rH1vAro0Rx4/PLIoEOXCOWaEGbEdCHh0m86zifozutcmoBA
+ xy1SuxmJjtFDO32f/bpuDhdzFDgLrlVIcXrNeHGgken6NryC2n1NdGS9CiYsyaPF
+ B5CWEkx3Prtbak6S20z3XZTJltOdoqzeNOn8/IDavLA=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml b/tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml
new file mode 100644
index 00000000..ec75a1a7
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>YWJjZGU=</KA-Nonce>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <OriginatorKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjDCCA/WgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUwNDBaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJDMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GEAAKBgFWw
+ LyYO4IPxJsbaQQsJ4K1xTjPSjTMmvG4fpKA+S1BGz8FI1SPACb2/YYCrmjoWNvkQ
+ V6NTQ+eji6TGA7ET85c4AcRZtxOi3gSP5Kq2A3E9dUouikhrKSHFb+Nx420CXmtp
+ jxBu+qUTb7AMrRCus8maHwU9PdKQbZxoDFOLArJHo00wSzAPBgNVHQ8BAf8EBQMD
+ BwgAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3Mub3JnMB0GA1UdDgQWBBTfky/d+/wI
+ 6zicN4uDl0PSAyRNnTANBgkqhkiG9w0BAQQFAAOBgQA+2cWsAZ9a44ttBX1Z3eMI
+ e0GgduXErBt9xsv2Sy6fS/6CyyJm3tpthuT2WMZmu6E+ceBLkFU+TnxnEf/NrSj8
+ wtQt/wVHacaSZMcwUDv/uTUxrtIZUJ7A7VxcAvbnLE5fQqKhF6QT5irtbE2Ryvd7
+ oMfGG8PmU+sbN9sNXtIzOA==
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjTCCA/agAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUyNTNaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJEMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GFAAKBgQCM
+ KtnMyjT9G1LKTZoN7rHwIO08D5j1YYIscsQDc+q4ny5WEFo+wEmOqxGcE9JrRdeb
+ it6cT8F7TWWzeDJUyaXFEi4E1panCBCL1crqS/HbY8VH/zzhT+5L232LchsoYa1p
+ dqxxLHW8RrOax4RLVrcIOPcW4x3Ggk0ANYQhR6kNmqNNMEswDwYDVR0PAQH/BAUD
+ AwcIADAZBgNVHREEEjAQgQ50ZWNoQHBoYW9zLm9yZzAdBgNVHQ4EFgQUHddBJmfV
+ 6MD3FTbVmHcLFN6QFAcwDQYJKoZIhvcNAQEEBQADgYEAKZl9P/ZmIrwHp3BTfBHl
+ eFBk9CbhK14FObMGWSkfjqipb5snXBPE3uPBrvP1StisPRsK/y1OZfcjjkA6ht0j
+ YWp9lohNDTlc/NOKGOQSCpntqr+wQhc6l16jezqR7sKv2eHBFGs0V7HCrEe2mTP4
+ rDa/YKrmL5K6S9GSF27rx40=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ BsIAtHyqE+foVEU2B8EoSAErEMjuunlXygmu+BC6SN+mYGFEsQ/frVzgiKBo2yRe
+ bbnuUqAwDx03wS4zqmW5lD1C6bm/9tUSSv8HcNr7vRqrx3tRQ51y6y5xRbhjK6Zi
+ vKHDXwZpxY4CnhfUwbtTSZisjNn/eV6UYxZdz2zmTxAJXAPI1dVFiPdqhljXhlDE
+ tVAt/1f+//u1D782NMCuPVUt09Mtbf0pcFJhtoCmx84NVT3XwK+2Tg==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.tmpl b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.tmpl
new file mode 100644
index 00000000..8328ebb6
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.tmpl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml
new file mode 100644
index 00000000..2772fbd7
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ bYDE3XSjELiEW/rX08ZQUcG1dK1l1uSw14EKhIHbwrM8DFZKF4fBaPXxG/91mkOA
+ cs3q0LZESrqHGVrm9UvqL48utkNrR56ud60FhIgSBgdKE/9qTMjrSCX1Vw7xfhJH
+ Fc4tD3vjhALLaO3SUT8esPQKPK4gEWYMNzdpyNQuD0mrLiQ/SnHuHKzBmSjjgKkk
+ xFcFVdiPT/XAhEZcuvkOyLMYgPN55slcnRzckOEq6zOcu8Ww6/2dG0a0TRioFeHW
+ ecqmW8jawxxOVnVVSdDNlqwYWpM+2XxgYuSifsDwkwaNwVAM/xXgj05ZPr49powT
+ 1nZJ5cARCmW5zLh6aNpQng==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ LBisCaY4C+s7h8LjVpi8++dCzxxM2P7jR+rw+W0bVZz/YNfG9Q4Id/GkTlcYP/aT
+ WNJfNVhip8KD6QiQqjsRkaF81w8Uam1lVXz8X2Gc6Rsx5L7j+1OblmB6VLPuIwBJ
+ wImjNiEX4RhrS4TfxF/zIq0sLT2DCHdHI752VCnZ8ulVKDnamCZUvT95YqlcCYnc
+ VWAOV5fYH3YvtZ6S/zpTEKW79dnGQZL8od5aJsRrid5fq49X/5KtMw==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.tmpl b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.tmpl
new file mode 100644
index 00000000..3405bd9f
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml
new file mode 100644
index 00000000..2cce7a18
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ ZF0JPSfv75/8M+O2O/xi+8N1b9KT94a4l1D1Q65hnX6F00t+wAWZSkcDUoD/y2/E
+ RKGUyuQwsG6l58e4MwYpmDI4RhHrUYLCQBacAehqVZhwNxv99L7ANsqrZJoT7N0k
+ ER9MbmuIZGb4qisLDfZtzIGKKUUiA3ARfQny4MUxFovSmVUF2OjqSBXUVV/PjMLi
+ fVTVyqCMv08YwmM4abj33tKOEMtiZqAa09lUIpnCUzq2IAShSRNBzWIHe+ndoB6G
+ 2p6ufk0TuRidwdQZkZwTW/2PjK1x7KejaqADWaOIImKhSBMpGzkVfDuv8aAFXOtf
+ +LV67Ov6hJAt7FB65tE9Hg==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ kY6scZxpyRXQbaDZp+LbuvSFYgmI3pQrfsrCVt3/9sZzpeUTPXJEatQ5KPOXYpJC
+ Gid01h/T8PIezic0Ooz/jU+r3kYMKesMYiXin4CXTZYcGhd0TjmOd4kg1vlhE8kt
+ WLC7JDzFLPAqXbOug3ghmWunFiUETbGJaF5V4AHIoZrYP+RS3DTLgJcATuDeWyOd
+ ueqnLefXiCDNqgSTsK4OyNlX0fpUJgKbL+Mhf5vsqxyIqDsS/p6cRA==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml
new file mode 100644
index 00000000..29c97303
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ Y97gGuJRx1Vt31KHkKJfJCh/7XSSQxMH8rF+GAlnEMd4fq8+sL92XBMtLiLiNeWC
+ VNaiBorxZrqIW9xPAcOdvN1v1QIxlhf8LtiFyBMWKQm9i61t64cJC2ZRCdT8nPxy
+ Qt+fvUXGpLn0LA4cHyMukeLPO4EUQY8whunVXkuSgTKjJICxYKF8HNYsHUr1/fyy
+ QL2PW1/UfyEpSBJAZMg+TQFuBSCbAuWbFK2AgSupV5NIppBNU/eRhArReeuAgzSu
+ nY9dX1ofdZs8GzvuV8tfcBHzT/h59MPYMxl4sZrl/0NeMQ0ewZhX3yygebgyzZNP
+ 4TB4QzQZHRoXNIPUs0vkfA==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 3Bg5VZK+B/FETt4rT4baIJ4jFKBraqxPnltaSNC672NTcMxBlWG5omCGsbL31gAe
+ BDNelmi+3OmqhPLYYsbNOSl6O7YKoP6JvbXVcUcwWwsjEt9Fm6PTrTMy+vp+bgFM
+ J8L0WCwyPXnCl/DJS99eaGSG518ynfM/cEmDUINFatT8PX55B4Pd+o1BWkmVxg+E
+ jOgiai7L35HCOTpiBwLUUErvvulujk9iFW5ZvqkgIDLOlDLfx4/V9A==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml
new file mode 100644
index 00000000..3cdc2a1b
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ bJVDvrtv578zcv3L/pK2YCCJtvMTDupUJB5+ZNlr6QjWolttow3QRrYHXj/W00SX
+ lGMdqRuJOkn575Xq3PHO1smO5cxWl5j7sTzVSAkzx/Z5xqiMhrFV+lBWOA/vp437
+ mEyGUxDrlE3E2NwvKCn8ovP3OrLIz3TVzy3U16hm0yriWcIZAQEpCQsSLxtPWVXt
+ +MMVvn/9y1CLAZh6dHBVHipp/mpf2X2ki4XuHvCRvaAB0fynB3mVbOUAi/NYR65o
+ u5BOfeS7HgTkWpo/XTa7e/XpkGsShodOm4ixJ+wKSNsMgNXivYmtghQR79x8H0+J
+ lMeTf3dYtV3RUJvi5n1CRA==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ HkxiYRptVjgbv1UjUpyAYp/ty8vBgGgQY/Zr+0tz5Z8W16gp7kvHxAIcyL3E81yO
+ 7G54qhvQS4Ie1Et+j9/XEgBL8RdF8TdBnQ5PlPaoW0ckIV/f8gIxxGU0akjciUSG
+ iXHKL059fdr46aDFLYtwniNiJYG16eG/FFhlDdplWIK+FkaTEMMADEG78Dryle+A
+ DTl1V63WGBpS73k21hag/Mwv2xw5HUasmP1RFuLX4JCxcZAwJrPzoA==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data b/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.tmpl b/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.tmpl
new file mode 100644
index 00000000..072859ba
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-tripledes-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml b/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml
new file mode 100644
index 00000000..dad2cccf
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-tripledes-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>HgVuHoXxBQWD9fvi0gt9TanywZ5lJokM/12fcMG6gRoMjsCPulH+4A==</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ yUMIHkj5EETckjZ59fpda4+m4YLCrkJsnuRz+Q3e5sP+VvHKRH1kdeGkXw3kYURV
+ JM3nQjGl2egW80oUxSykQD2F9iDoIjNhLSgIbyuse64oo/5/v9IiaUpSvrAocwLP
+ AzFIUmOrxmIagAkRGDOeMR8tdHLD6g84dQj4O/aGfwhL/2wUo/l+7onrbmsd6pVI
+ fjNyvXm+eITuyUnkDTHrCR+dfb2sHaQ3g3McgyfP6ZjI/L50SPJZ/w==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml b/tests/01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml
new file mode 100644
index 00000000..4672de73
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>YWJjZGU=</KA-Nonce>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <OriginatorKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjDCCA/WgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUwNDBaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJDMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GEAAKBgFWw
+ LyYO4IPxJsbaQQsJ4K1xTjPSjTMmvG4fpKA+S1BGz8FI1SPACb2/YYCrmjoWNvkQ
+ V6NTQ+eji6TGA7ET85c4AcRZtxOi3gSP5Kq2A3E9dUouikhrKSHFb+Nx420CXmtp
+ jxBu+qUTb7AMrRCus8maHwU9PdKQbZxoDFOLArJHo00wSzAPBgNVHQ8BAf8EBQMD
+ BwgAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3Mub3JnMB0GA1UdDgQWBBTfky/d+/wI
+ 6zicN4uDl0PSAyRNnTANBgkqhkiG9w0BAQQFAAOBgQA+2cWsAZ9a44ttBX1Z3eMI
+ e0GgduXErBt9xsv2Sy6fS/6CyyJm3tpthuT2WMZmu6E+ceBLkFU+TnxnEf/NrSj8
+ wtQt/wVHacaSZMcwUDv/uTUxrtIZUJ7A7VxcAvbnLE5fQqKhF6QT5irtbE2Ryvd7
+ oMfGG8PmU+sbN9sNXtIzOA==
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjTCCA/agAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUyNTNaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJEMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GFAAKBgQCM
+ KtnMyjT9G1LKTZoN7rHwIO08D5j1YYIscsQDc+q4ny5WEFo+wEmOqxGcE9JrRdeb
+ it6cT8F7TWWzeDJUyaXFEi4E1panCBCL1crqS/HbY8VH/zzhT+5L232LchsoYa1p
+ dqxxLHW8RrOax4RLVrcIOPcW4x3Ggk0ANYQhR6kNmqNNMEswDwYDVR0PAQH/BAUD
+ AwcIADAZBgNVHREEEjAQgQ50ZWNoQHBoYW9zLm9yZzAdBgNVHQ4EFgQUHddBJmfV
+ 6MD3FTbVmHcLFN6QFAcwDQYJKoZIhvcNAQEEBQADgYEAKZl9P/ZmIrwHp3BTfBHl
+ eFBk9CbhK14FObMGWSkfjqipb5snXBPE3uPBrvP1StisPRsK/y1OZfcjjkA6ht0j
+ YWp9lohNDTlc/NOKGOQSCpntqr+wQhc6l16jezqR7sKv2eHBFGs0V7HCrEe2mTP4
+ rDa/YKrmL5K6S9GSF27rx40=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 2+4oM3TFfOQ5JMIvRbTk3SbeWqbSVAhMb9zT+3BatcUJuhxzzXtLKEzkfPT09iTP
+ NmwEoUysB5uETmQ49Fd/0l21QjUmctAaCBIbWSrP4f3K2SUGxjKNZE4Pes+8DwiT
+ H1cak+3qT0zbqFa6rXcdLxS/ucxJOPMJV9ZCE4SkvFt2ZME8uRevFEYIqp/HInFZ
+ OjY9Lf8+hHOXVOVqrMObx7/CFzm0AS2aL4WmyfGM3zyUN1BF3nS4zzVOHNfIFopX
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.tmpl
new file mode 100644
index 00000000..78b6a0f7
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml
new file mode 100644
index 00000000..ff5816e7
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ cCxxYh3xGBTqlXbhmKxWzNMlHeE28E7vPrMyM5V4T+t1Iy2csj1BoQ7cqBjEhqEy
+ Eot4WNRYsY7P44mWBKurj2mdWQWgoxHvtITP9AR3JTMxUo3TF5ltW76DLDsEvWlE
+ uZKam0PYj6lYPKd4npUULeZyR/rDRrth/wFIBD8vbQlUsBHapNT9MbQfSKZemOuT
+ UJL9PNgsosySpKrX564oQw398XsxfTFxi4hqbdqzA/CLL418X01hUjIHdyv6XnA2
+ 98Bmfv9WMPpX05udR4raDv5X8NWxjH00hAhasM3qumxoyCT6mAGfqvE23I+OXtrN
+ lUvE9mMjANw4zweCHsOcfw==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ u2vogkwlvFqeknJ0lYTBZkWS/eX8LR1fDPFMfyK1/UY0EyZfHvbONfDHcC/HLv/f
+ aAOOO2Y0GqsknP0LYT1OznkiJrzx134cmJCgbyrYXd3Mp21Pq3rs66JJ34Qt3/+I
+ EyJBUSMT8TdT3fBD44BtOqH2op/hy2g3hQPFZul4GiHBEnNJL/4nU1yad3bMvtAB
+ mzhx80lJvPGLcruj5V77WMvkvZfoeEqMq4qPWK02ZURsJsq0iZcJDi39NB7OCiON
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.tmpl
new file mode 100644
index 00000000..f42357fb
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml
new file mode 100644
index 00000000..e8ec21fe
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ W6N0IhRF2AdgfzzkZSp/u1kH5KmH8L4W8k4mdNMboLsYgnBUV3lsRvoFrVTXluMV
+ DtXY1ju7aAEUJP9eMRU676kvRR5nSVuAbWCAejgkHMtGShJHU1s/JMzbu3iaxsuy
+ PosT7/iafinNIXumvqLM/WQl9KbsmcWoAmJISbK1+WJ2kahrXNav4+7vMJq90BOP
+ l8bXIzeKIsps7OGwEvrFaJ5RzVjZXi9SDXXD1vd6tJBcCfcZ347Mat1tZkR3cYrC
+ MhDdte3gYGUQLzUlMYucvWz1slzTX3rYea/vhgA+OLOpdZxwM4igx1d8j5jjmo8F
+ R1rxwd0G4NHA1bZ6TOy/IA==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ YjIkLPqklVVN1faEsX1t5EXXxdlW3B0rKoZsT5DtaS+pChdcceQV605clJ8YEhOj
+ EhM0oCGf855bQVWp7J3TJqUFlxahREEWCfEvsIUzy/wNMHV6Z/mTFkQUWnrO3C3D
+ SC6rTglijkPp592Sh1Cb6HTD60Nc/Myn3QLnwlSj+30x3uTUiAVEL+xduAnppCR1
+ vhRsB3yw32TjRfZt1b+UURRzCts5oLrVAu9SSrmgJI+vUX9gsRgvwkmsi4AAq38a
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.tmpl
new file mode 100644
index 00000000..dc60d67b
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes128-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData> \ No newline at end of file
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml
new file mode 100644
index 00000000..aa6f0ff4
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes128-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>GPl6bneL1jKl0/lGnf9gejlYHRI6XxFz</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ AbJmB4dsNP5svH3n260KeHFFqRoXaBoDYIqtrhXHE0t1TvJaGtvwjJt2pgM8Yffc
+ xKyOLWJljv+FraXUZFnW+VJloMTAXQ8DyeR8ds1sj6X7hT62RFIKm0DvggdBAh9d
+ tpeF6fwtOeUUCmidna7im7SLh9a9/CKTBb9RqDzKXQ+Sai6knJPZHtX/yF6ZedgX
+ GOUFLX3EdzwVgJ3jnKcB/LZjapsPrRs+6lMdck26aRizWJBHYpY86gWWnu+Ob+/k
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.tmpl
new file mode 100644
index 00000000..b139039a
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData> \ No newline at end of file
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml
new file mode 100644
index 00000000..2b376a1d
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>ic+Om6/3ZKcThVN3iv9lUEankNkDv3Et</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ T+1ay9FMWTWWnoPYUhVHMA2SNV2w9OirluWOrMSZvRUC8mQHmYfKcuD9WshrgtVd
+ dnsiPobRS+Q0DJgfX8CtfjJ3wtQ2DXX9GFgV8662G0hZEjQ4SGgWhxtQEusjVFSl
+ Uw4/pxmECD5O6K7N9PwnlYwMm9teksvfWcG5xir+w4k24cc9njLj5Yd0uX2o5Nj1
+ sjjNFzbw5cQ4Fx3KSG2HGwnnC/+5/xyoX1eJgdOxdKQvR8uSMmyIcTPGVtRAzH3l
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml b/tests/01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml
new file mode 100644
index 00000000..d722ccdf
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>YWJjZGU=</KA-Nonce>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <OriginatorKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjDCCA/WgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUwNDBaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJDMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GEAAKBgFWw
+ LyYO4IPxJsbaQQsJ4K1xTjPSjTMmvG4fpKA+S1BGz8FI1SPACb2/YYCrmjoWNvkQ
+ V6NTQ+eji6TGA7ET85c4AcRZtxOi3gSP5Kq2A3E9dUouikhrKSHFb+Nx420CXmtp
+ jxBu+qUTb7AMrRCus8maHwU9PdKQbZxoDFOLArJHo00wSzAPBgNVHQ8BAf8EBQMD
+ BwgAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3Mub3JnMB0GA1UdDgQWBBTfky/d+/wI
+ 6zicN4uDl0PSAyRNnTANBgkqhkiG9w0BAQQFAAOBgQA+2cWsAZ9a44ttBX1Z3eMI
+ e0GgduXErBt9xsv2Sy6fS/6CyyJm3tpthuT2WMZmu6E+ceBLkFU+TnxnEf/NrSj8
+ wtQt/wVHacaSZMcwUDv/uTUxrtIZUJ7A7VxcAvbnLE5fQqKhF6QT5irtbE2Ryvd7
+ oMfGG8PmU+sbN9sNXtIzOA==
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjTCCA/agAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUyNTNaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJEMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GFAAKBgQCM
+ KtnMyjT9G1LKTZoN7rHwIO08D5j1YYIscsQDc+q4ny5WEFo+wEmOqxGcE9JrRdeb
+ it6cT8F7TWWzeDJUyaXFEi4E1panCBCL1crqS/HbY8VH/zzhT+5L232LchsoYa1p
+ dqxxLHW8RrOax4RLVrcIOPcW4x3Ggk0ANYQhR6kNmqNNMEswDwYDVR0PAQH/BAUD
+ AwcIADAZBgNVHREEEjAQgQ50ZWNoQHBoYW9zLm9yZzAdBgNVHQ4EFgQUHddBJmfV
+ 6MD3FTbVmHcLFN6QFAcwDQYJKoZIhvcNAQEEBQADgYEAKZl9P/ZmIrwHp3BTfBHl
+ eFBk9CbhK14FObMGWSkfjqipb5snXBPE3uPBrvP1StisPRsK/y1OZfcjjkA6ht0j
+ YWp9lohNDTlc/NOKGOQSCpntqr+wQhc6l16jezqR7sKv2eHBFGs0V7HCrEe2mTP4
+ rDa/YKrmL5K6S9GSF27rx40=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ jg5SecwV6R7dluAMEUsPwWmrTc236XCF8xEVEV7cyEJDfTmdk6BNX4w5BKfFDfOP
+ ph4t428f9HI3WIg48BVY8DDaYOReo0a3BKcIoiDjo80V5eZdAQdlWLOecKmD339+
+ gqxeBIdJkmQyIpKqDM2NAlqcKM0p+utAn5M8fUosBBO7boJ8i/lnOvDrkqiELHQy
+ ZZZKgWsYoIZNKPq1Fd6AUVBAIod3ruMfZYVfXL5G2S1jYa8JNcwp2MU32SIuSIxL
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data b/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.tmpl
new file mode 100644
index 00000000..ca51a473
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml b/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml
new file mode 100644
index 00000000..ecad1ebb
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ ELSmG8oo52p2ANjbCRJDV0K6M/3W+1b+3A1c07oNWdxeUerdUBarYe5BQingndIv
+ y4qfD9hGif8AmY0IXuLWptmZYx8TlHLSYw7TUfLxYMVLzUVtDgrPAqXStNcpJK/l
+ 0INMurXU+xnvDXpQEcCthh6C8AWxvXDVKW+8Ud8vLYkGGNVgtEPtdAybx2WptfzJ
+ TSYvkRr0VEjDJSg9ZPSJLCeOwQZ9+YvP9F9E556EHK5A476fAgeNL3uefsZ4Yo4Q
+ 1UANOvSBtY2ro8xOj6PyBI/5RiW9AVUQd+5UiPq1/jWSoKTFaWib4xr5WhI4dQlc
+ nkYU3EYhmST4pokqevZplw==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ WeFDc5EMzI4i77yhGpY2Ae+5VvbPSdnrmXvlRrntz5v6snRmVxtSAXJQgJiouER8
+ BNVTiMdB/YcpzOeWLAEfEZG1PswYFsmkYd9QCvGpv1oXisv9Cv8uR9BBmz/ylOmX
+ pBCfU38i0fR90JOkGMjwtlkNTwPwOsG5EFRch8jx/wk6qaj6qojJOA21IlFsTKFA
+ ugZ3uZeDFPNBJMSVnLudyMFrQYWT14ji/aFETqhQxwlHkgrx1WDN26tBN/9Q6aTZ
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data b/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.tmpl
new file mode 100644
index 00000000..a90d3250
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes192-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml b/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml
new file mode 100644
index 00000000..d3cc6307
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes192-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>iuZvvGBWScikHld9TtNIOz0Sm7Srg5AcxOBMA8qIvQY=</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ /zILD8Eq5vvZK7A+XJaHzoXVqPkk91sOunyhqj+yFA6ZJquaFSUz3A/aQ8AkTrVS
+ /rGiNCXDOfmpIab6DRH5deOG0RNxDQvtSiAmM+Beb+Aas5WJ9UNKk1ff8sBdgznl
+ 9u8ApmELFPj5u2ucOdCOGS+Re708aSI6SGmqUEJusoXLWJSSD0gE1xW1hmukrTaR
+ p8kkchaNNTM+x4gLbq3sSsfncnCo9E/MpeQqQfBPL7r92UwvUMY/DEVz0BbKLomG
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml b/tests/01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml
new file mode 100644
index 00000000..221665f3
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>YWJjZGU=</KA-Nonce>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <OriginatorKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjDCCA/WgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUwNDBaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJDMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GEAAKBgFWw
+ LyYO4IPxJsbaQQsJ4K1xTjPSjTMmvG4fpKA+S1BGz8FI1SPACb2/YYCrmjoWNvkQ
+ V6NTQ+eji6TGA7ET85c4AcRZtxOi3gSP5Kq2A3E9dUouikhrKSHFb+Nx420CXmtp
+ jxBu+qUTb7AMrRCus8maHwU9PdKQbZxoDFOLArJHo00wSzAPBgNVHQ8BAf8EBQMD
+ BwgAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3Mub3JnMB0GA1UdDgQWBBTfky/d+/wI
+ 6zicN4uDl0PSAyRNnTANBgkqhkiG9w0BAQQFAAOBgQA+2cWsAZ9a44ttBX1Z3eMI
+ e0GgduXErBt9xsv2Sy6fS/6CyyJm3tpthuT2WMZmu6E+ceBLkFU+TnxnEf/NrSj8
+ wtQt/wVHacaSZMcwUDv/uTUxrtIZUJ7A7VxcAvbnLE5fQqKhF6QT5irtbE2Ryvd7
+ oMfGG8PmU+sbN9sNXtIzOA==
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIEjTCCA/agAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzAyMjUyNTNaFw0xMDAxMDEwNTAwMDBaMIGMMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEOMAwGA1UEChMFUGhhb3MxFDASBgNV
+ BAsTC0hlYWQgT2ZmaWNlMRcwFQYDVQQDEw5ESCBUZXN0IENsaWVudDEdMBsGCSqG
+ SIb3DQEJARYOdGVjaEBwaGFvcy5vcmcwggJEMIIBuAYHKoZIzj4CATCCAasCgYEA
+ uavat7i6NOpnRObdx7Gz38h8xkgmv20XUaj1JjfvMAQfQFMHeshGhY2Q0mwvJ1Of
+ X/kZ4cMbSYUywh3WAY6zQs8W2uxg8GeduCLebNQGTaHVFVmrJMQawlV1bIMQ+kDi
+ IQNR/FPqSNHKD2Q9/uoGD5d2l4KP3qH8dv5HOT8fCwUCgYBxunqmUuKZFTNKJhH9
+ G6UINlI/Xr9jPesj5/I8fpWgxZxsgkzksqisDCslZ09uZTATrGFTF3fk6kNhx25s
+ UCtYHHK1HzQmsLMu2BWNBQrkLC+Mkd3d39UdNduPW4kCMpcdoHAh+zTqAH2QkKJm
+ yxc/x0LevkSUk8rX8DFa3y152QIVAL+Eo4gPL339dk7inq87PnR1PWuHAm0A+C9E
+ GPDSphFaPWO5LQTNflJ0l9IGjcNFGrJX0imWrjM2q6bGYz0ZK4cJhcX12YZOjR52
+ TZh3cy6yAJG470i65nlz5/3ESWFHsMO0COrDi/Ca5RfMrYGcc8hrydzFlT1zqMFa
+ 1yuqQKVsGwXcMBwDFgCZ/hqLAtBi6dyv6Ky+OfXfXgJBPhQCAgNPA4GFAAKBgQCM
+ KtnMyjT9G1LKTZoN7rHwIO08D5j1YYIscsQDc+q4ny5WEFo+wEmOqxGcE9JrRdeb
+ it6cT8F7TWWzeDJUyaXFEi4E1panCBCL1crqS/HbY8VH/zzhT+5L232LchsoYa1p
+ dqxxLHW8RrOax4RLVrcIOPcW4x3Ggk0ANYQhR6kNmqNNMEswDwYDVR0PAQH/BAUD
+ AwcIADAZBgNVHREEEjAQgQ50ZWNoQHBoYW9zLm9yZzAdBgNVHQ4EFgQUHddBJmfV
+ 6MD3FTbVmHcLFN6QFAcwDQYJKoZIhvcNAQEEBQADgYEAKZl9P/ZmIrwHp3BTfBHl
+ eFBk9CbhK14FObMGWSkfjqipb5snXBPE3uPBrvP1StisPRsK/y1OZfcjjkA6ht0j
+ YWp9lohNDTlc/NOKGOQSCpntqr+wQhc6l16jezqR7sKv2eHBFGs0V7HCrEe2mTP4
+ rDa/YKrmL5K6S9GSF27rx40=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ aXXD/Yz+ENFF/uop7z9RwfeVfdFteZwcxMILahK/NKF58LMsUKcr0C9jk5IkMZqJ
+ m+bszCs5O61zLI/iJcKFUU2VrokeTuYUP2BZMoxL7q0zqUs7bIwm61IEmU0ghtAT
+ 5jSGCbZLPfz3SRe3de023098UbTg+xC/zLslLxBvEtuZh/rNIoNlCA1WwUNV7oRG
+ tFoqxzDDh/hyBJzSMAw/S/efNORn4Bbfqu4WjO5bN8wxCi1ATFtAmhSVh3c6t1/U
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data b/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.tmpl b/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.tmpl
new file mode 100644
index 00000000..95d16987
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml b/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml
new file mode 100644
index 00000000..9730db87
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>IMwdsyg89IZ4Txf1SYYZNKUOKuYdDoIi/zEKXCjj4j9PM6BdkZligA==</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ sKcjsnw0spmr+iFPf2FWILKQz32+8DvSGm6WTtmMd9syqY/+BIubjH3PS7ROuGY6
+ xaotStXfOXm5fE4R3Haqw/04gfV4jJU3vIZZHYj9blDIn602YtqI+xti2zZOhGZ4
+ 9gssg7m8ZOJ28yfbQfNw97RdwQiSnIU/Bh87xQJRDK0/M3fOHylMUTH7xMMbQu5m
+ rhYj49kNpnVK7XyP7jCek0lT2ei7KYdKaxD/Jm/xWPxaxyS2C8q9bku5HMsEKJOn
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data b/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl b/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl
new file mode 100644
index 00000000..37e28273
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml b/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml
new file mode 100644
index 00000000..b972f1d4
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number><EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes256-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ jOvQe4SxDqEMvAHcmb3Z+/Uedj23pvL6BRQsl2sjJlQ=
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ tY3V4h8kopDTZXb80BoqEWH7/nWryHZhU504S1ZRPLw=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData></Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data b/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.tmpl b/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.tmpl
new file mode 100644
index 00000000..5da83247
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.tmpl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes192-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue></CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml b/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml
new file mode 100644
index 00000000..a380abb2
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number><EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-aes192-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>PeDwjnCsg6xWzs3SmzUtc2nyUz28nGu7</CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>6hfMgI39JG5aIId4ZxZkXLGSGVcC7Wu4yOSdkC4H3NJ50pMdcZI2c38YoFHpFZFS</CipherValue>
+ </CipherData>
+ </EncryptedData></Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data b/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.tmpl b/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.tmpl
new file mode 100644
index 00000000..7b961732
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml b/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml
new file mode 100644
index 00000000..46f5844a
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number><EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ fiDteajx7IJTorLOQoMiXyblOh3zNix23qAy0hcKKP1/7OeLDT1hEnrXkKVvG83h
+ No3WF89VPuZGuGeEIJl4xcMklHItcI370NmGjCgKI5GQS/6yxMr4mEbiUL2X8Ycy
+ wVa2GUV9qFlkv6C8OnFpCUqBgJOjbUAu9pQ3OWa35Nv8tKqyaphPUaQtPc8ZMehS
+ cLHtkYKeByWqz5Djp11rklDp4v1QSeDWEn9zCKkaFiD0DZRtqpnTzwjj1tZsDNp8
+ mbps2mAlqnU0L+EsR+8KTRh5vzmxueM+lsLkGH2Rusy2qi/GqmF/NiwyTBdokWoM
+ Vd9qzUAODGnwGzf7ymyVKg==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ hg1h2JBeLhLq1QxPKsOQUE/ThbnjAdFCfQYKeqO1ipbi6lTZr5XPP3XsIybze0nX
+ </CipherValue>
+ </CipherData>
+ </EncryptedData></Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data b/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data
new file mode 100644
index 00000000..1d794286
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.tmpl b/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.tmpl
new file mode 100644
index 00000000..199da111
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData> \ No newline at end of file
diff --git a/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml b/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml
new file mode 100644
index 00000000..a44829f7
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number><EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
+ </EncryptionMethod>
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>my-rsa-key</ds:KeyName>
+ <ds:X509Data>
+ <ds:X509Certificate>
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
+ kKO/vB9Ay64Rt88XbLnnGns=
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ FCMw2HiQoGdINvvQYoMdRH0fE5oM9i3E9D4IRx9nwvnZLbA/Oi5snoKYEjYQ8ALK
+ QxYkGKhHtvwsUpVyxA9wGxbNP19Qt1yJIthG6mHUrGTcN9iYvY85FacG3NQWmdMh
+ HjqmylWZAqY4b+qDHczciqzT9i/M3AVct8RrgfVL/MgYyo1WLM0n+svRtc+GFYu6
+ QupE5bV1UFb/x3FaQtlzm6fIin+BSThCPKfnanj5Z1rAZsi7Wo9TiK610DKh9zXx
+ ONfiLcv9fpoHxpsEzCvAp+RUzLTuqxsLR1rdOveQLy/lTx9eClK8YepzlQIaXiOY
+ y0UqwPAQnEjuVzOmT3CsrQ==
+ </CipherValue>
+ </CipherData>
+ <ReferenceList>
+ <DataReference URI="#ED"/>
+ </ReferenceList>
+ </EncryptedKey>
+ </ds:KeyInfo>
+ <CipherData>
+ <CipherValue>
+ DpNYC0Np5hHaQAUyHWpM3MQ99wkDFtGRc7TywqxmhI4sJKDXM5SRjVlKf6st5wOz
+ </CipherValue>
+ </CipherData>
+ </EncryptedData></Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo>
diff --git a/tests/01-phaos-xmlenc-3/key.txt b/tests/01-phaos-xmlenc-3/key.txt
new file mode 100644
index 00000000..d08983a6
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/key.txt
@@ -0,0 +1,117 @@
+This file contains keys to decrypt the sample xml documents: enc-*-*-*-*.xml.
+
+All the keys are expressed in hex string.
+
+The symmetric keys (Triple DES Key, AES-128 Key, AES-192 Key, AES-256 Key) are
+key wrap keys. They can be used to decrypt the EncryptedKey element in the files: enc-*-*-kw-*.xml.
+
+The RSA Private Key is for decrypting the EncryptedKey element in the files: enc-*-*-kt-*.xml.
+
+The Diffie-Hellman Private Key is the Recipient's private key which can be used to derive
+the data decryption key for the EncryptedData element in the files: enc-*-*-ka-dh.xml.
+
+#Triple DES Key (identified by the key name = my-3des-key):
+#----------------------------------------------------------
+c8 8f 89 d5 fd e9 b9 80 04 46 32 1c 4f ab df 83 a4 62 b6 62 97 f2 70 f4
+
+#AES-128 Key (identified by the key name = my-aes128-key):
+#---------------------------------------------------------
+d3 5f b2 b9 0d a1 b8 f4 b5 f9 0b f4 2c 7f b3 69
+
+#AES-192 Key (identified by the key name = my-aes192-key):
+#---------------------------------------------------------
+22 57 ee 4b 8d 0b bd 2b 55 53 43 23 f1 e3 eb ac 61 d5 84 06 f8 f3 2f be
+
+#AES-256 Key (identified by the key name = my-aes256-key):
+#---------------------------------------------------------
+66 16 78 bf 74 65 c1 39 42 10 ea 48 ac 77 cb 29 5c 89 38 10 ed 10 93 8e 40 36
+ad ff 8c 51 d5 b0
+
+#RSA Private Key:
+#----------------
+
+#Modulus:
+82 3d d3 3b 25 2d 82 0f 7d a0 47 ec 9b c8 7d 25 36 41 c5 49 33 62 45 d5 50 e1
+f1 23 09 e4 17 0a 78 cb d6 67 ac 68 da fe 3f a4 a5 1c 8a bd 83 f9 0a 43 5d ab
+47 b9 f3 fa fb 18 b5 e3 e3 98 aa 77 4d d7 8e c1 4d 4d d8 f2 e0 e2 0e 81 fe c9
+c4 c1 bb cf e8 44 07 52 d3 da cc 13 b3 5d 06 20 b1 56 3c 1c 91 97 7f c1 12 c9
+de 90 b6 5d a2 a3 68 26 bb e7 b6 d5 64 c6 0b b7 c7 cd 09 8b 7f c0 64 3f 14 6f
+f9 01 18 e4 8f ca ee a9 9f 73 9d 9c c4 dc e6 ae 2b d6 a5 1e f7 ce 65 43 30 99
+bc 23 30 e8 0a 06 78 2c 89 a1 d3 6e d8 c6 ef 78 d7 87 f9 83 e3 46 02 c2 41 fc
+ef 38 54 6a fb da 8c b4 4f 17 7d 42 59 74 d8 4f 66 18 1d b0 e1 9f f2 e2 5a b9
+37 08 1d b0 32 c3 b0 61 c4 fc ba 46 29 16 5b 9c a2 59 49 81 c9 af bb b7 8c b5
+4d 02 73 85 a9 bf d3 2d 33 53 74 c0 03 b6 ff ac 3a d4 ef 19 8d 3f
+
+#Public Expotent
+01 00 01
+
+#Exponent
+52 be 3c 88 82 e2 1a 93 04 d8 e3 58 ea cf c0 d1 f7 5a 69 a0 4b c8 cf 5c ea 79 e0
+dc c5 d7 e6 db 7c 4a e3 f8 11 8c bc 34 72 f2 83 03 53 11 7b da a8 2e 8c 3f d8 dd
+c6 a7 59 07 25 e7 96 1c d3 8f e0 20 66 4d 60 73 68 b5 45 31 d8 cd b5 b5 32 0f 72
+e6 6f 45 68 f1 b2 2e 7b 20 b8 ff 0c 79 90 b0 9c 97 f9 d7 2a 0e db 84 ec a5 3b 76
+d9 70 bf 26 7c 92 85 91 a4 e8 3d 61 90 ca 2e 9a 35 9b 61 13 d1 18 f2 34 49 bd 7e
+fb 7a 9b 76 70 49 ac 00 f5 8b b4 c5 25 6f 54 8b a4 34 89 7b 7a 29 90 cc 16 1e 19
+0c 06 c2 13 20 32 8c 9b 41 68 f0 20 ea 67 6e f7 11 7d 3f e2 02 1f 67 fc 0c 97 72
+3b 4e 30 6c 16 86 27 e3 7a 5f 94 d5 73 0c 86 b7 0b de 60 39 c5 bf a0 19 0a 59 ed
+34 e8 4d f9 8e 10 97 95 0a 1f 41 44 aa 60 9e 21 f8 25 50 a5 86 24 ce 78 de 15 4c
+b6 58 83 f0 46 98 64 e3 ac 46 4a 5f 81
+
+#Prime 1
+8a 00 d7 b6 c1 27 b3 df 90 56 c4 0a 62 89 48 fc 61 34 11 d9 1d d4 e9 32 1b 0d 75
+37 76 08 30 d3 73 3a 8b 5c 0c aa 14 d3 f2 6d d6 12 3b 35 a5 91 82 2f 7f 2f 2a 61
+98 43 3f 74 16 8d 9e b3 56 e8 63 c8 11 34 a3 51 0f 45 b8 ad 8b cb 09 0d 52 23 36
+0f e5 05 b0 b9 6a 10 9e 12 e7 4f fb 91 d5 ce 0b 7b 7d ae 6f 6d 88 83 f2 ab 02 4a
+37 14 66 c8 00 0a 7e 24 5b 62 21 2d aa a4 79 cd d1 97 70 11
+
+#Prime 2
+f1 9a 06 c5 37 17 23 ba 6a 9a 45 9c 23 ce ec 88 78 6d 87 58 c5 08 6b f7 10 cc 00
+78 8c b8 b6 4e 07 06 4c 63 66 80 72 fe 15 36 9b 1b e2 60 f8 6e 14 43 e3 25 32 84
+6e 24 11 79 b5 4b c1 a4 c9 c6 ce 78 dd d7 86 43 5b 21 75 51 d3 d7 4d 39 c3 21 b2
+86 e2 15 5d 80 b9 e9 78 6e fb c0 76 cb 7d ba e7 4f d7 c1 14 d2 51 7c 4f fd e4 3e
+41 bd 8c 78 33 d9 d1 78 29 1e 15 3b e1 96 b8 17 cd 76 78 4f
+
+#Prime exponent 1
+01 37 0a af 28 3a 32 42 38 a2 1a ed c0 7a 56 f3 29 e3 ec 78 4d e3 ee fd aa f1 4e
+63 e3 9d 24 d8 e7 bd cf 36 4b 42 40 16 b1 9e b7 f0 c7 26 ac c3 80 32 ec da bc 73
+c9 84 66 0d 9e 99 36 99 7b 9d 66 2b 7f c3 47 e0 d1 d2 9a 52 a4 d5 6f c9 f7 3c 2a
+20 af b2 82 20 cf c7 3f ad 08 ee 52 57 b1 5b 34 0c ad 49 98 df 8d 01 24 64 cf 0b
+5a 3a ca c0 de 07 39 9f 16 52 e1 d9 e6 13 b6 a2 d2 42 94 11
+
+#Prime exponent 2
+47 c0 ff 11 c3 72 d3 e1 a1 97 7f e5 07 9d 85 12 62 f1 e4 a8 b0 9b f7 b4 c1 00 55
+83 78 07 c3 dd 18 a8 fe 36 e7 52 6e d4 97 68 48 58 d7 bb 05 0d 6c 67 5d 26 c7 02
+1d 40 7c 52 82 77 55 d2 78 67 21 f0 08 8e 99 d0 fe 27 5f 77 f5 f0 77 32 bf ec 4c
+c9 e8 37 5f e8 4f 82 33 6c 58 a3 de 72 e5 00 bc de f4 be 81 95 1e 7e 07 ca f6 6c
+ff ca 3e a6 99 24 c3 ac f9 ea 71
+
+#CrtCoffieient:
+75 5e b2 85 d4 5c 52 b4 81 83 a7 bc 43 67 f5 a2 be cb 79 8c e2 eb 15 a3 7f 54 51
+8e a3 ce 81 fe 95 07 fc 62 32 61 7a 46 76 4a b9 15 33 2b d8 9e 46 70 21 b4 31 49
+4d 2d 67 3d b7 d5 2c f4 ac 01 2c f1 01 a1 90 19 d6 77 02 c1 c3 e2 3a 74 de 30 b2
+2a d0 5a 3c a7 43 cd e5 6b ae b2 18 3d cc 99 e0 e0 5e a0 55 94 bf 39 43 12 d1 1c
+a8 97 37 38 dc 29 35 66 a5 ee 78 4a 11 b6 ff 02 3a 85 9a 98
+
+
+#Diffie-Hellman Private Key:
+#---------------------------
+
+#Prime P
+b9 ab da b7 b8 ba 34 ea 67 44 e6 dd c7 b1 b3 df c8 7c c6 48 26 bf 6d 17 51 a8 f5
+26 37 ef 30 04 1f 40 53 07 7a c8 46 85 8d 90 d2 6c 2f 27 53 9f 5f f9 19 e1 c3 1b
+49 85 32 c2 1d d6 01 8e b3 42 cf 16 da ec 60 f0 67 9d b8 22 de 6c d4 06 4d a1 d5
+15 59 ab 24 c4 1a c2 55 75 6c 83 10 fa 40 e2 21 03 51 fc 53 ea 48 d1 ca 0f 64 3d
+fe ea 06 0f 97 76 97 82 8f de a1 fc 76 fe 47 39 3f 1f 0b 05
+
+#Generator G
+71 ba 7a a6 52 e2 99 15 33 4a 26 11 fd 1b a5 08 36 52 3f 5e bf 63 3d eb 23 e7 f2
+3c 7e 95 a0 c5 9c 6c 82 4c e4 b2 a8 ac 0c 2b 25 67 4f 6e 65 30 13 ac 61 53 17 77
+e4 ea 43 61 c7 6e 6c 50 2b 58 1c 72 b5 1f 34 26 b0 b3 2e d8 15 8d 05 0a e4 2c 2f
+8c 91 dd dd df d5 1d 35 db 8f 5b 89 02 32 97 1d a0 70 21 fb 34 ea 00 7d 90 90 a2
+66 cb 17 3f c7 42 de be 44 94 93 ca d7 f0 31 5a df 2d 79 d9
+
+#Prime Q
+bf 84 a3 88 0f 2f 7d fd 76 4e e2 9e af 3b 3e 74 75 3d 6b 87
+
+#Private Key Value
+6d 27 17 0e c9 ff b3 29 8e 12 2c 1f a7 a8 48 64 42 f2 12 b3
diff --git a/tests/01-phaos-xmlenc-3/keys.xml b/tests/01-phaos-xmlenc-3/keys.xml
new file mode 100644
index 00000000..f01bdc54
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/keys.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<Keys xmlns="http://www.aleksey.com/xmlsec/2002">
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>my-rsa-key</KeyName>
+ <KeyValue>
+ <RSAKeyValue>
+ <Modulus>
+ gj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnkFwp4y9ZnrGja/j+kpRyKvYP5
+ CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7JxMG7z+hEB1LT2swTs10GILFW
+ PByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/AZD8Ub/kBGOSPyu6pn3OdnMTc
+ 5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH+YPjRgLCQfzvOFRq+9qMtE8X
+ fUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikWW5yiWUmBya+7t4y1TQJzham/
+ 0y0zU3TAA7b/rDrU7xmNPw==
+ </Modulus>
+ <Exponent>
+ AQAB
+ </Exponent>
+ <PrivateExponent xmlns="http://www.aleksey.com/xmlsec/2002">
+ Ur48iILiGpME2ONY6s/A0fdaaaBLyM9c6nng3MXX5tt8SuP4EYy8NHLygwNTEXva
+ qC6MP9jdxqdZByXnlhzTj+AgZk1gc2i1RTHYzbW1Mg9y5m9FaPGyLnsguP8MeZCw
+ nJf51yoO24TspTt22XC/JnyShZGk6D1hkMoumjWbYRPRGPI0Sb1++3qbdnBJrAD1
+ i7TFJW9Ui6Q0iXt6KZDMFh4ZDAbCEyAyjJtBaPAg6mdu9xF9P+ICH2f8DJdyO04w
+ bBaGJ+N6X5TVcwyGtwveYDnFv6AZClntNOhN+Y4Ql5UKH0FEqmCeIfglUKWGJM54
+ 3hVMtliD8EaYZOOsRkpfgQ==
+ </PrivateExponent>
+ </RSAKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>my-3des-key</KeyName>
+ <KeyValue>
+ <DESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ yI+J1f3puYAERjIcT6vfg6RitmKX8nD0
+ </DESKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>my-aes256-key</KeyName>
+ <KeyValue>
+ <AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ ZhZ4v3RlwTlCEOpIrHfLKVyJOBDtEJOOQDat/4xR1bA=
+ </AESKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>my-aes192-key</KeyName>
+ <KeyValue>
+ <AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ IlfuS40LvStVU0Mj8ePrrGHVhAb48y++
+ </AESKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>my-aes128-key</KeyName>
+ <KeyValue>
+ <AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ 01+yuQ2huPS1+Qv0LH+zaQ==
+ </AESKeyValue>
+ </KeyValue>
+ </KeyInfo>
+</Keys>
diff --git a/tests/01-phaos-xmlenc-3/payment.xml b/tests/01-phaos-xmlenc-3/payment.xml
new file mode 100644
index 00000000..e7b50c77
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/payment.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PaymentInfo xmlns="http://example.org/paymentv2">
+ <Name>John Smith</Name>
+ <CreditCard Currency="USD" Limit="5,000">
+ <Number>4019 2445 0277 5567</Number>
+ <Issuer>Bank of the Internet</Issuer>
+ <Expiration Time="04/02"/>
+ </CreditCard>
+</PaymentInfo> \ No newline at end of file
diff --git a/tests/01-phaos-xmlenc-3/rsa-priv-key.der b/tests/01-phaos-xmlenc-3/rsa-priv-key.der
new file mode 100644
index 00000000..0a1e4b27
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/rsa-priv-key.der
Binary files differ
diff --git a/tests/01-phaos-xmlenc-3/rsa-priv-key.p12 b/tests/01-phaos-xmlenc-3/rsa-priv-key.p12
new file mode 100644
index 00000000..f17e6ecc
--- /dev/null
+++ b/tests/01-phaos-xmlenc-3/rsa-priv-key.p12
Binary files differ
diff --git a/tests/aleksey-xkms-01/bad-request-name-not-supported.xml b/tests/aleksey-xkms-01/bad-request-name-not-supported.xml
new file mode 100644
index 00000000..f2d874f1
--- /dev/null
+++ b/tests/aleksey-xkms-01/bad-request-name-not-supported.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<Result xmlns="http://www.w3.org/2002/03/xkms#" Id="K5FhJO2yxpaycO7RjWW87ASoUt7qQc0h" Service="http://www.example.com/xkms" ResultMajor="Sender" ResultMinor="MessageNotSupported"/>
diff --git a/tests/aleksey-xkms-01/bad-request-name.xml b/tests/aleksey-xkms-01/bad-request-name.xml
new file mode 100644
index 00000000..1166191d
--- /dev/null
+++ b/tests/aleksey-xkms-01/bad-request-name.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<InvalidRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="aleksey_xkms_01_bad_request_name"
+ Service="http://www.example.com/xkms"
+ Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkasdfgU2Fu"
+ ResponseLimit="5" >
+ <RespondWith>KeyName</RespondWith>
+</InvalidRequest>
diff --git a/tests/aleksey-xkms-01/compound-example-1-no-match.xml b/tests/aleksey-xkms-01/compound-example-1-no-match.xml
new file mode 100644
index 00000000..4027213c
--- /dev/null
+++ b/tests/aleksey-xkms-01/compound-example-1-no-match.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<CompoundResult xmlns="http://www.w3.org/2002/03/xkms#" Id="PTLTkLuPfZtNrXVhhcrCqa_0o_73Sqno" Service="http://www.example.com/xkms" RequestId="Ie383fac377f1e54d2b26596c072b8b7a" ResultMajor="Sender" ResultMinor="NoMatch">
+<LocateResult Id="ADj5gRxQoJ__nZ6iWKweeUVy7C4ydhs3" Service="http://www.example.com/xkms" RequestId="I97a5c09bff0fe094d27facf5e5adb206" ResultMajor="Sender" ResultMinor="NoMatch"/>
+
+<LocateResult Id="tWuDz6Ahiw2U40SQXvT_X4Dq1B5KCanL" Service="http://www.example.com/xkms" RequestId="Icf173d33d71c80c74589c6204f7aeb4f" ResultMajor="Sender" ResultMinor="NoMatch"/>
+
+</CompoundResult>
diff --git a/tests/aleksey-xkms-01/compound-example-1.xml b/tests/aleksey-xkms-01/compound-example-1.xml
new file mode 100644
index 00000000..f933ab60
--- /dev/null
+++ b/tests/aleksey-xkms-01/compound-example-1.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CompoundRequest xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="Ie383fac377f1e54d2b26596c072b8b7a"
+ Service="http://www.example.com/xkms">
+ <LocateRequest Id="I97a5c09bff0fe094d27facf5e5adb206"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyValue</RespondWith>
+ <QueryKeyBinding>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Data>
+ <X509Certificate>
+MIIDdDCCAx6gAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExHjAcBgNVBAoTFWFsZWtzZXkteGttcy0wMSB0
+ZXN0czEZMBcGA1UECxMQc2Vjb25kIGxldmVsIGtleTEmMCQGA1UEAxMdaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxIjAgBgkqhkiG9w0BCQEWE2FsZWtzZXlA
+YWxla3NleS5jb20wHhcNMDQwMjAyMjA1NzAyWhcNMDUwMjAxMjA1NzAyWjCBqDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExHjAcBgNVBAoTFWFsZWtz
+ZXkteGttcy0wMSB0ZXN0czEYMBYGA1UECxMPdGhpcmQgbGV2ZWwga2V5MSYwJAYD
+VQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEiMCAGCSqGSIb3DQEJ
+ARYTYWxla3NleUBhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDn
+yQJWr0ZHBuP0uaOACOkD78aRjBr9pEfafTN9qOJv519GD3fg0NFSdZFOpsUKvNYO
+vwOJiyf+S9gSOOtnJVzpAgMBAAGjggEuMIIBKjAJBgNVHRMEAjAAMCwGCWCGSAGG
++EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
+VBaMhaAXDULGX8z23piFj9uzOPowgc8GA1UdIwSBxzCBxIAUi6lU1cREQvVyXYY6
+y8pTI4qPt/yhgaikgaUwgaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9y
+bmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxHjAcBgNVBAoTFWFsZWtzZXkteGttcy0w
+MSB0ZXN0czEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMx
+IjAgBgkqhkiG9w0BCQEWE2FsZWtzZXlAYWxla3NleS5jb22CAQEwDQYJKoZIhvcN
+AQEEBQADQQAKRCJXl5CTvvDN5jMaawgGU4DYDpvKmJbMKIV7XM+ZXBFnvcooUSIy
+6EGxF8UmAOSNaqZy+bPXJHiRCbmpNR3e
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ <KeyUsage>Signature</KeyUsage>
+ </QueryKeyBinding>
+ </LocateRequest>
+ <LocateRequest Id="Icf173d33d71c80c74589c6204f7aeb4f"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyName</RespondWith>
+ <RespondWith>KeyValue</RespondWith>
+ <RespondWith>X509Cert</RespondWith>
+ <RespondWith>X509Chain</RespondWith>
+ <RespondWith>PGPWeb</RespondWith>
+ <RespondWith>PGP</RespondWith>
+ <QueryKeyBinding>
+ <KeyUsage>Encryption</KeyUsage>
+ <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob@bobcorp.test"/>
+ <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@bobcorp.test"/>
+ </QueryKeyBinding>
+ </LocateRequest>
+</CompoundRequest>
diff --git a/tests/aleksey-xkms-01/keys/cert1.der b/tests/aleksey-xkms-01/keys/cert1.der
new file mode 100644
index 00000000..491687f9
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/cert1.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/cert1.pem b/tests/aleksey-xkms-01/keys/cert1.pem
new file mode 100644
index 00000000..c7d4e779
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/cert1.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEbTCCA9agAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UE
+ChMUWE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0w
+MSByb290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
+Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
+DTA0MDIwMzE5MTEyN1oXDTA0MDMwNDE5MTEyN1owgcsxCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxHTAbBgNVBAoT
+FFhNTCBTZWN1cml0eSBMaWJyYXJ5MSkwJwYDVQQLEyBhbGVrc2V5LXhrbXMtMDEg
+cm9vdCBjZXJ0aWZpY2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNv
+bS94bWxzZWMxITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsq7Kwr1+KvsQ2FHud4ZHet3lmj8L3jnu
+xinzAg3CmDmvMomawqpr11eQyJPBjWoWt+KWXIHZv435YbVSnv/MZ96lGC/QDMj+
+Ni1N6tMjjTxmp6qEXrQ0IrskI7jVs2DaceA4GGqLkQ3y1bSQ5RBbhDMwzSLsU8Mz
+8xdsbYIfndkCAwEAAaOCAV0wggFZMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFAv8
+ELYR+j4WXCUEteLjbzDpxGE2MIH4BgNVHSMEgfAwge2AFAv8ELYR+j4WXCUEteLj
+bzDpxGE2oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5p
+YTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGli
+cmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAxIHJvb3QgY2VydGlmaWNhdGUx
+JjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjMSEwHwYJKoZI
+hvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQAwLwYJYIZIAYb4QgENBCIWIGFs
+ZWtzZXkteGttcy0wMSByb290IGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBAUAA4GB
+ABJOf0Q8mVh2IA0Z9DDx/ELDObra7jbbjbthYNmPJlBQ2nwT+zACqoV4rEAm3USR
+BbY9n2ny3voxT5ODEFgi1S8s6VCoyyrou1RJttToN0h+r9kQmgEaTr/bGcKDb5pk
+U07fkNzxY/VkfaLH2b68xfvmQ8J4d9bHTmahiTdZuW4h
+-----END CERTIFICATE-----
diff --git a/tests/aleksey-xkms-01/keys/cert2.der b/tests/aleksey-xkms-01/keys/cert2.der
new file mode 100644
index 00000000..215727b2
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/cert2.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/cert2.pem b/tests/aleksey-xkms-01/keys/cert2.pem
new file mode 100644
index 00000000..1d878176
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/cert2.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEJTCCA46gAwIBAgIBATANBgkqhkiG9w0BAQUFADCByzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UE
+ChMUWE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0w
+MSByb290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
+Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
+DTA0MDIwMzE5MTEyN1oXDTE0MDEzMTE5MTEyN1owgb8xCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpDYWxpZm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFy
+eTExMC8GA1UECxMoYWxla3NleS14a21zLTAxIHNlY29uZCBsZXZlbCBjZXJ0aWZp
+Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
+A0sAMEgCQQDd+36RCkHXnn6pxsfTKhTo/Zocgr4pgtOzS+aT5eji+A0GzPaFHXpY
+0K+nDphWUYBzjrjOkxMBzlvv+BOvc9SzAgMBAAGjggFlMIIBYTAMBgNVHRMEBTAD
+AQH/MB0GA1UdDgQWBBQTZBEwsylIFyyafRuyvYQ+rY3gwzCB+AYDVR0jBIHwMIHt
+gBQL/BC2Efo+FlwlBLXi428w6cRhNqGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UEChMU
+WE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0wMSBy
+b290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29t
+L3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggEAMDcG
+CWCGSAGG+EIBDQQqFihhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
+ZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGMs5oZgbjfJBTeWZ7VZHAOyT+sS0tzK
+EPONgoId9RZLlBmxosG2zZ+Tu5xEqxh4HlkUzHEnenB7K/fmGTnQDrHHQH3Q/afI
+zMot8vXO5V3GX7vdYwU6tCEWUG+2JoaJ2riDcrkVwdEpKLo6GH3bGsqkreeH05ll
+oL+n2iYuEzV+
+-----END CERTIFICATE-----
diff --git a/tests/aleksey-xkms-01/keys/cert3.der b/tests/aleksey-xkms-01/keys/cert3.der
new file mode 100644
index 00000000..83eb3522
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/cert3.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/cert3.pem b/tests/aleksey-xkms-01/keys/cert3.pem
new file mode 100644
index 00000000..67b3caf9
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/cert3.pem
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEDTCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
+YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
+ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTA0MDIwMzE5MTEy
+OFoXDTE0MDEzMTE5MTEyOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
+Zm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFyeTE9MDsGA1UECxM0
+YWxla3NleS14a21zLTAxIHNpZ25hdHVyZSBhbmQgZW5jcnlwdGlvbiBjZXJ0aWZp
+Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
+A0sAMEgCQQDS208fS1M+MzOOewMytAU7ecT5ErtLTrK2mZr7QMqAGs696qHv9WOW
+i115eDaLW50XRVNr16eiquDtXl53EfBvAgMBAAGjggGOMIIBijAJBgNVHRMEAjAA
+MBEGCWCGSAGG+EIBAQQEAwIEsDALBgNVHQ8EBAMCBeAwQwYJYIZIAYb4QgENBDYW
+NGFsZWtzZXkteGttcy0wMSBzaWduYXR1cmUgYW5kIGVuY3J5cHRpb24gY2VydGlm
+aWNhdGUwHQYDVR0OBBYEFJw9QoFYPiU7VQheRsUV7LrY84+TMIH4BgNVHSMEgfAw
+ge2AFBNkETCzKUgXLJp9G7K9hD6tjeDDoYHRpIHOMIHLMQswCQYDVQQGEwJVUzET
+MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK
+ExRYTUwgU2VjdXJpdHkgTGlicmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAx
+IHJvb3QgY2VydGlmaWNhdGUxJjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5j
+b20veG1sc2VjMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQEw
+DQYJKoZIhvcNAQEFBQADQQAsb2Wh4hp+axYEGrsTMqd9j8pKuxJqa89ob4nl/FwN
+5jelwnWbB+3HG7f9GusYg6nNzga1EFD3YTfW23YWIKd9
+-----END CERTIFICATE-----
diff --git a/tests/aleksey-xkms-01/keys/create-keys.sh b/tests/aleksey-xkms-01/keys/create-keys.sh
new file mode 100755
index 00000000..127e1274
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/create-keys.sh
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# This script along with "openssl.cnf" file from this folder creates
+# a chain of three certificates containing RSA 1024 keys:
+# cert1 (key1) - root CA certificate (self signed).
+# cert2 (key2) - second level CA certificate (signed with key1/cert1)
+# cert3 (key3) - signature/encryption certificate (signed with key2/cert2)
+# All the private keys are encrypted with password "secret".
+#
+export CA_TOP=./demoCA
+export CA_PWD=secret
+
+echo "Remove old file"
+rm -rf "$CA_TOP" *.pem *.der *.p12 *.req
+
+echo "Create CA folders structure"
+mkdir "$CA_TOP"
+mkdir "${CA_TOP}/certs"
+mkdir "${CA_TOP}/crl"
+mkdir "${CA_TOP}/newcerts"
+mkdir "${CA_TOP}/private"
+echo "01" > "$CA_TOP/serial"
+touch "$CA_TOP/index.txt"
+
+echo "Create root key and certificate"
+export CERT_NAME="aleksey-xkms-01 root certificate"
+openssl req -config ./openssl.cnf -new -x509 -keyout key1.pem -out cert1.pem -batch
+
+echo "Generate RSA key and second level certificate"
+export CERT_NAME="aleksey-xkms-01 second level certificate"
+openssl genrsa -out key2.pem
+openssl req -config ./openssl.cnf -batch -new -key key2.pem -out req2.pem
+openssl ca -config ./openssl.cnf -passin pass:$CA_PWD -batch -extensions v3_ca -cert cert1.pem -keyfile key1.pem -out cert2.pem -infiles req2.pem
+
+echo "Generate another RSA key and third level certificate"
+export CERT_NAME="aleksey-xkms-01 signature and encryption certificate"
+openssl genrsa -out key3.pem
+openssl req -config ./openssl.cnf -batch -new -key key3.pem -out req3.pem
+openssl ca -config ./openssl.cnf -passin pass:$CA_PWD -batch -cert cert2.pem -keyfile key2.pem -out cert3.pem -infiles req3.pem
+
+echo "Convert all private keys to der, pkcs8/der and pkcs12 format"
+openssl rsa -passin pass:$CA_PWD -passout pass:$CA_PWD -inform PEM -outform DER -in key1.pem -out key1.der
+openssl rsa -passin pass:$CA_PWD -passout pass:$CA_PWD -inform PEM -outform DER -in key2.pem -out key2.der
+openssl rsa -passin pass:$CA_PWD -passout pass:$CA_PWD -inform PEM -outform DER -in key3.pem -out key3.der
+
+openssl pkcs8 -passin pass:$CA_PWD -passout pass:$CA_PWD -in key1.pem -inform pem -out key1-pk8.der -outform der -topk8
+openssl pkcs8 -passin pass:$CA_PWD -passout pass:$CA_PWD -in key2.pem -inform pem -out key2-pk8.der -outform der -topk8
+openssl pkcs8 -passin pass:$CA_PWD -passout pass:$CA_PWD -in key3.pem -inform pem -out key3-pk8.der -outform der -topk8
+
+openssl pkcs12 -passin pass:$CA_PWD -passout pass:$CA_PWD -export -in cert1.pem -inkey key1.pem -name key1 -out key1.p12
+openssl pkcs12 -passin pass:$CA_PWD -passout pass:$CA_PWD -export -in cert2.pem -inkey key2.pem -name key2 -out key2.p12
+openssl pkcs12 -passin pass:$CA_PWD -passout pass:$CA_PWD -export -in cert3.pem -inkey key3.pem -name key3 -out key3.p12
+
+echo "Convert all certificates to der format"
+openssl x509 -outform DER -in cert1.pem -out cert1.der
+openssl x509 -outform DER -in cert2.pem -out cert2.der
+openssl x509 -outform DER -in cert3.pem -out cert3.der
+
+echo "View certificates"
+openssl x509 -noout -text -in cert1.pem
+openssl x509 -noout -text -in cert2.pem
+openssl x509 -noout -text -in cert3.pem
+
+echo "Test certificates"
+openssl verify -CAfile cert1.pem cert2.pem
+openssl verify -CAfile cert1.pem -untrusted cert2.pem cert3.pem
+
+
+echo "Cleanup"
+rm -rf "$CA_TOP" *.req
+
+
+ \ No newline at end of file
diff --git a/tests/aleksey-xkms-01/keys/key1-pk8.der b/tests/aleksey-xkms-01/keys/key1-pk8.der
new file mode 100644
index 00000000..534bbe0f
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key1-pk8.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key1.der b/tests/aleksey-xkms-01/keys/key1.der
new file mode 100644
index 00000000..418252f1
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key1.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key1.p12 b/tests/aleksey-xkms-01/keys/key1.p12
new file mode 100644
index 00000000..17475702
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key1.p12
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key1.pem b/tests/aleksey-xkms-01/keys/key1.pem
new file mode 100644
index 00000000..384146f7
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key1.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,EF746F459C10E84C
+
++vGzkn5DyrDLs2Y0Lob6vcvfA/GgjJDU6HOrOUziiujCSWE0ajdsrQROcuoLjkm3
+EyHsIxEqqawJM5uYMhw/tYH+9n+89w0GYRELhL/z+u23dUPNlJd/32ttGDmywyBB
+byucTX4plVs74nrbeXuK9AJy7AKmZKV/h2fWjLNSNtWEa86A2b9wH2MrIIxfjoQX
+cw9rb1ejs6O8takn0HmOfoTHvor+jq21w299jLZ32GfUhJTiTPNpfnqBwwmlKvoe
+UyIPgquRi1XAstCuzTRCrfCqJTRB7OBh2dvoWgz/12/z11PULtr15XB3ex9pOZn/
+Dw/qYLwDqv4pp7sRHZeTOPRZ6By6KPTeFn3A7jd4P/s/M1IcGJ46DXSjx+wlhYs6
+QnanaZhApt1Xk9HWiLPlrGbT98QkXYorp6NHGeuAl1HB3epnZRfGB7DhgbKcVTlJ
+FS/MOo6knz5XjKjbE03Jf0EQlad5UsXcwlAzxGGYDjEnCOpOwowkKBrpl4yvkEBK
+Md69hiAaIHup35yz51mwTXalwUiJMNSKp6DSoM2I9MFxTvKJXnClVwa/Xy6fb1L+
+W1tMyFvLtUpe2un9NFBS/7bxfOxSeBWQGxvKFyqwcn/JC3xNhnXybpgIFPijrfXj
+Dot8uDHjZZaZ0PogsnF1chd7TcNXH93VKQJSHPt/2p9+B2hM10cQE27iS9Op6AXr
+S62hLDddlxja1xebclecfWG6IVZrL2fH2rDQDUWxXbZ4Mq/qWO2prkrvEBhK447h
+WuupfwIAY9wVEFsTY3jbnjlpHo4ucpXCxvxJl5niXgwKwMXVoccOFg==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/aleksey-xkms-01/keys/key2-pk8.der b/tests/aleksey-xkms-01/keys/key2-pk8.der
new file mode 100644
index 00000000..4144ca8a
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key2-pk8.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key2.der b/tests/aleksey-xkms-01/keys/key2.der
new file mode 100644
index 00000000..25012762
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key2.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key2.p12 b/tests/aleksey-xkms-01/keys/key2.p12
new file mode 100644
index 00000000..e1b69c2d
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key2.p12
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key2.pem b/tests/aleksey-xkms-01/keys/key2.pem
new file mode 100644
index 00000000..3786b66c
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key2.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAN37fpEKQdeefqnGx9MqFOj9mhyCvimC07NL5pPl6OL4DQbM9oUd
+eljQr6cOmFZRgHOOuM6TEwHOW+/4E69z1LMCAwEAAQJAdaKTHfWbktIxOXNX7bV9
+Q0Mxai5267Siz39Hf9T0p2HjERBxLjn2/wr6LbzmIsj13hLr4CcGzjS1nQFo2ogU
+8QIhAP2XFRdCV6virQiK/yAkRU+oBHEcLdKdJb61h5QM3SMlAiEA4BeEycqGq8Pz
+Bg86CA2cf4asTj/PzULyU7XmDgB9fPcCIQCvruqaqYiJeUm9IGatgtNN4y3omsgY
+IGzU2XhrFhphzQIhALj28KXWwt3X+SoRO2cWRQyFzocv6IeWMIqj42W/RdT1AiEA
+1sl/iVwvUefejP+CaD00Aswo8PW6zUiNNfoLeH4dfwo=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/aleksey-xkms-01/keys/key3-pk8.der b/tests/aleksey-xkms-01/keys/key3-pk8.der
new file mode 100644
index 00000000..17dcd29c
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key3-pk8.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key3.der b/tests/aleksey-xkms-01/keys/key3.der
new file mode 100644
index 00000000..8209754e
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key3.der
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key3.p12 b/tests/aleksey-xkms-01/keys/key3.p12
new file mode 100644
index 00000000..8670b50e
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key3.p12
Binary files differ
diff --git a/tests/aleksey-xkms-01/keys/key3.pem b/tests/aleksey-xkms-01/keys/key3.pem
new file mode 100644
index 00000000..9574d1d4
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/key3.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBANLbTx9LUz4zM457AzK0BTt5xPkSu0tOsraZmvtAyoAazr3qoe/1
+Y5aLXXl4NotbnRdFU2vXp6Kq4O1eXncR8G8CAwEAAQJAa3T2qrUhlCZV1Pvd0l4p
++HiDKIgiSSuvKh23/Om1CXkyhUot7ky5FtH0vjPjy8C9YNeVQefcOFpUlgT13ifH
+GQIhAPogHHKhfQz1RveauqOUEhUM60M861oioeDTVICgFUGTAiEA188Xz+fPHg8P
+EaOnlWAfpj5MEPv/Hn1bG3Z1LRA1TzUCICmtQBA5qESIehK3zXGEMp8fT/QcKnsS
+WjbD/8iO4/vRAiAzgugBJSin2RpUsIaAvifvy3DmoO+9PFixzm2bqwG+fQIhAJIA
+D28ibeq5xOdikLT3yyZQQ7kuYRVp7lQeVb0K7U5l
+-----END RSA PRIVATE KEY-----
diff --git a/tests/aleksey-xkms-01/keys/openssl.cnf b/tests/aleksey-xkms-01/keys/openssl.cnf
new file mode 100644
index 00000000..0d6326bc
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/openssl.cnf
@@ -0,0 +1,106 @@
+#
+# aleksey-xkms-01 OpenSSL configuration file.
+#
+# Environment variables:
+# CA_TOP - the CA folder (./demoCA)
+# CERT_NAME - the currently generated certificate name ("")
+
+# This definition stops the following lines choking if HOME isn't
+# defined.
+HOME = .
+RANDFILE = $ENV::HOME/.rnd
+
+[ ca ]
+default_ca = CA_default # The default ca section
+
+[ CA_default ]
+dir = $ENV::CA_TOP # Where everything is kept
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+new_certs_dir = $dir/newcerts # default place for new certs.
+
+certificate = cert1.pem # The CA certificate
+private_key = key1.pem # The private key
+serial = $dir/serial # The current serial number
+crl = $dir/crl.pem # The current CRL
+RANDFILE = $dir/private/.rand # private random number file
+
+x509_extensions = usr_cert # The extentions to add to the cert
+
+# Comment out the following two lines for the "traditional"
+# (and highly broken) format.
+name_opt = ca_default # Subject Name options
+cert_opt = ca_default # Certificate field options
+
+default_days = 3650 # how long to certify for
+default_crl_days = 30 # how long before next CRL
+default_md = sha1 # which md to use.
+preserve = no # keep passed DN ordering
+
+policy = policy_match
+
+[ policy_match ]
+countryName = match
+stateOrProvinceName = match
+organizationName = match
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+####################################################################
+[ req ]
+default_bits = 1024
+default_keyfile = privkey.pem
+distinguished_name = req_distinguished_name
+attributes = req_attributes
+x509_extensions = v3_ca
+input_password = secret
+output_password = secret
+string_mask = nombstr
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = US
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = California
+localityName = Locality Name (eg, city)
+localityName_default = Sunnyvale
+0.organizationName = Organization Name (eg, company)
+0.organizationName_default = XML Security Library
+organizationalUnitName = Organizational Unit Name (eg, section)
+organizationalUnitName_default = $ENV::CERT_NAME
+commonName = Common Name (eg, your name or your server\'s hostname)
+commonName_default = http://www.aleksey.com/xmlsec
+emailAddress = Email Address
+emailAddress_default = xmlsec@aleksey.com
+
+[ req_attributes ]
+
+[ v3_req ]
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+nsComment = $ENV::CERT_NAME
+
+[ v3_ca ]
+basicConstraints = CA:TRUE
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid:always,issuer:always
+nsComment = $ENV::CERT_NAME
+
+[ usr_cert ]
+basicConstraints = CA:FALSE
+nsCertType = client, email, objsign
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+nsComment = $ENV::CERT_NAME
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid,issuer:always
diff --git a/tests/aleksey-xkms-01/keys/req2.pem b/tests/aleksey-xkms-01/keys/req2.pem
new file mode 100644
index 00000000..3860d8d9
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/req2.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBjzCCATkCAQAwgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRIwEAYDVQQHEwlTdW5ueXZhbGUxHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
+YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
+ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBAN37fpEKQdeefqnGx9MqFOj9mhyCvimC07NL5pPl6OL4DQbM9oUd
+eljQr6cOmFZRgHOOuM6TEwHOW+/4E69z1LMCAwEAAaAAMA0GCSqGSIb3DQEBBAUA
+A0EAoBq9CU6bylLSV9+msyb1Ya49PV4eCXJuvQ4S6lJz/FdrOnxK65BsXWI3Vo58
+KSIfJNTjAC0Xy51ANAG5mUxeyw==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/aleksey-xkms-01/keys/req3.pem b/tests/aleksey-xkms-01/keys/req3.pem
new file mode 100644
index 00000000..16b33444
--- /dev/null
+++ b/tests/aleksey-xkms-01/keys/req3.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBmzCCAUUCAQAwgd8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRIwEAYDVQQHEwlTdW5ueXZhbGUxHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
+YXJ5MT0wOwYDVQQLEzRhbGVrc2V5LXhrbXMtMDEgc2lnbmF0dXJlIGFuZCBlbmNy
+eXB0aW9uIGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
+Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFww
+DQYJKoZIhvcNAQEBBQADSwAwSAJBANLbTx9LUz4zM457AzK0BTt5xPkSu0tOsraZ
+mvtAyoAazr3qoe/1Y5aLXXl4NotbnRdFU2vXp6Kq4O1eXncR8G8CAwEAAaAAMA0G
+CSqGSIb3DQEBBAUAA0EAqBHpXfIIFP1VGwqI6em5vOuyapzYx+s4Cjrem7zHZ+7J
+GM4uRSy8oE2RPiLODy9DVmPRpdit/9yhWrlQIhxalQ==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/aleksey-xkms-01/locate-example-1-bad-service.xml b/tests/aleksey-xkms-01/locate-example-1-bad-service.xml
new file mode 100644
index 00000000..ca54d136
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-example-1-bad-service.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="AK4RNs6LxPMwFfTN5X3UEaIzsts8n7i3" Service="http://www.example.com/xkms" RequestId="Ibcef5348aa386dedeff0bdf6bae872db" ResultMajor="Sender" ResultMinor="Failure"/>
diff --git a/tests/aleksey-xkms-01/locate-example-1-no-match.xml b/tests/aleksey-xkms-01/locate-example-1-no-match.xml
new file mode 100644
index 00000000..f3a230ab
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-example-1-no-match.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="i_EgHv33_VtORyYM7QcrREX_ERkxuMin" Service="http://www.example.com/xkms" RequestId="Ibcef5348aa386dedeff0bdf6bae872db" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/locate-example-1.xml b/tests/aleksey-xkms-01/locate-example-1.xml
new file mode 100644
index 00000000..6c575747
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-example-1.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="Ibcef5348aa386dedeff0bdf6bae872db"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyName</RespondWith>
+ <RespondWith>KeyValue</RespondWith>
+ <RespondWith>X509Cert</RespondWith>
+ <RespondWith>X509Chain</RespondWith>
+ <RespondWith>PGPWeb</RespondWith>
+ <RespondWith>PGP</RespondWith>
+ <QueryKeyBinding>
+ <KeyUsage>Encryption</KeyUsage>
+ <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob@bobcorp.test"/>
+ <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@bobcorp.test"/>
+ </QueryKeyBinding>
+</LocateRequest>
diff --git a/tests/aleksey-xkms-01/locate-example-2-no-match.xml b/tests/aleksey-xkms-01/locate-example-2-no-match.xml
new file mode 100644
index 00000000..57092c03
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-example-2-no-match.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="kh561pqakQw3jtjxWZ19apUKn__1Ggpw" Service="http://www.example.com/xkms" RequestId="I4593b8d4b6bd9ae7262560b5de1016bc" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/locate-example-2.xml b/tests/aleksey-xkms-01/locate-example-2.xml
new file mode 100644
index 00000000..cc91dc96
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-example-2.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="I4593b8d4b6bd9ae7262560b5de1016bc"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyValue</RespondWith>
+ <QueryKeyBinding>
+ <ds:KeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+MIIEDTCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
+YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
+ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTA0MDIwMzE5MTEy
+OFoXDTE0MDEzMTE5MTEyOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
+Zm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFyeTE9MDsGA1UECxM0
+YWxla3NleS14a21zLTAxIHNpZ25hdHVyZSBhbmQgZW5jcnlwdGlvbiBjZXJ0aWZp
+Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
+A0sAMEgCQQDS208fS1M+MzOOewMytAU7ecT5ErtLTrK2mZr7QMqAGs696qHv9WOW
+i115eDaLW50XRVNr16eiquDtXl53EfBvAgMBAAGjggGOMIIBijAJBgNVHRMEAjAA
+MBEGCWCGSAGG+EIBAQQEAwIEsDALBgNVHQ8EBAMCBeAwQwYJYIZIAYb4QgENBDYW
+NGFsZWtzZXkteGttcy0wMSBzaWduYXR1cmUgYW5kIGVuY3J5cHRpb24gY2VydGlm
+aWNhdGUwHQYDVR0OBBYEFJw9QoFYPiU7VQheRsUV7LrY84+TMIH4BgNVHSMEgfAw
+ge2AFBNkETCzKUgXLJp9G7K9hD6tjeDDoYHRpIHOMIHLMQswCQYDVQQGEwJVUzET
+MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK
+ExRYTUwgU2VjdXJpdHkgTGlicmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAx
+IHJvb3QgY2VydGlmaWNhdGUxJjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5j
+b20veG1sc2VjMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQEw
+DQYJKoZIhvcNAQEFBQADQQAsb2Wh4hp+axYEGrsTMqd9j8pKuxJqa89ob4nl/FwN
+5jelwnWbB+3HG7f9GusYg6nNzga1EFD3YTfW23YWIKd9
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <KeyUsage>Signature</KeyUsage>
+ </QueryKeyBinding>
+</LocateRequest>
diff --git a/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml b/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml
new file mode 100644
index 00000000..0e3f152a
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="lWW2Ua0wnq19PPm09tZdVx87UcG2Wt_g" Service="http://www.example.com/xkms" RequestId="aleksey_xkms_01_locate_opaque_client_data" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/locate-opaque-client-data.xml b/tests/aleksey-xkms-01/locate-opaque-client-data.xml
new file mode 100644
index 00000000..b8345e47
--- /dev/null
+++ b/tests/aleksey-xkms-01/locate-opaque-client-data.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xkms:LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns:xkms="http://www.w3.org/2002/03/xkms#"
+ Id="aleksey_xkms_01_locate_opaque_client_data"
+ Service="http://www.example.com/xkms"
+ Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2Fu"
+ ResponseLimit="5" >
+ <xkms:MessageExtension>
+ <example:Data xmlns:example="http://www.example.com/MessageExtension">01234</example:Data>
+ </xkms:MessageExtension>
+ <xkms:MessageExtension>
+ <example:Data xmlns:example="http://www.example.com/MessageExtension">56789</example:Data>
+ </xkms:MessageExtension>
+ <xkms:OpaqueClientData>
+ <xkms:OpaqueData>XfiZuHwu3rTFhca9O6sVPOcBuFTrnAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAA</xkms:OpaqueData>
+ </xkms:OpaqueClientData>
+ <xkms:RespondWith>xkms:KeyName</xkms:RespondWith>
+ <xkms:RespondWith>xkms:KeyValue</xkms:RespondWith>
+ <xkms:RespondWith>xkms:X509Cert</xkms:RespondWith>
+ <xkms:RespondWith>xkms:X509Chain</xkms:RespondWith>
+ <xkms:RespondWith>PGPWeb</xkms:RespondWith>
+ <xkms:RespondWith>PGP</xkms:RespondWith>
+ <xkms:QueryKeyBinding>
+ <ds:KeyInfo>
+ <KeyName>key2</KeyName>
+ </ds:KeyInfo>
+ <xkms:KeyUsage>xkms:Encryption</xkms:KeyUsage>
+ <xkms:UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob@bobcorp.test"/>
+ <xkms:UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@bobcorp.test"/>
+ </xkms:QueryKeyBinding>
+</xkms:LocateRequest>
diff --git a/tests/aleksey-xkms-01/readme.txt b/tests/aleksey-xkms-01/readme.txt
new file mode 100644
index 00000000..8aac6f41
--- /dev/null
+++ b/tests/aleksey-xkms-01/readme.txt
@@ -0,0 +1,117 @@
+XKMS Featrues
+ <xkms:StatusRequest>
+ <xkms:LocateRequest>
+ <xkms:ValidateRequest>
+ <xkms:CompundRequest>
+ Pending requests
+ <xkms:MessageExtension>
+ <xkms:OpaqueClientData>
+ <xkms:KeyUsage>
+ <xkms:UseKeyWith>
+ <xkms:TieInstant> and <xkms:ValidityInterval>
+
+
+Expected service is http://www.example.com/xkms
+
+1) Tests
+1.1) locate-example-1 (LocateRequest example 4.1.1 from XKMS 2.0 spec).
+
+ * locate-example-1.xml - LocateRequest file.
+ * locate-example-1-no-match.xml - LocateResult: "NoMatch" error
+ (key not found).
+ * locate-example-1-bad-service.xml - LocateResult: bad "Service".
+
+1.2) locate-example-2 (LocateRequest example 4.1.2 from XKMS 2.0 spec
+with certificate from cert2.pem file).
+
+ * locate-example-2.xml - LocateRequest file.
+ * locate-example-2-no-match.xml - LocateResult: "NoMatch" error
+ (key not found).
+
+1.3) validate-example-1 (ValidateRequest example 4.2.1 from XKMS 2.0 spec
+with certificates from cert2.pem and cert3.pem file).
+
+ * validate-example-1.xml - ValidateRequest file.
+ * validate-example-1-no-match.xml - ValidateResult: "NoMatch" error
+ (key not found).
+
+1.4) compaund-example-1 (CompaundRequest example 2.8.1 from XKMS 2.0 spec
+with certificate from cert3.pem file).
+
+ * compaund-example-1.xml - CompaundRequest file.
+ * compound-example-1-no-match.xml - CompoundResult: "NoMatch" error
+ (key not found).
+
+1.5) locate-opaque-client-data (LocateRequest with xkms:MessageExtension and
+xkms:OpaqueClientData nodes).
+
+ * locate-opaque-client-data.xml - LocateRequest file.
+ * locate-opaque-client-data-no-match.xml
+ - LocateResult: "NoMatch" error
+ (key not found).
+
+1.6) status-request (simple StatusRequest)
+
+ * status-request.xml - StatusRequest file.
+ * status-request-success.xml - StatusResult: success.
+
+1.7) soap12-locate-example-1 (SOAP 1.2 LocateRequest example 3.1.1
+from XKMS 2.0 spec
+
+ * soap12-locate-example-1.xml - SOAP 1.2 LocateRequest file.
+ * soap12-locate-example-1-no-match.xml
+ - SOAP 1.2 LocateResult: "NoMatch"
+ error (key not found).
+ * soap12-locate-example-1-unsupported.xml
+ - Processing SOAP 1.2 request with
+ SOAP 1.1: "Unsupported SOAP Version":
+
+1.8) soap11-locate-example-1 (SOAP 1.1 LocateRequest example 3.1.2
+from XKMS 2.0 spec
+
+ * soap11-locate-example-1.xml - SOAP 1.1 LocateRequest file.
+ * soap11-locate-example-1-no-match.xml
+ - SOAP 1.1 LocateResult: "NoMatch"
+ error (key not found).
+ * soap11-locate-example-1-unsupported.xml
+ - Processing SOAP 1.1 request with
+ SOAP 1.2: "Unsupported SOAP Version":
+
+1.9) bad-request-name (A request with invalid node name).
+ bad-request-name.xml - Invalid request file.
+ bad-request-name-not-supported.xml - Result: MessageNotSupported error.
+
+1.10) soap12-bad-request-name (SOAP 1.2 request with invalid node name).
+ soap12-bad-request-name.xml - SOAP 1.2 Invalid request file.
+ soap12-bad-request-name-not-supported.xml
+ - SOAP 1.2 Result: MessageNotSupported error.
+
+1.11) soap11-bad-request-name (SOAP 1.1 request with invalid node name).
+ soap11-bad-request-name.xml - SOAP 1.1 Invalid request file.
+ soap11-bad-request-name-not-supported.xml
+ - SOAP 1.1 Result: MessageNotSupported error.
+
+
+2) Keys and certificates (private keys are encrypted with password "secret")
+ keys/create-keys.sh - shell script to create the keys and certificates chain
+ keys/openssl.cnf - config file for create-keys.sh script
+ keys/key1.pem - root certificate RSA 1024 key in PEM format
+ keys/key1.der - key1.pem key in DER format
+ keys/key1-pk8.der - key1.pem key in PKCS8 DER format
+ keys/key1.p12 - key1.pem key and cert1.pem in PKCS12 format
+ keys/cert1.pem - root certificate for key1.pem
+ keys/cert1.der - cert1.pem certificate in DER format
+ keys/key2.pem - second level CA RSA 1024 key
+ keys/key2.der - key2.pem key in DER format
+ keys/key2.p12 - key2.pem key and cert2.pem in PKCS12 format
+ keys/key2-pk8.der - key2.pem key in PKCS8 DER format
+ keys/cert2.pem - certificate for key2.pem signed with key1.pem (cert1.pem)
+ keys/cert2.der - cert2.pem certificate in DER format
+ keys/key3.pem - signature/encryption RSA 1024 key
+ keys/key3.der - key3.pem key in DER format
+ keys/key3.p12 - key3.pem key and cert3.pem in PKCS12 format
+ keys/key3-pk8.der - key3.pem key in PKCS8 DER format
+ keys/cert3.pem - certificate for key3.pem signed with key2.pem (cert2.pem)
+ keys/cert3.der - cert3.pem certificate in DER format
+
+ \ No newline at end of file
diff --git a/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml b/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml
new file mode 100644
index 00000000..b53a68c0
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
+<Body>
+<Fault>
+<faultcode>Client</faultcode>
+<faultstring>InvalidRequest message invalid</faultstring>
+</Fault>
+</Body>
+</Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-bad-request-name.xml b/tests/aleksey-xkms-01/soap11-bad-request-name.xml
new file mode 100644
index 00000000..1c41d8d3
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap11-bad-request-name.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Body>
+ <xkms:InvalidRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns:xkms="http://www.w3.org/2002/03/xkms#"
+ Id="aleksey_xkms_01_bad_request_name"
+ Service="http://www.example.com/xkms"
+ Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkasdfgU2Fu"
+ ResponseLimit="5" >
+ <xkms:RespondWith>KeyName</xkms:RespondWith>
+ </xkms:InvalidRequest>
+ </env:Body>
+</env:Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml b/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml
new file mode 100644
index 00000000..77dfc5f7
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
+<Body>
+<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="VWctryrG7XgGsbTws4kvbVDTR_9lXg8u" Service="http://www.example.com/xkms" RequestId="I94d1048aa24259465d7271cb4433dbb4" ResultMajor="Sender" ResultMinor="NoMatch"/>
+</Body>
+</Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml b/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml
new file mode 100644
index 00000000..9b0fcebe
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<Envelope xmlns="http://www.w3.org/2002/06/soap-envelope">
+<Body>
+<Fault>
+<Code>
+<Value>VersionMismatch</Value>
+</Code>
+<Reason>
+<Text xml:lang="en">Unsupported SOAP version</Text>
+</Reason>
+</Fault>
+</Body>
+</Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-locate-example-1.xml b/tests/aleksey-xkms-01/soap11-locate-example-1.xml
new file mode 100644
index 00000000..67213ffd
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap11-locate-example-1.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Body>
+ <LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="I94d1048aa24259465d7271cb4433dbb4"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyName</RespondWith>
+ <RespondWith>KeyValue</RespondWith>
+ <RespondWith>X509Cert</RespondWith>
+ <RespondWith>X509Chain</RespondWith>
+ <RespondWith>PGPWeb</RespondWith>
+ <RespondWith>PGP</RespondWith>
+ <RespondWith>Multiple</RespondWith>
+ <QueryKeyBinding>
+ <KeyUsage>Encryption</KeyUsage>
+ <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob@bobcorp.test"/>
+ <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@bobcorp.test"/>
+ </QueryKeyBinding>
+ </LocateRequest>
+ </env:Body>
+</env:Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml b/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml
new file mode 100644
index 00000000..f9de89e2
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<Envelope xmlns="http://www.w3.org/2002/06/soap-envelope">
+<Body>
+<Fault xmlns:xkms="http://www.w3.org/2002/03/xkms#">
+<Code>xkms:MessageNotSupported</Code>
+<Reason>
+<Text xml:lang="en">InvalidRequest message invalid</Text>
+</Reason>
+</Fault>
+</Body>
+</Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-bad-request-name.xml b/tests/aleksey-xkms-01/soap12-bad-request-name.xml
new file mode 100644
index 00000000..76a05cce
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap12-bad-request-name.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope">
+ <env:Body>
+ <xkms:InvalidRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns:xkms="http://www.w3.org/2002/03/xkms#"
+ Id="aleksey_xkms_01_bad_request_name"
+ Service="http://www.example.com/xkms"
+ Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkasdfgU2Fu"
+ ResponseLimit="5" >
+ <xkms:RespondWith>KeyName</xkms:RespondWith>
+ </xkms:InvalidRequest>
+ </env:Body>
+</env:Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml b/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml
new file mode 100644
index 00000000..f4a47df1
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<Envelope xmlns="http://www.w3.org/2002/06/soap-envelope">
+<Body>
+<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="AlDwXZQSF4xaOGzRVMb6cympaV8fKmqU" Service="http://www.example.com/xkms" RequestId="I94d1048aa24259465d7271cb4433dbb4" ResultMajor="Sender" ResultMinor="NoMatch"/>
+</Body>
+</Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml b/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml
new file mode 100644
index 00000000..02b7e2a3
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
+<Body>
+<Fault>
+<faultcode>VersionMismatch</faultcode>
+<faultstring>Unsupported SOAP version</faultstring>
+</Fault>
+</Body>
+</Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-locate-example-1.xml b/tests/aleksey-xkms-01/soap12-locate-example-1.xml
new file mode 100644
index 00000000..f5f0cc95
--- /dev/null
+++ b/tests/aleksey-xkms-01/soap12-locate-example-1.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope">
+ <env:Body>
+ <LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="I94d1048aa24259465d7271cb4433dbb4"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyName</RespondWith>
+ <RespondWith>KeyValue</RespondWith>
+ <RespondWith>X509Cert</RespondWith>
+ <RespondWith>X509Chain</RespondWith>
+ <RespondWith>PGPWeb</RespondWith>
+ <RespondWith>PGP</RespondWith>
+ <RespondWith>Multiple</RespondWith>
+ <QueryKeyBinding>
+ <KeyUsage>Encryption</KeyUsage>
+ <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob@bobcorp.test"/>
+ <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@bobcorp.test"/>
+ </QueryKeyBinding>
+ </LocateRequest>
+ </env:Body>
+</env:Envelope>
diff --git a/tests/aleksey-xkms-01/status-request-success.xml b/tests/aleksey-xkms-01/status-request-success.xml
new file mode 100644
index 00000000..14f52431
--- /dev/null
+++ b/tests/aleksey-xkms-01/status-request-success.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<StatusResult xmlns="http://www.w3.org/2002/03/xkms#" Id="qWvHe4Wa3MO8EpJoPhhXTY9jf_PGByYC" Service="http://www.example.com/xkms" RequestId="aleksey_xkms_01_status_request" ResultMajor="Success"/>
diff --git a/tests/aleksey-xkms-01/status-request.xml b/tests/aleksey-xkms-01/status-request.xml
new file mode 100644
index 00000000..bb54cf69
--- /dev/null
+++ b/tests/aleksey-xkms-01/status-request.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xkms:StatusRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns:xkms="http://www.w3.org/2002/03/xkms#"
+ Id="aleksey_xkms_01_status_request"
+ Service="http://www.example.com/xkms" >
+</xkms:StatusRequest>
diff --git a/tests/aleksey-xkms-01/validate-example-1-no-match.xml b/tests/aleksey-xkms-01/validate-example-1-no-match.xml
new file mode 100644
index 00000000..482ddffe
--- /dev/null
+++ b/tests/aleksey-xkms-01/validate-example-1-no-match.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<ValidateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="U8u3JSp5D5o2rbKEd8Y8yG1UBBC5_szY" Service="http://www.example.com/xkms" RequestId="Ic4d10f0affff49382b021a820613fa71" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/validate-example-1.xml b/tests/aleksey-xkms-01/validate-example-1.xml
new file mode 100644
index 00000000..a184cb94
--- /dev/null
+++ b/tests/aleksey-xkms-01/validate-example-1.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ValidateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
+ xmlns="http://www.w3.org/2002/03/xkms#"
+ Id="Ic4d10f0affff49382b021a820613fa71"
+ Service="http://www.example.com/xkms">
+ <RespondWith>KeyName</RespondWith>
+ <QueryKeyBinding>
+ <ds:KeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>
+MIIEDTCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
+YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
+ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTA0MDIwMzE5MTEy
+OFoXDTE0MDEzMTE5MTEyOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
+Zm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFyeTE9MDsGA1UECxM0
+YWxla3NleS14a21zLTAxIHNpZ25hdHVyZSBhbmQgZW5jcnlwdGlvbiBjZXJ0aWZp
+Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
+A0sAMEgCQQDS208fS1M+MzOOewMytAU7ecT5ErtLTrK2mZr7QMqAGs696qHv9WOW
+i115eDaLW50XRVNr16eiquDtXl53EfBvAgMBAAGjggGOMIIBijAJBgNVHRMEAjAA
+MBEGCWCGSAGG+EIBAQQEAwIEsDALBgNVHQ8EBAMCBeAwQwYJYIZIAYb4QgENBDYW
+NGFsZWtzZXkteGttcy0wMSBzaWduYXR1cmUgYW5kIGVuY3J5cHRpb24gY2VydGlm
+aWNhdGUwHQYDVR0OBBYEFJw9QoFYPiU7VQheRsUV7LrY84+TMIH4BgNVHSMEgfAw
+ge2AFBNkETCzKUgXLJp9G7K9hD6tjeDDoYHRpIHOMIHLMQswCQYDVQQGEwJVUzET
+MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK
+ExRYTUwgU2VjdXJpdHkgTGlicmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAx
+IHJvb3QgY2VydGlmaWNhdGUxJjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5j
+b20veG1sc2VjMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQEw
+DQYJKoZIhvcNAQEFBQADQQAsb2Wh4hp+axYEGrsTMqd9j8pKuxJqa89ob4nl/FwN
+5jelwnWbB+3HG7f9GusYg6nNzga1EFD3YTfW23YWIKd9
+ </ds:X509Certificate>
+ <ds:X509Certificate>
+MIIEJTCCA46gAwIBAgIBATANBgkqhkiG9w0BAQUFADCByzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UE
+ChMUWE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0w
+MSByb290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
+Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
+DTA0MDIwMzE5MTEyN1oXDTE0MDEzMTE5MTEyN1owgb8xCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpDYWxpZm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFy
+eTExMC8GA1UECxMoYWxla3NleS14a21zLTAxIHNlY29uZCBsZXZlbCBjZXJ0aWZp
+Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
+A0sAMEgCQQDd+36RCkHXnn6pxsfTKhTo/Zocgr4pgtOzS+aT5eji+A0GzPaFHXpY
+0K+nDphWUYBzjrjOkxMBzlvv+BOvc9SzAgMBAAGjggFlMIIBYTAMBgNVHRMEBTAD
+AQH/MB0GA1UdDgQWBBQTZBEwsylIFyyafRuyvYQ+rY3gwzCB+AYDVR0jBIHwMIHt
+gBQL/BC2Efo+FlwlBLXi428w6cRhNqGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UEChMU
+WE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0wMSBy
+b290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29t
+L3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggEAMDcG
+CWCGSAGG+EIBDQQqFihhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
+ZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGMs5oZgbjfJBTeWZ7VZHAOyT+sS0tzK
+EPONgoId9RZLlBmxosG2zZ+Tu5xEqxh4HlkUzHEnenB7K/fmGTnQDrHHQH3Q/afI
+zMot8vXO5V3GX7vdYwU6tCEWUG+2JoaJ2riDcrkVwdEpKLo6GH3bGsqkreeH05ll
+oL+n2iYuEzV+
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ <KeyUsage>Signature</KeyUsage>
+ <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@alicecorp.test"/>
+ </QueryKeyBinding>
+</ValidateRequest>
diff --git a/tests/aleksey-xmldsig-01/README b/tests/aleksey-xmldsig-01/README
new file mode 100644
index 00000000..7b12f7b3
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/README
@@ -0,0 +1,47 @@
+README
+http://groups.google.com/groups?hl=en&threadm=9jlbt7%243141%241%40FreeBSD.csie.NCTU.edu.tw&rnum=20&prev=/groups%3Fq%3Dopenssl%2Bx509%2Bcertificates%2Bchain%26start%3D10%26hl%3Den%26selm%3D9jlbt7%25243141%25241%2540FreeBSD.csie.NCTU.edu.tw%26rnum%3D20
+http://www.post1.com/home/ngps/m2/howto.ca.html
+
+
+Commands:
+
+(0) create new CA and modify the openssl.cnf file
+to point to it
+
+> CA.pl -newca
+
+(1) a self-signed des3 root ca cert, using
+
+> openssl genrsa -des3 -out ca.key
+> openssl req -new -key ca.key -out ca.csr
+> openssl x509 -req -signkey ca.key -out ca.crt -in ca.csr
+
+verify ca.crt
+
+> openssl x509 -text -in ca.crt
+
+(2) a second ca cert, signed by the first ca, using
+
+> openssl genrsa -des3 -out ca2.key
+> openssl req -new -key ca2.key -out ca2.csr
+> openssl ca -cert ca.crt -keyfile ca.key -out ca2.crt -infiles ca2.csr
+
+verify ca2.crt
+
+> openssl x509 -text -in ca2.crt
+> openssl verify -CAfile ca.crt ca2.crt
+
+
+(3) a user cert using
+
+> openssl genrsa -des3 -out user.key
+> openssl req -new -key user.key -out user.csr
+> openssl ca -cert ca2.crt -keyfile ca2.key -out user.crt -infiles user.csr
+
+
+verify user.crt
+
+> openssl x509 -text -in ca3.crt
+> openssl verify -CAfile ca.crt -untrusted ca2.crt user.crt
+
+
diff --git a/tests/aleksey-xmldsig-01/dtd-hmac-91.dtd b/tests/aleksey-xmldsig-01/dtd-hmac-91.dtd
new file mode 100644
index 00000000..630c0aea
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/dtd-hmac-91.dtd
@@ -0,0 +1 @@
+<!ATTLIST SOAP:Body id ID #IMPLIED>
diff --git a/tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl b/tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl
new file mode 100644
index 00000000..ae473dfa
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"><SOAP:Header><wsse:Security><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#hmac-sha1">
+ <HMACOutputLength>91</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#Body">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue></DigestValue>
+ </Reference>
+</SignedInfo>
+ <SignatureValue></SignatureValue><KeyInfo><KeyName>name:KEY</KeyName></KeyInfo></Signature></wsse:Security></SOAP:Header><SOAP:Body id="Body">
+<echo xmlns="http://www.example.org">
+this
+is
+a
+test
+of
+echoing
+simple-91
+</echo>
+</SOAP:Body></SOAP:Envelope>
+
diff --git a/tests/aleksey-xmldsig-01/dtd-hmac-91.xml b/tests/aleksey-xmldsig-01/dtd-hmac-91.xml
new file mode 100644
index 00000000..8293a647
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/dtd-hmac-91.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"><SOAP:Header><wsse:Security><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#hmac-sha1">
+ <HMACOutputLength>91</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#Body">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>KlK8TF9wnLYvXz008MJV4umoHhE=</DigestValue>
+ </Reference>
+</SignedInfo>
+ <SignatureValue>gmtoF50KWNUTGQCg</SignatureValue><KeyInfo><KeyName>name:KEY</KeyName></KeyInfo></Signature></wsse:Security></SOAP:Header><SOAP:Body id="Body">
+<echo xmlns="http://www.example.org">
+this
+is
+a
+test
+of
+echoing
+simple-91
+</echo>
+</SOAP:Body></SOAP:Envelope>
+
diff --git a/tests/aleksey-xmldsig-01/enveloped-gost.tmpl b/tests/aleksey-xmldsig-01/enveloped-gost.tmpl
new file mode 100644
index 00000000..a89538df
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloped-gost.tmpl
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+XML Security Library example: Simple signature template file for sign1 example.
+-->
+<Envelope xmlns="urn:envelope">
+ <Data>
+ Hello, World!
+ </Data>
+ <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/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">not(ancestor-or-self::dsig:Signature)</XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue/>
+ <KeyInfo>
+<X509Data>
+<X509Certificate></X509Certificate>
+</X509Data>
+</KeyInfo>
+</Signature>
+</Envelope>
diff --git a/tests/aleksey-xmldsig-01/enveloped-gost.xml b/tests/aleksey-xmldsig-01/enveloped-gost.xml
new file mode 100644
index 00000000..a00b1a91
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloped-gost.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+XML Security Library example: Simple signature template file for sign1 example.
+-->
+<Envelope xmlns="urn:envelope">
+ <Data>
+ Hello, World!
+ </Data>
+ <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/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">not(ancestor-or-self::dsig:Signature)</XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
+ <DigestValue>e1x3rydsnTQukoiTtQ0vHaWYqKka7yRiP1sB8AVobaA=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>DLVX5EypJpYtdD+iAx9/BCKDZlWNnG70jqps5qFGNmoRem5czMSIhc6yVR48ywN2
++HHUYG+9UouTr/d7BfDl8g==</SignatureValue>
+ <KeyInfo>
+<X509Data>
+<X509Certificate>MIICBzCCAbSgAwIBAgIBPDAKBgYqhQMCAgMFADCBjzELMAkGA1UEBhMCUlUxDzAN
+BgNVBAcTBk1vc2NvdzEjMCEGA1UEAxMaR09TVDIwMDEgQ3J5cHRvUHJvIFRlc3Qg
+Q0ExEjAQBgNVBAoTCUNyeXB0b2NvbTETMBEGA1UECxMKT3BlblNTTCBDQTEhMB8G
+CSqGSIb3DQEJARYSdml0dXNAY3J5cHRvY29tLnJ1MB4XDTA2MDExNjExMjQzN1oX
+DTA3MDExNjEyMjQzN1owXjELMAkGA1UEBhMCUlUxEjAQBgNVBAoTCUNyeXB0b2Nv
+bTEMMAoGA1UECxMDMTMwMQwwCgYDVQQDEwNSYW4xHzAdBgkqhkiG9w0BCQEWEHJh
+bkBjcnlwdG9jb20ucnUwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYHKoUDAgIeAQND
+AARASEKiNMuNPqSOVf9PSG2IuWKQy9jvKX2w2pAQnJJsslTis9llJAJn10nXMW2T
+qvkI9C/DtrDiRmGuuS0PARgzVqMnMCUwDgYDVR0PAQH/BAQDAgbAMBMGA1UdJQQM
+MAoGCCqFAwIZAQIBMAoGBiqFAwICAwUAA0EAruCZrlhscel2tb/FPtdA0fBv3WOh
+mrmUMgrjVr/xVr0ZPeIzFGXAcKWYiEi5Gu+mJp17VLlhIq0Qny80bc6AdQ==</X509Certificate>
+</X509Data>
+</KeyInfo>
+</Signature>
+</Envelope>
diff --git a/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.tmpl b/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.tmpl
new file mode 100644
index 00000000..b3526b82
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.tmpl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.xml b/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.xml
new file mode 100644
index 00000000..f6d02ea5
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>Niji66p2agomSLiShIYXIekL7bdFEnxzpa2ETcad9mHXHWd218vjUg==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIEdDCCBB6gAwIBAgIJANaOuOCRgiz5MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMTU5WhcNMTUwNzA4MDIzMTU5WjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgRFNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wgfAw
+gagGByqGSM44BAEwgZwCQQDIMfw6P79Fcw0hrxYKq3ePh7wmevc95UjfF2JHQJBX
+Jb9XFBa5LRy71lzh/OYMH4oh4giiFVRVBCW9HpZqOTNJAhUAlEOrmqjJG3tfjU49
+XjJuM3AXNskCQAUzwzmbp53bZ+bzDcOU6UGh3Ig/TFdLGXYevs3tiZaFLa//EYF+
+l5Tdsr3NQpGRRf4arXvXPZyIJhYYHJVk7OMDQwACQDonSDDJk3VaIfdVHPnOitRq
+V5XPFfMDksNb0WelnZdl/qokl9eaU+8uiH7LtsU0QYX9lE8kTplcUdD0bxjDYJ2j
+ggFTMIIBTzAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdl
+bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpVifKXAtGkJHRAParmenuvcp
+ZT4wgfEGA1UdIwSB6TCB5oAU/uTsUyTwlZXHELXhRLVdOWVa436hgcKkgb8wgbwx
+CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwg
+U2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMp
+MR4wHAYDVQQLExVUZXN0IFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJANaO
+uOCRgiz4MA0GCSqGSIb3DQEBBQUAA0EAJB9Kc4/Z0hTwiDYR5fXVPyzAjD+BeChR
+F14ztWl1Ol6REWFRbIGfEz3XDgCHCiocM8ExXi7zn26R072cdBz7+w==</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl b/tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl
new file mode 100644
index 00000000..9b7eeac9
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-expired-cert.xml b/tests/aleksey-xmldsig-01/enveloping-expired-cert.xml
new file mode 100644
index 00000000..cc4d4cca
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-expired-cert.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>SPqE1/nehy9KOKeFSODZWZyvUZ/iS4jameUSXtvmfPgez5lN5QL4ox+QDlo37IeW
+NDjt380ZiA7kx9pnlx8jfQ==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID2zCCA4WgAwIBAgIJANaOuOCRgiz7MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDM1MTU2WhcNMDUwNzExMDM1MTU2WjCBwzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxJTAjBgNVBAsT
+HFRlc3QgRXhwaXJlZCBSU0EgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkg
+U2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQDJUmVgQEBmML80PvR8zIwGkyDiE5boEWR4pGmaGUOH
+bRnFQkt2mt+4/QeYtm7GRVRUe6YJigUovU1u3DQDiOjzAgMBAAGjggFTMIIBTzAM
+BgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
+ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU+fqJEjRKO1kG3y4X8sCPsiYHeMkwgfEGA1Ud
+IwSB6TCB5oAU/uTsUyTwlZXHELXhRLVdOWVa436hgcKkgb8wgbwxCzAJBgNVBAYT
+AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkg
+TGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMR4wHAYDVQQL
+ExVUZXN0IFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4x
+ITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJANaOuOCRgiz4MA0G
+CSqGSIb3DQEBBQUAA0EAmLTpL4oqi+VjrLISYYxY5FfAqACYAOpIbIdWM2QtjozB
+dQxFVSK2RHn2z1W2gWy7N8VQmfrggN73LIKOXuoV5A==</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.tmpl
new file mode 100644
index 00000000..b43fade7
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-md5">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.xml b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.xml
new file mode 100644
index 00000000..195993a4
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-md5">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/>
+ <DigestValue>/u+47lA0BK55De4qRAg16w==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>8woIGhwIlkw9Gw==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.tmpl b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.tmpl
new file mode 100644
index 00000000..55dd5c1c
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-md5" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml
new file mode 100644
index 00000000..d8159789
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-md5"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/>
+ <DigestValue>/u+47lA0BK55De4qRAg16w==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>7uFBgN6DOM9SJj+UBkM2fQ==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl b/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl
new file mode 100644
index 00000000..1eb428a6
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-md5"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml b/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml
new file mode 100644
index 00000000..ebca5032
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-md5"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/>
+ <DigestValue>/u+47lA0BK55De4qRAg16w==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>dpWrHCBhPfYE9VLIhCfEe3HrViieYwgo/52RmQLtYM5VRbWwa237LqE6xf8UUdxr
+veblI1kr28sjdrxE+zAEhQ==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.tmpl
new file mode 100644
index 00000000..37909320
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-ripemd160">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.xml b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.xml
new file mode 100644
index 00000000..a91328d3
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-ripemd160">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160"/>
+ <DigestValue>Ofs8NqfoXX+r0Cas3GRY2GbzhPo=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>cAAf5NRMJvdO9w==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.tmpl b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.tmpl
new file mode 100644
index 00000000..8f159965
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-ripemd160" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.xml b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.xml
new file mode 100644
index 00000000..057cf471
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-ripemd160"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160"/>
+ <DigestValue>Ofs8NqfoXX+r0Cas3GRY2GbzhPo=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>tt3/nrk/uQ79pKHEZaCxXNncAtg=</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.tmpl b/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.tmpl
new file mode 100644
index 00000000..6675f7c5
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-ripemd160"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.xml b/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.xml
new file mode 100644
index 00000000..9180626a
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-ripemd160"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160"/>
+ <DigestValue>Ofs8NqfoXX+r0Cas3GRY2GbzhPo=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>un5Fwdn5LTFBPQPv1GSst3mviS7I1X8icM7cYRTSIqKMnkXOIzXgcEKVcfO1oodP
+9ABdLzQB0wdZJW6CCoHKwA==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.tmpl b/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.tmpl
new file mode 100644
index 00000000..9b7eeac9
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.tmpl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.xml b/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.xml
new file mode 100644
index 00000000..0cf0f425
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>RCkGabfqV1XpXvx0rGDEIAzs4/U9TDKvZIWN9MBRi5BPAr1pXnX0iAve+2OEeBTm
+nstv7BjG6CDnb69ouJSeWg==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.tmpl
new file mode 100644
index 00000000..de4dee35
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.xml b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.xml
new file mode 100644
index 00000000..000cbc6b
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>xjqFz/yYQRTOrw==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.tmpl
new file mode 100644
index 00000000..92eeb55d
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.xml b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.xml
new file mode 100644
index 00000000..ce01eab7
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>JElPttIT4Am7Q+MNoMyv+WDfAZw=</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.tmpl
new file mode 100644
index 00000000..c71f4cc5
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.xml b/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.xml
new file mode 100644
index 00000000..79794a97
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>RCkGabfqV1XpXvx0rGDEIAzs4/U9TDKvZIWN9MBRi5BPAr1pXnX0iAve+2OEeBTm
+nstv7BjG6CDnb69ouJSeWg==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.tmpl
new file mode 100644
index 00000000..6bcac303
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha224">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha224"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.xml b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.xml
new file mode 100644
index 00000000..2f87f4b2
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha224">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha224"/>
+ <DigestValue>azpKU6mkkPqPdDdtDXlEzVb0Xo2HgZMfuJ8KBw==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>lZnrOj6ykWj7Zg==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.tmpl
new file mode 100644
index 00000000..d60dd522
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha224"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha224"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.xml b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.xml
new file mode 100644
index 00000000..16720505
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha224"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha224"/>
+ <DigestValue>azpKU6mkkPqPdDdtDXlEzVb0Xo2HgZMfuJ8KBw==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>w3xX2+aJSszo0AZX86jF2/fhzv5JyJrO0MTcWg==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.tmpl
new file mode 100644
index 00000000..5bb40085
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha224"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha224"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.xml b/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.xml
new file mode 100644
index 00000000..979073e2
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha224"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha224"/>
+ <DigestValue>azpKU6mkkPqPdDdtDXlEzVb0Xo2HgZMfuJ8KBw==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>Ywv4CqyMcauc5+yFHkavKYK5CRplbcIsNtG8+EJE2j7xuKpi05LsRhbZpyBR8B92
+9C6zUO2A/7unU1mJc2WZcQ==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.tmpl
new file mode 100644
index 00000000..ffbbc6f5
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.xml
new file mode 100644
index 00000000..4e6d8122
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>iDhYt78o294fA6pzQ7k44+eejrQMi+WX3l3UrUdtL1Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>zDqLw++TOXixpw==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.tmpl
new file mode 100644
index 00000000..c475cc9d
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.xml
new file mode 100644
index 00000000..427a5511
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>iDhYt78o294fA6pzQ7k44+eejrQMi+WX3l3UrUdtL1Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>6E34uTISXH5HLnt9wyOB8dxwz/Z31S+qxWF+rULRnhU=</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.tmpl
new file mode 100644
index 00000000..ed5daf78
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.xml
new file mode 100644
index 00000000..b96be4ad
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>iDhYt78o294fA6pzQ7k44+eejrQMi+WX3l3UrUdtL1Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>xOSp1bweDaNd5+NzBNO+m+1oEOm1jNjBMXf12F7LsXoBDpvgC3efL2XgkoRY8LJ9
+msV4PSDkJRzzmvSTvQ6Txg==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.tmpl
new file mode 100644
index 00000000..fcccf830
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha384">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.xml b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.xml
new file mode 100644
index 00000000..d5a442a3
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha384">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+ <DigestValue>uTx8AeqrTmv+nijRsWW7TOs1pCIuCudsFRVloP6hPin8Q4x9fFX2j/zj53XB37OG</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>ZgeAT9hZEkXlyQ==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.tmpl
new file mode 100644
index 00000000..13d87fed
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha384"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.xml b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.xml
new file mode 100644
index 00000000..3072a948
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha384"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+ <DigestValue>uTx8AeqrTmv+nijRsWW7TOs1pCIuCudsFRVloP6hPin8Q4x9fFX2j/zj53XB37OG</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>kUBgPpyFGkOClebckbYHoEY3fMoJtQHPHXC0NLn7/pOUvMuIAH2djvCGnB2+HHhd</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.tmpl
new file mode 100644
index 00000000..7b051090
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha384"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.xml b/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.xml
new file mode 100644
index 00000000..4aeaac19
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha384"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
+ <DigestValue>uTx8AeqrTmv+nijRsWW7TOs1pCIuCudsFRVloP6hPin8Q4x9fFX2j/zj53XB37OG</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>uFn4ZDXvFwAuXt5pROQidUaCGAG1ptEeia2AIzQzRQpWnE9CQ/v+qXYC0PZITr7/
+UeYAr5vGnjXT4euuq/Na5HlTkUSIPfNP0XobrkbFoQHDsceKnw47OhinXICRxeAS
+HPNGrQ9lal9TatY/EG33dhpSOyHjngT+g4FxHDAchqNaUSTJHt5t8i+q0INA8Crx
+98AfhcbkfkcJZ3sZ4aGyvFJEq203KXEhCyQExZ/t1jjXhlEc+KX+2+qmiQnS6Ndy
+Ql4RbQt6us/wjXrunNEjYR75+k6U2U1cqZmPoHJtxEP9E1DfVHd5nkWs/nYS3u78
+Udz5Ot2Ms/7URAywG6sA6jPl2WZUe/kdvXfhYT4mR8cK9f/hPCXn4C0/cMTZEJRa
+lO1KajV590QmHv188Ec3nyaeorYnF/1oNdSXERlsEp4ZttfyQTIKqVQXMwZWjnid
+He09m3vBPZFUfy3oK7Y9fdaV4lNrhG7UVd9jhJwyE089sfqGvk5M02K2cBuES54d
+lU0IksBwqKwomfrjU0eMMqF59R5sKu1/25XmnJwj6SBEpeqxlWzz7NSLMIEJEdwq
+2ZkTvQEYbZjo/p0U1e8qr4w/zRamSQUhAaHPsuYrG4x5QnjMd6s8uxkOchnAEyYO
+ZtF20MPtrH6k1D7JwxPb87C8ET75iKR4lm4lYJiFrn8=</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIIFmTCCBUOgAwIBAgIJANaOuOCRgiz8MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzExMDI1MDExWhcNMTUwNzA5MDI1MDExWjCBuTELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxGzAZBgNVBAsT
+ElRlc3QgTGFyZ2UgUlNBIEtleTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8G
+CSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA82H5NlSuXRdoGxgoJHJOOV2/IBfIfCBZ+6NC5Cy3DW2X
+fuGbulnD5+hk/3Y1WOCQ+isTkl+6t39UJW7OzRujeJI0MX+d3IBhPHJpbbg1qPgf
+A2zl10FTJISKcnA84jmL7HCd088uCPYFgK82j+2O799QM5RYFY+HxLRlPaHRIwBq
+ZzVgBli9Q4qGUin0oeFff1luykp4Fp3aBNlh1KPqaXJ/G6r/yAdRE1DBPn2b93Dc
+ul2UqSus6lbgPH9dke+9giXyN+ss2a233T68hnqviY/5Ml6c0EEMjLeEXinpT/y1
+XPT5gjK5Ne2ECjIjMrWkscjFoBa1d40hj1OAxKGkZe6vCoQdNDDjBzXOFo5pe7ch
+kVYmwtc/eQ7gsnelymCIFTCPZaqPnZ/QUD0qm09hykMZuWlYG5h3Q0IeCHwwWFLU
+s+vRop4o3RuW/fko/XbY7JEh0Y1CTPUFcC7Su5rFyOF3XU5fwqufwHVREW7qaw7U
+vJPepJXj0lJXrHTFpuWilD/YQw5CjHWtDGnRqI7nSXcrOK/JrEN3J5CCHWLmMaAb
+F75+Yywp7Bs9S1I57Hoq/Egvvc7ZHyEC+yxu2UAUxWrOILwM5K6HNdLaX9uVUPPj
+7SyTrUJbr2X++EsK3GB/3Ug4iND8pKr8XweXz663Qz2H675R4/GMH2NDKSSMlCMC
+AwEAAaOCAVMwggFPMAwGA1UdEwQFMAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5T
+U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSQNTYRUvkAZfxx53Ow
+ke0LGYTGKDCB8QYDVR0jBIHpMIHmgBT+5OxTJPCVlccQteFEtV05ZVrjfqGBwqSB
+vzCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoT
+NFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3ht
+bHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMN
+QWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29t
+ggkA1o644JGCLPgwDQYJKoZIhvcNAQEFBQADQQB5zUH88GYT8Xa9IlHdkS96Rv2w
+6kTmc12sAC1uDJCl4TvyTHV5Egjrf/qCfeD3dttjbAfpZQqYiE6xD9JXPd9P</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.tmpl
new file mode 100644
index 00000000..e1f37028
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha512">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.xml b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.xml
new file mode 100644
index 00000000..ccc0f4a3
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha512">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue>E2Jo801uUCgAIa65niLU7jPSWPWUbsgT+okPgBcw/h72V7bmI0J2faJ+8EbwVwah
+XDnbRaf22WqerzX1vL0QzA==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>shktZYjrs58vuA==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.tmpl
new file mode 100644
index 00000000..0c0a5ec2
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha512"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.xml b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.xml
new file mode 100644
index 00000000..e672b8b6
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha512"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue>E2Jo801uUCgAIa65niLU7jPSWPWUbsgT+okPgBcw/h72V7bmI0J2faJ+8EbwVwah
+XDnbRaf22WqerzX1vL0QzA==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>Zrlh7+epRyXMyvjgAzF9jRFFTWPEOTeOGh5HxrEn0xkKMvQtdAK36Xm1y92HmPlL
+SHYkQIF4KJJ5iIWQ0k/Lnw==</SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.tmpl
new file mode 100644
index 00000000..4286ceda
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha512"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.xml b/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.xml
new file mode 100644
index 00000000..5f37cf4f
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#rsa-sha512"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue>E2Jo801uUCgAIa65niLU7jPSWPWUbsgT+okPgBcw/h72V7bmI0J2faJ+8EbwVwah
+XDnbRaf22WqerzX1vL0QzA==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>X2d4uz1EmG0woubIv7rk7qznSNus9TtcDMvITXReQoeDLgsgdwtTlfkBIbOsR1Dr
+UNByKIpO/8FjRrqkdv6Ti+tR3tpSZHxeRKOyDvIjz5pUUcytikvT7MK7hPwq3TSe
+u0AW9ybbY6TKENJWI2IOKxj134QFJZCVfsGUnXxp2JY//OhuLMHU47WBIEOnG4pd
+heS/RkatH9s7ZbSkwWuN3HPUh3pssL5KPnwHnFdOIAaf7DcEjnegmmIv/5hedcto
+OvzAVrGoeht/UDYqOO7P4C6qwSr9UoUHaVFa/mCjWdk+Ld+P5SVywBYw3rlPVK6Y
+Os6YGMi8OC+HYjhSLn87xjZhX1LUmZjGrxIPtpkuY3i3YvQRo0im/o0u01CIKoXF
+ruAm3UzJs4dvwIuSgy6Jwso/y6KWuWM/fbjtoz7kKaalhmh51YW+0LNwwy5DutLv
+Ty9GOjTei/XZmSqkYTNtsn6FCcQs32q+l+t7q46t4RU7IBq50VJIJ8M+CRFFK1zt
+TdAd/ifZloxU7Dibg7qtUKwLf2YJDHMxyi4dYFiL1EbadJBnmsgcmbamhhvYidUt
+5M0PGCJxg9zURw7t81OT3c9mmgMkxVcAmjGqiZTlkNgsa+q7uiBfyCp8GbkejNBv
+tV0wvmrUFb5/Ds4qTwSbcNi4IN3YB0X6fy7YhhMW5gQ=</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509Certificate>MIIFmTCCBUOgAwIBAgIJANaOuOCRgiz8MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzExMDI1MDExWhcNMTUwNzA5MDI1MDExWjCBuTELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxGzAZBgNVBAsT
+ElRlc3QgTGFyZ2UgUlNBIEtleTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8G
+CSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA82H5NlSuXRdoGxgoJHJOOV2/IBfIfCBZ+6NC5Cy3DW2X
+fuGbulnD5+hk/3Y1WOCQ+isTkl+6t39UJW7OzRujeJI0MX+d3IBhPHJpbbg1qPgf
+A2zl10FTJISKcnA84jmL7HCd088uCPYFgK82j+2O799QM5RYFY+HxLRlPaHRIwBq
+ZzVgBli9Q4qGUin0oeFff1luykp4Fp3aBNlh1KPqaXJ/G6r/yAdRE1DBPn2b93Dc
+ul2UqSus6lbgPH9dke+9giXyN+ss2a233T68hnqviY/5Ml6c0EEMjLeEXinpT/y1
+XPT5gjK5Ne2ECjIjMrWkscjFoBa1d40hj1OAxKGkZe6vCoQdNDDjBzXOFo5pe7ch
+kVYmwtc/eQ7gsnelymCIFTCPZaqPnZ/QUD0qm09hykMZuWlYG5h3Q0IeCHwwWFLU
+s+vRop4o3RuW/fko/XbY7JEh0Y1CTPUFcC7Su5rFyOF3XU5fwqufwHVREW7qaw7U
+vJPepJXj0lJXrHTFpuWilD/YQw5CjHWtDGnRqI7nSXcrOK/JrEN3J5CCHWLmMaAb
+F75+Yywp7Bs9S1I57Hoq/Egvvc7ZHyEC+yxu2UAUxWrOILwM5K6HNdLaX9uVUPPj
+7SyTrUJbr2X++EsK3GB/3Ug4iND8pKr8XweXz663Qz2H675R4/GMH2NDKSSMlCMC
+AwEAAaOCAVMwggFPMAwGA1UdEwQFMAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5T
+U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSQNTYRUvkAZfxx53Ow
+ke0LGYTGKDCB8QYDVR0jBIHpMIHmgBT+5OxTJPCVlccQteFEtV05ZVrjfqGBwqSB
+vzCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoT
+NFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3ht
+bHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMN
+QWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29t
+ggkA1o644JGCLPgwDQYJKoZIhvcNAQEFBQADQQB5zUH88GYT8Xa9IlHdkS96Rv2w
+6kTmc12sAC1uDJCl4TvyTHV5Egjrf/qCfeD3dttjbAfpZQqYiE6xD9JXPd9P</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/x509data-sn-test.tmpl b/tests/aleksey-xmldsig-01/x509data-sn-test.tmpl
new file mode 100755
index 00000000..9a875c06
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/x509data-sn-test.tmpl
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document>
+ <ToBeSigned>
+ Some very secret data
+ </ToBeSigned>
+ <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#rsa-sha1" />
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue/>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue/>
+ <KeyInfo>
+ <X509Data>
+ <X509IssuerSerial/>
+ </X509Data>
+ </KeyInfo>
+ </Signature>
+</Document>
diff --git a/tests/aleksey-xmldsig-01/x509data-sn-test.xml b/tests/aleksey-xmldsig-01/x509data-sn-test.xml
new file mode 100755
index 00000000..2136faa4
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/x509data-sn-test.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document>
+ <ToBeSigned>
+ Some very secret data
+ </ToBeSigned>
+ <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#rsa-sha1"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>3om1gINPzaogcdLuDdjIQlls4NE=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>W/X7k6Q6T9RFW56VkRV9HGW5wkyUxvvlUcEyUkggVE04gsOK0Rx0rqq2woUxzkk1
+jvXfCtm2xknb2/cOmqfO/g==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+
+ <X509IssuerSerial>
+<X509IssuerName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Root Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509IssuerName>
+<X509SerialNumber>15460497845462904056</X509SerialNumber>
+</X509IssuerSerial>
+<X509IssuerSerial>
+<X509IssuerName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Root Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509IssuerName>
+<X509SerialNumber>15460497845462904055</X509SerialNumber>
+</X509IssuerSerial>
+<X509IssuerSerial>
+<X509IssuerName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Second Level RSA Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509IssuerName>
+<X509SerialNumber>15460497845462904058</X509SerialNumber>
+</X509IssuerSerial>
+</X509Data>
+ </KeyInfo>
+ </Signature>
+</Document>
diff --git a/tests/aleksey-xmldsig-01/x509data-test.tmpl b/tests/aleksey-xmldsig-01/x509data-test.tmpl
new file mode 100644
index 00000000..fe860b33
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/x509data-test.tmpl
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document>
+ <ToBeSigned>
+ Some very secret data
+ </ToBeSigned>
+ <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#rsa-sha1" />
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue/>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue/>
+ <KeyInfo>
+ <X509Data>
+ <X509SubjectName/>
+ <X509IssuerSerial/>
+ <X509SKI/>
+ <X509Certificate/>
+ <X509CRL/>
+ </X509Data>
+ </KeyInfo>
+ </Signature>
+</Document>
diff --git a/tests/aleksey-xmldsig-01/x509data-test.xml b/tests/aleksey-xmldsig-01/x509data-test.xml
new file mode 100644
index 00000000..287cc778
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/x509data-test.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document>
+ <ToBeSigned>
+ Some very secret data
+ </ToBeSigned>
+ <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#rsa-sha1"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>3om1gINPzaogcdLuDdjIQlls4NE=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>W/X7k6Q6T9RFW56VkRV9HGW5wkyUxvvlUcEyUkggVE04gsOK0Rx0rqq2woUxzkk1
+jvXfCtm2xknb2/cOmqfO/g==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+
+
+
+
+
+ <X509Certificate>MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=</X509Certificate>
+<X509SubjectName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Second Level RSA Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509SubjectName>
+<X509IssuerSerial>
+<X509IssuerName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Root Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509IssuerName>
+<X509SerialNumber>15460497845462904056</X509SerialNumber>
+</X509IssuerSerial>
+<X509SKI>/uTsUyTwlZXHELXhRLVdOWVa434=</X509SKI>
+<X509Certificate>MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==</X509Certificate>
+<X509SubjectName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Root Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509SubjectName>
+<X509IssuerSerial>
+<X509IssuerName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Root Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509IssuerName>
+<X509SerialNumber>15460497845462904055</X509SerialNumber>
+</X509IssuerSerial>
+<X509SKI>2kbpa+av0z2q5SFLUu3KZijg/oU=</X509SKI>
+<X509Certificate>MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=</X509Certificate>
+<X509SubjectName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Third Level RSA Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509SubjectName>
+<X509IssuerSerial>
+<X509IssuerName>emailAddress=xmlsec@aleksey.com,CN=Aleksey Sanin,OU=Test Second Level RSA Certificate,O=XML Security Library (http://www.aleksey.com/xmlsec),ST=California,C=US</X509IssuerName>
+<X509SerialNumber>15460497845462904058</X509SerialNumber>
+</X509IssuerSerial>
+<X509SKI>1/TGRnfONwQjrSlU+7AOpMxDKBk=</X509SKI>
+</X509Data>
+ </KeyInfo>
+ </Signature>
+</Document>
diff --git a/tests/aleksey-xmldsig-01/xpointer-hmac.tmpl b/tests/aleksey-xmldsig-01/xpointer-hmac.tmpl
new file mode 100644
index 00000000..b96bfbe2
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/xpointer-hmac.tmpl
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!DOCTYPE test [
+<!ATTLIST ToBeSigned Id ID #IMPLIED>
+]>
+<Document xmlns:xenc="http://www.example.org/xenc" xmlns:dsig="http://www.example.org/dsig">
+ <ToBeSigned Id="foo">
+ <Secrets>Test</Secrets>
+ </ToBeSigned>
+ <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#hmac-sha1"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2001/04/xmldsig-more/xptr">
+ <XPointer xmlns="http://www.w3.org/2001/04/xmldsig-more/xptr">
+ xpointer(id(&quot;foo&quot;))
+ </XPointer>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue/>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+ </Signature>
+</Document>
diff --git a/tests/aleksey-xmldsig-01/xpointer-hmac.xml b/tests/aleksey-xmldsig-01/xpointer-hmac.xml
new file mode 100644
index 00000000..2a255f8a
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/xpointer-hmac.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE test [
+<!ATTLIST ToBeSigned Id ID #IMPLIED>
+]>
+<Document xmlns:xenc="http://www.example.org/xenc" xmlns:dsig="http://www.example.org/dsig">
+ <ToBeSigned Id="foo">
+ <Secrets>Test</Secrets>
+ </ToBeSigned>
+ <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#hmac-sha1"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2001/04/xmldsig-more/xptr">
+ <XPointer xmlns="http://www.w3.org/2001/04/xmldsig-more/xptr">
+ xpointer(id(&quot;foo&quot;))
+ </XPointer>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>faszbFrqwUNeZH5QrXPPobn+zso=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>BTB6iZWZjOIG0JjGjpYbihO3Igg=</SignatureValue>
+ <Object Id="object">some text</Object>
+ </Signature>
+</Document>
diff --git a/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data b/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data
new file mode 100644
index 00000000..594c477e
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data
@@ -0,0 +1 @@
+AES 128 test \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl b/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl
new file mode 100644
index 00000000..ac1a0dee
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes128</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml b/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml
new file mode 100644
index 00000000..76098001
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes128</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 432rJLM0EzSdHa3cWLfs3U83HBztt3Ic39z8CNByrpo=
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.data b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.data
new file mode 100644
index 00000000..b033a78f
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.data
@@ -0,0 +1 @@
+AES 192 test \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.xml b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.xml
new file mode 100644
index 00000000..38318246
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST CipherValue Id ID #IMPLIED>
+]>
+<Test>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes192</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherReference URI="#object1">
+ <Transforms>
+ <Transform xmlns="http://www.w3.org/2000/09/xmldsig#"
+ Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ </CipherReference>
+ </CipherData>
+ </EncryptedData>
+ <CipherValue Id="object1">AJLsXcJ1gw8iioTiVGnmQRpzOO+FWsQscv3Lh6H6lXo=</CipherValue>
+</Test>
diff --git a/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data
new file mode 100644
index 00000000..b033a78f
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data
@@ -0,0 +1 @@
+AES 192 test \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl
new file mode 100644
index 00000000..5a472d0f
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes192</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml
new file mode 100644
index 00000000..deb92cdc
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes192</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ AJLsXcJ1gw8iioTiVGnmQRpzOO+FWsQscv3Lh6H6lXo=
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data b/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data
new file mode 100644
index 00000000..0050ab2b
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data
@@ -0,0 +1 @@
+AES 256 test \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl b/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl
new file mode 100644
index 00000000..f3821f4c
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes256</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue/>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml b/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml
new file mode 100644
index 00000000..c1ffb715
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes256</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ yBkkKOjMipVQ8TFH2hztqEdz+GY24hwA/NTbhAZmBnM=
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data b/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data
new file mode 100644
index 00000000..2c05c79b
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data
@@ -0,0 +1 @@
+DES3 with AES 192 EncryptedKey test \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.tmpl b/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.tmpl
new file mode 100644
index 00000000..539d63ea
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" >
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes192</KeyName>
+ </KeyInfo>
+ <CipherData><CipherValue /></CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue />
+ </CipherData>
+</EncryptedData> \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.xml b/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.xml
new file mode 100644
index 00000000..039b8ce0
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-aes192</KeyName>
+ </KeyInfo>
+ <CipherData><CipherValue>W2NlGNjoDf4uJDaVvgwmts4OrhHvJB5Fp70uE3WQzp2yIg9CPSi7cI17AC/C1heM</CipherValue></CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 1PP85RS57jDTni0Yq61fo7P7mUUIZSYPu5yyIMUtAscecST0B3SguUyCvTAoBw46
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data
new file mode 100644
index 00000000..0532dec5
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<Test Id="Test">
+test
+</Test>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.tmpl b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.tmpl
new file mode 100644
index 00000000..c3e5ba8d
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData><CipherValue/></CipherData>
+</EncryptedData> \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.xml b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.xml
new file mode 100644
index 00000000..d7f96276
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<Test Id="Test"><EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ V0CekKjZodbqjW4Yq3lMkA==
+ </CipherValue>
+ </CipherData>
+</EncryptedData></Test>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data
new file mode 100644
index 00000000..0532dec5
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<Test Id="Test">
+test
+</Test>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.tmpl b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.tmpl
new file mode 100644
index 00000000..02a8a878
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData><CipherValue/></CipherData>
+</EncryptedData> \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.xml b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.xml
new file mode 100644
index 00000000..1ed96274
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ HDvKKAd3/jXGSiDF1166ltlr9VMWOjeqGF3A+wVteY0+efDB3kgYMg==
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data
new file mode 100644
index 00000000..ac486415
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<Envelope>
+ <Test Id="Test">
+ test
+ </Test>
+</Envelope>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.tmpl b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.tmpl
new file mode 100644
index 00000000..02a8a878
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData><CipherValue/></CipherData>
+</EncryptedData> \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.xml b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.xml
new file mode 100644
index 00000000..fab88415
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST Test Id ID #IMPLIED>
+]>
+<Envelope>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ R7/6DcpvRzHeYQ09rSjgm6COYB3srMqwpxeBWRmzT2P+lwa/bZGgZEOSQyayMEIt
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
+</Envelope>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data
new file mode 100644
index 00000000..30d74d25
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data
@@ -0,0 +1 @@
+test \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl
new file mode 100644
index 00000000..8ccb664d
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName />
+ </KeyInfo>
+ <CipherData><CipherValue /></CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml
new file mode 100644
index 00000000..fdcccee9
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData> <CipherValue>iWFa3B64eDmVedgWVjyDag== </CipherValue></CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data
new file mode 100644
index 00000000..541425af
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data
@@ -0,0 +1 @@
+big secret \ No newline at end of file
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl
new file mode 100644
index 00000000..7a8d4cc1
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName />
+ </KeyInfo>
+ <CipherData>
+<CipherValue />
+</CipherData>
+</EncryptedData>
diff --git a/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml
new file mode 100644
index 00000000..ba927245
--- /dev/null
+++ b/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>test-des</KeyName>
+ </KeyInfo>
+ <CipherData>
+<CipherValue>
+EBCx80yc0F+4nrNYevpf5dkHioi9j0QT
+</CipherValue>
+</CipherData>
+</EncryptedData>
diff --git a/tests/keys/README b/tests/keys/README
new file mode 100644
index 00000000..14515024
--- /dev/null
+++ b/tests/keys/README
@@ -0,0 +1,203 @@
+README
+
+0. Passwords
+ For all files the password is "secret".
+
+1. Files list
+
+ cakey.pem Root CA private key
+ cacert.pem Root CA for cakey.pem
+ ca2key.pem RSA private key
+ ca2cert.pem Second-level RSA cert for ca2key.pem
+ dsakey.pem DSA private key
+ dsacert.pem Third level DSA cert for dsakey.pem
+ rsakey.pem RSA private key
+ rsacert.pem Third level RSA cert for rsacert.pem
+ hmackey.bin HMAC key ('secret')
+ expired.key key for expired cert
+ expired.crt expired certificate
+ rsa2key.pem RSA private key
+ rsa2cert.pem Self signed RSA certificate with negative serial number
+
+2. How certificates were generated:
+
+ A. Create new CA
+ - Change DAYS and CADAYS in CA.pl to 3650 (10 years)
+ > export SSLEAY_CONFIG="-config ./openssl.cnf"
+ > CA.pl -newca
+ > cp ./demoCA/cacert.pem .
+ > cp ./demoCA/private/cakey.pem .
+ > openssl x509 -text -in cacert.pem
+
+ B. Generate RSA key and second level CA
+ > openssl genrsa -out ca2key.pem
+ > openssl req -config ./openssl.cnf -new -key ca2key.pem -out ca2req.pem
+ > openssl ca -config ./openssl.cnf -cert cacert.pem -keyfile cakey.pem \
+ -out ca2cert.pem -infiles ca2req.pem
+ > openssl verify -CAfile cacert.pem ca2cert.pem
+
+ C. Generate and sign DSA key with second level CA
+ > openssl dsaparam -out dsakey.pem -genkey 512
+ > openssl req -config ./openssl.cnf -new -key dsakey.pem -out dsareq.pem
+ > openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
+ -out dsacert.pem -infiles dsareq.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem dsacert.pem
+
+ D. Generate and sign RSA key with second level CA
+ > openssl genrsa -out rsakey.pem
+ > openssl req -config ./openssl.cnf -new -key rsakey.pem -out rsareq.pem
+ > openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
+ -out rsacert.pem -infiles rsareq.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem rsacert.pem
+
+ E. Generate and sign large RSA key with second level CA
+ > openssl genrsa -out largersakey.pem 4096
+ > openssl req -config ./openssl.cnf -new -key largersakey.pem -out largersareq.pem
+ > openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
+ -out largersacert.pem -infiles largersareq.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem largersacert.pem
+
+ F. Generate and sign short-live RSA cert for "expired cert" test
+ > openssl genrsa -out expiredkey.pem
+ > openssl req -config ./openssl.cnf -new -days 1 -key expiredkey.pem \
+ -out expiredreq.pem
+ > openssl ca -config ./openssl.cnf -days 1 -cert ca2cert.pem \
+ -keyfile ca2key.pem -out expiredcert.pem -infiles expiredreq.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem expiredcert.pem
+
+3. Converting key and certs between PEM and DER formats
+
+ - Convert PEM private key file to DER file
+ RSA key:
+ > openssl rsa -inform PEM -outform DER -in rsakey.pem -out rsakey.der
+ > openssl rsa -inform PEM -outform DER -in largersakey.pem -out largersakey.der
+ > openssl rsa -inform PEM -outform DER -in expiredkey.pem -out expiredkey.der
+ DSA key:
+ > openssl dsa -inform PEM -outform DER -in dsakey.pem -out dsakey.der
+
+ - Convert PEM cert file to DER file
+ > openssl x509 -outform DER -in cacert.pem -out cacert.der
+ > openssl x509 -outform DER -in ca2cert.pem -out ca2cert.der
+ > openssl x509 -outform DER -in dsacert.pem -out dsacert.der
+ > openssl x509 -outform DER -in rsacert.pem -out rsacert.der
+ > openssl x509 -outform DER -in largersacert.pem -out largersacert.der
+ > openssl x509 -outform DER -in expiredcert.pem -out expiredcert.der
+
+ - (optional) Convert PEM public key file to DER file
+ RSA key:
+ > openssl rsa -inform PEM -outform DER -pubin -pubout -in lugh.key -out lugh.der
+ DSA key:
+ > openssl dsa -inform PEM -outform DER -pubin -pubout -in lugh.key -out lugh.der
+
+ If you aren't sure if the public key is RSA or DSA, just run one of
+ the above commands, and the error messaging will make it clear :)
+
+ - (optional) Convert DER cert file to PEM file
+ > openssl x509 -inform DER -outform PEM -in ca2cert.der -out ca2cert.pem
+
+4. Converting an unencrypted PEM or DER file containing a private key
+ to an encrypted PEM or DER file containing the same private key but
+ encrypted
+ > openssl pkcs8 -in dsakey.pem -inform pem -out dsakey.p8-pem -outform pem -topk8
+ > openssl pkcs8 -in dsakey.der -inform der -out dsakey.p8-der -outform der -topk8
+ > openssl pkcs8 -in rsakey.pem -inform pem -out rsakey.p8-pem -outform pem -topk8
+ > openssl pkcs8 -in rsakey.der -inform der -out rsakey.p8-der -outform der -topk8
+ > openssl pkcs8 -in largersakey.pem -inform pem -out largersakey.p8-pem \
+ -outform pem -topk8
+ > openssl pkcs8 -in largersakey.der -inform der -out largersakey.p8-der \
+ -outform der -topk8
+
+5. NSS is unfriendly towards standalone private keys.
+ This procedure helps convert raw private keys into PKCS12 form that is
+ suitable for not only NSS but all crypto engines.
+
+ > cat dsakey.pem dsacert.pem ca2cert.pem cacert.pem > alldsa.pem
+ > openssl pkcs12 -export -in alldsa.pem -name TestDsaKey -out dsakey.p12
+
+ > cat rsakey.pem rsacert.pem ca2cert.pem cacert.pem > allrsa.pem
+ > openssl pkcs12 -export -in allrsa.pem -name TestRsaKey -out rsakey.p12
+
+ > cat largersakey.pem largersacert.pem ca2cert.pem cacert.pem > alllargersa.pem
+ > openssl pkcs12 -export -in alllargersa.pem -name TestLargeRsaKey -out largersakey.p12
+
+ > cat expiredkey.pem expiredcert.pem ca2cert.pem cacert.pem > allexpired.pem
+ > openssl pkcs12 -export -in allexpired.pem -name TestExpiredRsaKey \
+ -out expiredkey.p12
+
+
+ 5a.
+ Input: DSA/RSA private key in PEM or DER format
+ Output: A PKCS12 file containing the private key, and a self-signed
+ certificate with the corresponding public key
+
+ # first convert key file to PEM format, if not already in that format
+ > openssl <dsa|rsa> -inform der -outform pem -in key.der -out key.pem
+
+ # answer questions at the prompt
+ # Note: use a unique subject (=issuer) for each self-signed cert you
+ # create (since there is no way to specify serial # using the command
+ # below)
+ > openssl req -new -keyform <der|pem> -key key.<der|pem> -x509 -sha1 -days 999999 -outform pem -out cert.pem
+
+ # now using the cert and key in PEM format, conver them to a PKCS12 file
+ # enter some password on prompt
+ > openssl pkcs12 -export -in cert.pem -inkey key.pem -name <nickname> -out keycert.p12
+
+ # This pkcs12 file can be used directly on the xmlsec command line, or
+ # can be pre-loaded into the crypto engine database (if any).
+
+ # In the case of NSS, you can pre-load the key using pk12util.
+ # The key and cert will have the nickname "nickname" (used in above step)
+ > pk12util -d <nss_config_dir> -i keycert.p12
+
+ 5b.
+ Input: DSA/RSA private key in PEM or DER format
+ KeyCert containing corresponding public key
+ Other certs in the chain leading from KeyCert to the root
+ Output: A PKCS12 file containing the private key, the KeyCert and the
+ certs in the chain
+
+ # first convert key file to PEM format, if not already in that format
+ > openssl <dsa|rsa> -inform der -outform pem -in key.der -out key.pem
+
+ # convert all cert files to PEM format, if not already in that format
+ > openssl x509 -inform der -outform pem -in cert.der -out cert.pem
+
+ # concatenate all cert.pem files created above to 1 file - allcerts.pem
+ > cat keycert.pem cert1.pem cert2.pem .... > allcerts.pem
+
+ # now using the certs and key in PEM format, conver them to a PKCS12 file
+ # enter some password on prompt
+ > openssl pkcs12 -export -in allcerts.pem -inkey key.pem \
+ -name <nickname of key & keycert>
+ [-caname <nickname of cert1> -caname <nickname of cert2>.... ]
+ -out keycert.p12
+
+ # This pkcs12 file can be used directly on the xmlsec command line, or
+ # can be pre-loaded into the crypto engine database (if any).
+
+ # In the case of NSS, you can pre-load the key using pk12util.
+ # The key and certs will have the nickname "nickname"
+ # (used in above step)
+ > pk12util -d <nss_config_dir> -i keycert.p12
+
+6. On Windows, one needs to specify Crypto Service Provider (CSP) in the
+pkcs12 file to ensure it is loaded correctly to be used with SHA2 algorithms.
+Worse, the CSP is different for XP and older versions
+
+
+ Input: DSA/RSA private key in PEM or DER format
+ Output: A PKCS12 file containing the private key, and a self-signed
+ certificate with the corresponding public key. Plus the CSP
+ name to be used for this key/cert.
+
+
+ > cat rsakey.pem rsacert.pem ca2cert.pem cacert.pem > allrsa.pem
+ > openssl pkcs12 -export -in allrsa.pem -name TestRsaKey -out rsakey-winxp.p12 -CSP "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
+ > openssl pkcs12 -export -in allrsa.pem -name TestRsaKey -out rsakey-win.p12 -CSP "Microsoft Enhanced RSA and AES Cryptographic Provider"
+
+
+ > cat largersakey.pem largersacert.pem ca2cert.pem cacert.pem > alllargersa.pem
+ > openssl pkcs12 -export -in alllargersa.pem -name TestLargeRsaKey -out largersakey-winxp.p12 -CSP "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
+ > openssl pkcs12 -export -in alllargersa.pem -name TestLargeRsaKey -out largersakey-win.p12 -CSP "Microsoft Enhanced RSA and AES Cryptographic Provider"
+
diff --git a/tests/keys/ca2cert.der b/tests/keys/ca2cert.der
new file mode 100644
index 00000000..0f163c46
--- /dev/null
+++ b/tests/keys/ca2cert.der
Binary files differ
diff --git a/tests/keys/ca2cert.pem b/tests/keys/ca2cert.pem
new file mode 100644
index 00000000..aacdd36d
--- /dev/null
+++ b/tests/keys/ca2cert.pem
@@ -0,0 +1,66 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:f8
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 10 02:29:55 2005 GMT
+ Not After : Jul 8 02:29:55 2015 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Second Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:b2:ba:f2:89:d8:2b:94:3c:3d:f7:82:13:ed:e1:
+ 0f:0c:8a:57:ac:1f:15:5b:6e:9c:8a:7e:66:9b:ad:
+ 85:69:0c:65:43:98:e2:8a:a7:7d:fb:a8:95:19:67:
+ de:4a:7f:09:57:6d:1d:a3:d3:3c:8a:58:99:af:47:
+ 15:31:f8:fb:13
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ X509v3 Authority Key Identifier:
+ keyid:DA:46:E9:6B:E6:AF:D3:3D:AA:E5:21:4B:52:ED:CA:66:28:E0:FE:85
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F7
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 99:8d:11:8d:b4:95:a8:e5:3f:c6:fc:a1:4a:af:09:ba:4e:ae:
+ f1:b0:c7:60:85:20:ad:f8:48:0d:95:2d:55:3d:6c:fa:8a:78:
+ 45:e3:8e:90:2e:d6:ed:90:ce:97:c3:31:84:99:ad:e0:a3:2a:
+ 73:a9:e2:62:84:1e:b9:74:c0:f5:0a:4e:95:e0:6a:8b:c4:7b:
+ fb:47:32:78:67:9b:a3:92:4e:15:63:7b:27:bc:25:96:ea:4a:
+ a7:58:89:70:ab:5c:01:1c:00:ed:bb:28:fd:0e:4e:79:f0:30:
+ 0c:de:29:b9:c8:35:dd:f3:98:29:59:2d:17:c5:cb:42:42:14:
+ b1:f6
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA36gAwIBAgIJANaOuOCRgiz4MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTU1WhcNMTUwNzA4MDIyOTU1WjCByDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKjAoBgNVBAsTIVRlc3QgU2Vjb25k
+IExldmVsIFJTQSBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAaOCAVMwggFPMAwGA1UdEwQF
+MAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
+YXRlMB0GA1UdDgQWBBT+5OxTJPCVlccQteFEtV05ZVrjfjCB8QYDVR0jBIHpMIHm
+gBTaRulr5q/TParlIUtS7cpmKOD+haGBwqSBvzCBvDELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5
+IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3Qg
+Um9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkA1o644JGCLPcwDQYJKoZIhvcN
+AQEFBQADgYEAmY0RjbSVqOU/xvyhSq8Juk6u8bDHYIUgrfhIDZUtVT1s+op4ReOO
+kC7W7ZDOl8MxhJmt4KMqc6niYoQeuXTA9QpOleBqi8R7+0cyeGebo5JOFWN7J7wl
+lupKp1iJcKtcARwA7bso/Q5OefAwDN4pucg13fOYKVktF8XLQkIUsfY=
+-----END CERTIFICATE-----
diff --git a/tests/keys/ca2key.pem b/tests/keys/ca2key.pem
new file mode 100644
index 00000000..1b842b7d
--- /dev/null
+++ b/tests/keys/ca2key.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBALK68onYK5Q8PfeCE+3hDwyKV6wfFVtunIp+ZputhWkMZUOY4oqn
+ffuolRln3kp/CVdtHaPTPIpYma9HFTH4+xMCAwEAAQJBAKXFUUlar2jIyyyygCuF
+L8EQ2yowlk18dULa4+6GbZO0t7D+sPAjog7xxSG3ppM0jvh2QO0w0CHz4E+DD5l4
+v/kCIQDYd4Iy9gUBDxsL2bLnVr+HWqrmA8fmksd+x9Nr0f2dBwIhANNfI1VenWH6
+76PXxDFEHeexPXm8iEu5u4oq9i10rzqVAiABZNObzGW/2f8MlnxGbRKSpozPKlsR
+KwTJ1jOQUCvX5QIhALNaAcg5bT+rRlX3CmFnVBy5ttkqEVh389rsU1EEtn71AiEA
+zIAQsg4C691XNHCPRdrQFG+tKoeyyuwaBr1Xn4dGpTU=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/keys/cacert.der b/tests/keys/cacert.der
new file mode 100644
index 00000000..170a3f69
--- /dev/null
+++ b/tests/keys/cacert.der
Binary files differ
diff --git a/tests/keys/cacert.pem b/tests/keys/cacert.pem
new file mode 100644
index 00000000..a86c2e77
--- /dev/null
+++ b/tests/keys/cacert.pem
@@ -0,0 +1,72 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:f7
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 10 02:29:01 2005 GMT
+ Not After : Jul 8 02:29:01 2015 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:da:c9:a1:5a:8c:9c:4e:75:55:3e:f0:48:f0:3b:
+ 7d:52:d9:7a:8d:99:8c:71:6c:77:e2:50:93:b7:c3:
+ 68:79:ec:e3:d4:90:a0:1c:29:ee:46:be:df:61:25:
+ b3:d3:6f:70:b8:6e:53:d2:70:e9:1e:d9:17:b1:2a:
+ 75:d2:ee:90:17:5d:bc:45:96:05:25:67:44:0a:d0:
+ ad:a9:76:5e:79:f4:e4:a6:ae:d1:f7:98:f3:fd:04:
+ 9b:ef:0c:c9:71:91:c3:63:f7:f1:1e:0f:ec:86:77:
+ c1:8d:ff:24:fa:3d:30:e1:f0:6f:f8:96:cc:ce:5c:
+ bf:ad:c8:a2:24:0b:86:2c:ff
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ DA:46:E9:6B:E6:AF:D3:3D:AA:E5:21:4B:52:ED:CA:66:28:E0:FE:85
+ X509v3 Authority Key Identifier:
+ keyid:DA:46:E9:6B:E6:AF:D3:3D:AA:E5:21:4B:52:ED:CA:66:28:E0:FE:85
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F7
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 54:5d:b7:4e:4d:0c:00:ad:c3:6b:6f:16:af:cc:04:69:d8:91:
+ 8e:9f:3a:3a:5b:34:e6:f8:e1:52:5c:2d:05:d3:c6:30:4f:c8:
+ d6:6e:1b:7d:ed:ef:25:34:d5:4e:05:4e:18:ff:7f:11:79:9a:
+ 98:0b:d3:aa:16:87:c6:d7:f3:bd:01:d4:39:f1:62:ff:15:68:
+ 3c:0e:03:f9:30:93:d3:4f:d9:11:53:71:54:d3:58:d4:89:7d:
+ be:91:b7:67:82:16:40:38:99:b4:ce:24:4d:c5:f3:4f:c0:82:
+ 16:3c:a6:17:c9:71:0a:41:0c:eb:9f:1c:85:7b:2d:61:3f:b7:
+ 20:e8
+-----BEGIN CERTIFICATE-----
+MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==
+-----END CERTIFICATE-----
diff --git a/tests/keys/cakey.pem b/tests/keys/cakey.pem
new file mode 100644
index 00000000..0270e59c
--- /dev/null
+++ b/tests/keys/cakey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,77F426A47A174623
+
+FH1NdgJgrX1OGKM0WfzwRUWmLTmfawdaUPeFNJbz1+40J5DEt1DmC6o0QkXoxIPC
+Te/+FS80gNruYgYIWu4WXftCSdvSfGI8LP1JZ7hmMCl055J2mLVKT4o6HqAQnHrb
+hTATVG6CB/GdHTFPG3J65qIyTlG50jyzfwZtliMCCAwi+AaAlo5xzUe0DgedytB2
+sFkLq5EiD6066P/LXPH/Z5SJKiMCFOl0Gjwd3M9ohZufnEJPJT5ap2fm7OSJSfa6
+jPREY+UwhPyKkYOc2c8gojj6HrsSQlXPl176b1+31c19hhhRAtDfJBIU2OrOFVk/
+V88/Dm0I+ROyLme0rYfFg8uHz2aIymzEMds5ZKEFTFbBhaWbVYKIX7+82tftnd+P
+2kT15JAK9V27F0p4SRiQ5RsDkT3rBWsZjtk9Rptkrgec9aKoTaO2fT8bPaWFR/M1
+6X7kjMqhLw1sHmsSeDKx0YCWfS+gWh7RPjGQ2EfH2pxoZkUAR5R3cZCEn3Ia1BeV
+UTFWy+DwjEeSrNkO96E0pH1r8204cJAKK8cWS4HSAPMsQPf5cZjIrrAak/9Wupkq
+fnrB0Ae6GFO2gHYQfbSL+KdEq6w5+S6XZyTauVyaJAjjIFDmegfaKWHzNvqCWJ4T
+YPsiptUrKz6DYyhiUrNJQKcyGWHWrwMNIbldqSBNCa8OIVoaZiRibgO1SIafAGAS
+9MDXXVaY6rqx1yfZYDc9VgKGXTJhBXALCeGMYF43bvAmPq3M13QJA0rlO7lAUUF2
+5INqBUeJxZrYxn6tRr9EMty/UcYnPR3YHgt0RDZycvbcqPsU5tHk9Q==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/keys/demoCA/cacert.pem b/tests/keys/demoCA/cacert.pem
new file mode 100644
index 00000000..a86c2e77
--- /dev/null
+++ b/tests/keys/demoCA/cacert.pem
@@ -0,0 +1,72 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:f7
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 10 02:29:01 2005 GMT
+ Not After : Jul 8 02:29:01 2015 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:da:c9:a1:5a:8c:9c:4e:75:55:3e:f0:48:f0:3b:
+ 7d:52:d9:7a:8d:99:8c:71:6c:77:e2:50:93:b7:c3:
+ 68:79:ec:e3:d4:90:a0:1c:29:ee:46:be:df:61:25:
+ b3:d3:6f:70:b8:6e:53:d2:70:e9:1e:d9:17:b1:2a:
+ 75:d2:ee:90:17:5d:bc:45:96:05:25:67:44:0a:d0:
+ ad:a9:76:5e:79:f4:e4:a6:ae:d1:f7:98:f3:fd:04:
+ 9b:ef:0c:c9:71:91:c3:63:f7:f1:1e:0f:ec:86:77:
+ c1:8d:ff:24:fa:3d:30:e1:f0:6f:f8:96:cc:ce:5c:
+ bf:ad:c8:a2:24:0b:86:2c:ff
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ DA:46:E9:6B:E6:AF:D3:3D:AA:E5:21:4B:52:ED:CA:66:28:E0:FE:85
+ X509v3 Authority Key Identifier:
+ keyid:DA:46:E9:6B:E6:AF:D3:3D:AA:E5:21:4B:52:ED:CA:66:28:E0:FE:85
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F7
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 54:5d:b7:4e:4d:0c:00:ad:c3:6b:6f:16:af:cc:04:69:d8:91:
+ 8e:9f:3a:3a:5b:34:e6:f8:e1:52:5c:2d:05:d3:c6:30:4f:c8:
+ d6:6e:1b:7d:ed:ef:25:34:d5:4e:05:4e:18:ff:7f:11:79:9a:
+ 98:0b:d3:aa:16:87:c6:d7:f3:bd:01:d4:39:f1:62:ff:15:68:
+ 3c:0e:03:f9:30:93:d3:4f:d9:11:53:71:54:d3:58:d4:89:7d:
+ be:91:b7:67:82:16:40:38:99:b4:ce:24:4d:c5:f3:4f:c0:82:
+ 16:3c:a6:17:c9:71:0a:41:0c:eb:9f:1c:85:7b:2d:61:3f:b7:
+ 20:e8
+-----BEGIN CERTIFICATE-----
+MIIETTCCA7agAwIBAgIJANaOuOCRgiz3MA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wHhcNMDUwNzEw
+MDIyOTAxWhcNMTUwNzA4MDIyOTAxWjCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+CkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRw
+Oi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBD
+ZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJ
+ARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAcKe5Gvt9hJbPT
+b3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3mPP9BJvvDMlx
+kcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQABo4IBUzCCAU8w
+DAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFNpG6Wvmr9M9quUhS1LtymYo4P6FMIHxBgNV
+HSMEgekwgeaAFNpG6Wvmr9M9quUhS1LtymYo4P6FoYHCpIG/MIG8MQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3VyaXR5
+IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwGA1UE
+CxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs9zAN
+BgkqhkiG9w0BAQUFAAOBgQBUXbdOTQwArcNrbxavzARp2JGOnzo6WzTm+OFSXC0F
+08YwT8jWbht97e8lNNVOBU4Y/38ReZqYC9OqFofG1/O9AdQ58WL/FWg8DgP5MJPT
+T9kRU3FU01jUiX2+kbdnghZAOJm0ziRNxfNPwIIWPKYXyXEKQQzrnxyFey1hP7cg
+6A==
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/careq.pem b/tests/keys/demoCA/careq.pem
new file mode 100644
index 00000000..751683c9
--- /dev/null
+++ b/tests/keys/demoCA/careq.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICETCCAXoCAQAwgdAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRIwEAYDVQQHEwlTdW5ueXZhbGUxPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHjAcBgNVBAsTFVRl
+c3QgUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8G
+CSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDayaFajJxOdVU+8EjwO31S2XqNmYxxbHfiUJO3w2h57OPUkKAc
+Ke5Gvt9hJbPTb3C4blPScOke2RexKnXS7pAXXbxFlgUlZ0QK0K2pdl559OSmrtH3
+mPP9BJvvDMlxkcNj9/EeD+yGd8GN/yT6PTDh8G/4lszOXL+tyKIkC4Ys/wIDAQAB
+oAAwDQYJKoZIhvcNAQEFBQADgYEAwvOxekaXG1dTb9oqedDGoI6iiej8rSySBFbG
+7JezbVlB3MuvbSn28YVDXW/R+TEgeumiT4LxcGWRWzB15uldsTuwb3Tr8a/VBb4g
+tssb19qToEo0qlhJwXyPbSnoytdkBnF0s7EVksSjNF77GJXKHkfq+nUcwB9djTa1
+IXqN41A=
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/keys/demoCA/index.txt b/tests/keys/demoCA/index.txt
new file mode 100644
index 00000000..fd1f6743
--- /dev/null
+++ b/tests/keys/demoCA/index.txt
@@ -0,0 +1,6 @@
+V 150708022901Z D68EB8E091822CF7 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+V 150708022955Z D68EB8E091822CF8 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Second Level RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+V 150708023159Z D68EB8E091822CF9 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level DSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+V 150708023302Z D68EB8E091822CFA unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+V 050711035156Z D68EB8E091822CFB unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Expired RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+V 150709025011Z D68EB8E091822CFC unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Large RSA Key/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
diff --git a/tests/keys/demoCA/newcerts/01.pem b/tests/keys/demoCA/newcerts/01.pem
new file mode 100644
index 00000000..1d52b059
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/01.pem
@@ -0,0 +1,65 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1 (0x1)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=California, L=Sunnyvale, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Feb 2 08:00:59 2002 GMT
+ Not After : Jan 31 08:00:59 2012 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Second Level Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:c8:2e:eb:aa:1c:0a:f2:7f:21:d8:05:b6:87:a7:
+ cb:a3:15:fb:32:94:18:60:47:54:b9:df:8e:b3:e4:
+ 39:cc:f5:e6:7e:8b:60:72:f5:61:93:57:28:17:7e:
+ 26:6e:1f:0b:b7:ad:31:61:71:af:4e:ea:c5:4f:39:
+ c0:6e:15:3a:e7
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 78:D7:2D:91:61:2F:95:22:4A:BB:E1:D5:3D:C6:26:AF:AB:97:D2:04
+ X509v3 Authority Key Identifier:
+ keyid:B4:B9:EF:9A:E6:97:0E:68:65:1E:98:CE:FA:55:0D:89:06:DB:4C:7C
+ DirName:/C=US/ST=California/L=Sunnyvale/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:00
+
+ Signature Algorithm: md5WithRSAEncryption
+ 71:24:77:dd:31:b7:13:3a:95:16:25:d4:2b:58:dc:c7:6d:0b:
+ 72:1c:c4:9d:2d:21:d3:00:b2:21:d7:43:91:86:5b:41:5d:26:
+ 1e:bc:9c:b0:5e:66:33:d8:5e:f4:f3:45:ae:10:3c:5d:1e:e5:
+ 32:b0:bf:04:28:f9:4c:ec:b4:53:26:8a:2a:57:23:38:b7:ad:
+ f9:51:a3:18:b2:6f:b8:4b:40:38:83:da:56:b4:70:34:49:47:
+ ea:f6:ae:a1:8a:1c:e6:57:10:c0:ec:bc:23:d7:de:0e:6d:13:
+ 4c:58:52:0b:4e:b7:d4:47:33:84:d3:14:1b:ba:d3:f0:78:c4:
+ 66:fe
+-----BEGIN CERTIFICATE-----
+MIIEFzCCA4CgAwIBAgIBATANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTE9MDsGA1UE
+ChM0WE1MIFNlY3VyaXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20v
+eG1sc2VjKTEZMBcGA1UECxMQUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxl
+a3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
+DTAyMDIwMjA4MDA1OVoXDTEyMDEzMTA4MDA1OVowgb8xCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFy
+eSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMSEwHwYDVQQLExhTZWNv
+bmQgTGV2ZWwgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
+A0sAMEgCQQDILuuqHAryfyHYBbaHp8ujFfsylBhgR1S5346z5DnM9eZ+i2By9WGT
+VygXfiZuHwu3rTFhca9O6sVPOcBuFTrnAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAA
+MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAd
+BgNVHQ4EFgQUeNctkWEvlSJKu+HVPcYmr6uX0gQwgfgGA1UdIwSB8DCB7YAUtLnv
+muaXDmhlHpjO+lUNiQbbTHyhgdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
+EwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxPTA7BgNVBAoTNFhNTCBT
+ZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykx
+GTAXBgNVBAsTEFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2Fu
+aW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIBADANBgkqhkiG
+9w0BAQQFAAOBgQBxJHfdMbcTOpUWJdQrWNzHbQtyHMSdLSHTALIh10ORhltBXSYe
+vJywXmYz2F7080WuEDxdHuUysL8EKPlM7LRTJooqVyM4t635UaMYsm+4S0A4g9pW
+tHA0SUfq9q6hihzmVxDA7Lwj194ObRNMWFILTrfURzOE0xQbutPweMRm/g==
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/newcerts/02.pem b/tests/keys/demoCA/newcerts/02.pem
new file mode 100644
index 00000000..46c32c64
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/02.pem
@@ -0,0 +1,93 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 2 (0x2)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Second Level Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Feb 2 08:01:27 2002 GMT
+ Not After : Jan 31 08:01:27 2012 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Third Level DSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: dsaEncryption
+ DSA Public Key:
+ pub:
+ 3a:7f:8a:04:91:37:ab:54:d1:84:6f:51:b2:93:57:
+ d3:55:48:e4:2d:15:cd:2c:b8:37:f4:32:0b:86:33:
+ 10:43:68:ab:71:89:90:a1:c8:62:af:a0:ae:af:59:
+ a9:5f:71:83:61:9e:a3:fd:e6:aa:17:5c:10:d3:ad:
+ 61:19:96:11:f3:99:26:3d:7c:a2:e9:03:e9:33:5c:
+ 79:84:59:e0:78:c7:8c:ad:d6:63:7c:0a:d8:e5:7a:
+ 40:e9:72:fa:4d:df:c6:01:10:a4:ff:fb:22:50:a4:
+ 6b:96:08:08:bb:87:5e:b6:ea:8e:7e:5b:d1:77:0a:
+ f4:bd:86:0e:d5:8e:ca:3b
+ P:
+ 00:8a:65:ba:29:80:4f:61:70:1f:ea:2b:52:02:e6:
+ 2c:d5:a2:cf:7e:cf:3f:bc:11:22:ba:cb:ff:a6:5d:
+ 57:32:2b:8c:bc:1e:ef:ca:22:60:4a:3f:3f:35:39:
+ 11:72:2f:d4:5f:fa:d5:5e:ff:2b:6c:24:63:bd:81:
+ 57:df:1e:7f:e7:77:f8:85:ce:87:2b:3e:c9:40:8e:
+ 2a:a8:1e:c5:97:93:7c:eb:3a:7e:06:c4:31:35:0e:
+ 2d:ce:8b:ac:f5:2d:87:4d:dd:bf:cd:d4:f0:56:cb:
+ ce:f8:7f:65:dc:56:a1:99:5a:7f:9b:62:07:13:85:
+ b6:ec:96:28:17:8f:6a:3f:5d
+ Q:
+ 00:bf:fc:73:5a:a8:d1:be:27:a4:93:6a:cc:5b:7c:
+ 29:62:ca:53:f5:4b
+ G:
+ 50:8c:b3:50:39:4b:7b:ab:82:0a:01:78:46:1f:7c:
+ 7e:22:99:be:0e:b8:50:9e:05:33:92:fe:59:b0:92:
+ 32:65:6c:14:dd:3a:7d:3c:31:cb:79:da:3c:f3:82:
+ cf:3a:2e:7e:c1:ef:fc:1b:de:da:0b:eb:0e:f7:74:
+ ef:ca:17:58:92:5f:f4:0e:38:a4:86:67:26:47:63:
+ 12:19:b6:46:c0:c5:a5:73:6a:d2:d3:ca:64:57:23:
+ 56:c7:66:aa:0e:0c:5f:a6:0d:bb:0a:6f:66:e4:f0:
+ 4a:80:c6:e6:ed:50:30:dd:26:98:7f:60:99:b2:13:
+ de:3f:71:e0:c3:be:ec:46
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 47:B5:4E:1A:17:A3:EC:03:C3:38:6C:09:F5:B4:72:E4:4E:B8:84:96
+ X509v3 Authority Key Identifier:
+ keyid:78:D7:2D:91:61:2F:95:22:4A:BB:E1:D5:3D:C6:26:AF:AB:97:D2:04
+ DirName:/C=US/ST=California/L=Sunnyvale/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:01
+
+ Signature Algorithm: md5WithRSAEncryption
+ 7a:ba:53:30:b9:42:d6:d2:51:68:71:ec:ae:5c:48:d3:10:29:
+ a0:cb:82:40:af:fc:09:34:ad:58:4e:11:63:6b:3d:0e:ac:23:
+ 53:96:ca:4d:81:52:2d:7b:07:17:cd:db:11:8f:de:ee:b0:02:
+ bc:45:6a:b2:a3:ba:94:ef:af:44
+-----BEGIN CERTIFICATE-----
+MIIFKTCCBNOgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBvzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxITAfBgNVBAsTGFNl
+Y29uZCBMZXZlbCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTAyMDIwMjA4MDEy
+N1oXDTEyMDEzMTA4MDEyN1owgcIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
+Zm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3
+dy5hbGVrc2V5LmNvbS94bWxzZWMpMSQwIgYDVQQLExtUaGlyZCBMZXZlbCBEU0Eg
+Q2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0B
+CQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCK
+ZbopgE9hcB/qK1IC5izVos9+zz+8ESK6y/+mXVcyK4y8Hu/KImBKPz81ORFyL9Rf
++tVe/ytsJGO9gVffHn/nd/iFzocrPslAjiqoHsWXk3zrOn4GxDE1Di3Oi6z1LYdN
+3b/N1PBWy874f2XcVqGZWn+bYgcThbbsligXj2o/XQIVAL/8c1qo0b4npJNqzFt8
+KWLKU/VLAoGAUIyzUDlLe6uCCgF4Rh98fiKZvg64UJ4FM5L+WbCSMmVsFN06fTwx
+y3naPPOCzzoufsHv/Bve2gvrDvd078oXWJJf9A44pIZnJkdjEhm2RsDFpXNq0tPK
+ZFcjVsdmqg4MX6YNuwpvZuTwSoDG5u1QMN0mmH9gmbIT3j9x4MO+7EYDgYQAAoGA
+On+KBJE3q1TRhG9RspNX01VI5C0VzSy4N/QyC4YzEENoq3GJkKHIYq+grq9ZqV9x
+g2Geo/3mqhdcENOtYRmWEfOZJj18oukD6TNceYRZ4HjHjK3WY3wK2OV6QOly+k3f
+xgEQpP/7IlCka5YICLuHXrbqjn5b0XcK9L2GDtWOyjujggFXMIIBUzAJBgNVHRME
+AjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0
+ZTAdBgNVHQ4EFgQUR7VOGhej7APDOGwJ9bRy5E64hJYwgfgGA1UdIwSB8DCB7YAU
+eNctkWEvlSJKu+HVPcYmr6uX0gShgdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYD
+VQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxGTAXBgNVBAsTEFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkg
+U2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIBATANBgkq
+hkiG9w0BAQQFAANBAHq6UzC5QtbSUWhx7K5cSNMQKaDLgkCv/Ak0rVhOEWNrPQ6s
+I1OWyk2BUi17BxfN2xGP3u6wArxFarKjupTvr0Q=
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/newcerts/03.pem b/tests/keys/demoCA/newcerts/03.pem
new file mode 100644
index 00000000..899304b8
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/03.pem
@@ -0,0 +1,60 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 3 (0x3)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Second Level Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Feb 2 08:01:48 2002 GMT
+ Not After : Jan 31 08:01:48 2012 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Third Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:d0:a7:a5:8b:76:b1:e1:34:c6:1c:a9:22:5d:db:
+ b4:bd:c1:6e:b1:1d:1c:04:50:92:92:09:84:39:e9:
+ ab:a0:d2:7f:b8:b1:ae:3d:da:5f:25:5a:3d:6b:62:
+ fa:e6:b1:db:55:df:b5:02:b4:95:aa:39:2c:28:6e:
+ 3f:67:a7:2b:17
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ A4:18:1D:13:D5:8C:32:84:0C:9D:D1:B8:88:34:FD:5C:37:D9:FA:48
+ X509v3 Authority Key Identifier:
+ keyid:78:D7:2D:91:61:2F:95:22:4A:BB:E1:D5:3D:C6:26:AF:AB:97:D2:04
+ DirName:/C=US/ST=California/L=Sunnyvale/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:01
+
+ Signature Algorithm: md5WithRSAEncryption
+ 2f:3f:38:6c:2b:1a:18:40:4e:54:4b:0a:63:8b:1c:79:7c:a3:
+ e2:76:50:03:e7:a6:79:9c:f3:eb:5c:ec:61:a3:bb:2d:4b:f8:
+ 74:33:c7:77:f6:e3:60:e0:b9:d1:07:d6:2e:f5:13:46:ae:2e:
+ 0d:7e:8a:47:33:1c:f6:dd:8f:4f
+-----BEGIN CERTIFICATE-----
+MIIDzTCCA3egAwIBAgIBAzANBgkqhkiG9w0BAQQFADCBvzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxITAfBgNVBAsTGFNl
+Y29uZCBMZXZlbCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTAyMDIwMjA4MDE0
+OFoXDTEyMDEzMTA4MDE0OFowgcIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
+Zm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3
+dy5hbGVrc2V5LmNvbS94bWxzZWMpMSQwIgYDVQQLExtUaGlyZCBMZXZlbCBSU0Eg
+Q2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0B
+CQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDQ
+p6WLdrHhNMYcqSJd27S9wW6xHRwEUJKSCYQ56aug0n+4sa492l8lWj1rYvrmsdtV
+37UCtJWqOSwobj9npysXAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAAMCwGCWCGSAGG
++EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
+pBgdE9WMMoQMndG4iDT9XDfZ+kgwgfgGA1UdIwSB8DCB7YAUeNctkWEvlSJKu+HV
+PcYmr6uX0gShgdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9y
+bmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxGTAXBgNVBAsT
+EFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkq
+hkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIBATANBgkqhkiG9w0BAQQFAANB
+AC8/OGwrGhhATlRLCmOLHHl8o+J2UAPnpnmc8+tc7GGjuy1L+HQzx3f242DgudEH
+1i71E0auLg1+ikczHPbdj08=
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/newcerts/04.pem b/tests/keys/demoCA/newcerts/04.pem
new file mode 100644
index 00000000..8987ac2c
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/04.pem
@@ -0,0 +1,60 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 4 (0x4)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Second Level Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Feb 2 08:03:01 2002 GMT
+ Not After : May 3 08:03:01 2002 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Expired Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:c0:20:e3:2b:9b:34:1e:1c:78:cc:a6:ab:20:a5:
+ 6c:4b:8f:05:60:3d:1e:b9:00:bb:8a:27:d8:46:d5:
+ 9e:b7:c1:ab:b2:f8:e6:52:64:19:54:36:44:4b:3d:
+ 68:08:7e:7d:2f:6f:88:4c:41:50:2f:90:8c:35:7f:
+ 25:d8:e7:47:a1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ AF:B7:A6:58:73:1D:AA:14:33:37:7D:38:CE:D7:AA:00:68:26:39:61
+ X509v3 Authority Key Identifier:
+ keyid:78:D7:2D:91:61:2F:95:22:4A:BB:E1:D5:3D:C6:26:AF:AB:97:D2:04
+ DirName:/C=US/ST=California/L=Sunnyvale/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:01
+
+ Signature Algorithm: md5WithRSAEncryption
+ 17:42:07:f0:8d:90:14:c3:28:19:ec:07:4c:e0:33:54:69:c0:
+ 6c:07:84:c3:2f:cb:0a:1f:44:b6:15:8a:13:8c:3b:f4:3d:d3:
+ dc:aa:d2:14:b5:9c:04:75:57:a9:7e:46:a3:70:00:3d:ee:46:
+ 1f:11:79:da:34:08:00:68:bf:31
+-----BEGIN CERTIFICATE-----
+MIIDxTCCA2+gAwIBAgIBBDANBgkqhkiG9w0BAQQFADCBvzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxITAfBgNVBAsTGFNl
+Y29uZCBMZXZlbCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEh
+MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTAyMDIwMjA4MDMw
+MVoXDTAyMDUwMzA4MDMwMVowgboxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
+Zm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3
+dy5hbGVrc2V5LmNvbS94bWxzZWMpMRwwGgYDVQQLExNFeHBpcmVkIENlcnRpZmlj
+YXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxz
+ZWNAYWxla3NleS5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAwCDjK5s0Hhx4
+zKarIKVsS48FYD0euQC7iifYRtWet8GrsvjmUmQZVDZESz1oCH59L2+ITEFQL5CM
+NX8l2OdHoQIDAQABo4IBVzCCAVMwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYd
+T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFK+3plhzHaoU
+Mzd9OM7XqgBoJjlhMIH4BgNVHSMEgfAwge2AFHjXLZFhL5UiSrvh1T3GJq+rl9IE
+oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAG
+A1UEBxMJU3Vubnl2YWxlMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAo
+aHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRkwFwYDVQQLExBSb290IENl
+cnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkB
+FhJ4bWxzZWNAYWxla3NleS5jb22CAQEwDQYJKoZIhvcNAQEEBQADQQAXQgfwjZAU
+wygZ7AdM4DNUacBsB4TDL8sKH0S2FYoTjDv0PdPcqtIUtZwEdVepfkajcAA97kYf
+EXnaNAgAaL8x
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/newcerts/05.pem b/tests/keys/demoCA/newcerts/05.pem
new file mode 100644
index 00000000..02489a43
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/05.pem
@@ -0,0 +1,83 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 5 (0x5)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=California, L=Sunnyvale, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Root Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Mar 31 04:02:22 2003 GMT
+ Not After : Mar 28 04:02:22 2013 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Examples RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (2048 bit)
+ Modulus (2048 bit):
+ 00:97:b8:fe:b4:3f:83:35:78:16:89:04:ec:2b:61:
+ 8c:bf:c4:5f:00:81:4a:45:e6:d9:cd:e9:e2:3c:97:
+ 3b:45:ad:aa:e6:8d:0b:77:71:07:01:4f:7c:f9:7d:
+ e2:19:aa:dd:91:59:f4:f1:cf:3d:ba:78:46:96:11:
+ 9c:b6:5b:46:39:73:55:23:aa:f7:9e:00:5c:e5:e9:
+ 49:ec:3b:9c:3f:84:99:3a:90:ad:df:7e:64:86:c6:
+ 26:72:ce:31:08:79:7e:13:15:b8:e5:bf:d6:56:02:
+ 8d:60:21:4c:27:18:64:fb:fb:55:70:f6:33:bd:2f:
+ 55:70:d5:5e:7e:99:ae:a4:e0:aa:45:47:13:a8:30:
+ d5:a0:8a:9d:cc:20:ec:e4:8e:51:c9:54:c5:7f:3e:
+ 66:2d:74:bf:a3:7a:f8:f3:ec:94:57:39:b4:ac:00:
+ 75:62:61:54:b4:d0:e0:52:86:f8:5e:77:ec:50:43:
+ 9c:d2:ba:a7:8c:62:5a:bc:b2:fe:f3:cc:62:7e:23:
+ 60:6b:c7:51:49:37:78:7e:25:15:30:ab:fa:b4:ae:
+ 25:8f:22:fc:a3:48:7f:f2:0a:8a:6e:e0:fe:8d:f0:
+ 01:ed:c6:33:cc:6b:a1:fd:a6:80:ef:06:8c:af:f6:
+ 40:3a:8e:42:14:20:61:12:1f:e3:fc:05:b1:05:d5:
+ 65:c3
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 24:84:2C:F2:D4:59:20:62:8B:2E:5C:86:90:A3:AA:30:BA:27:1A:9C
+ X509v3 Authority Key Identifier:
+ keyid:B4:B9:EF:9A:E6:97:0E:68:65:1E:98:CE:FA:55:0D:89:06:DB:4C:7C
+ DirName:/C=US/ST=California/L=Sunnyvale/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:00
+
+ Signature Algorithm: md5WithRSAEncryption
+ b5:3f:9b:32:31:4a:ff:2f:84:3b:a8:9b:11:5c:a6:5c:f0:76:
+ 52:d9:6e:f4:90:ad:fa:0d:90:c1:98:d5:4a:12:dd:82:6b:37:
+ e8:d9:2d:62:92:c9:61:37:98:86:8f:a4:49:6a:5e:25:d0:18:
+ 69:30:0f:98:8f:43:58:89:31:b2:3b:05:e2:ef:c7:a6:71:5f:
+ f7:fe:73:c5:a7:b2:cd:2e:73:53:71:7d:a8:4c:68:1a:32:1b:
+ 5e:48:2f:8f:9b:7a:a3:b5:f3:67:e8:b1:a2:89:4e:b2:4d:1b:
+ 79:9c:ff:f0:0d:19:4f:4e:b1:03:3d:99:f0:44:b7:8a:0b:34:
+ 9d:83
+-----BEGIN CERTIFICATE-----
+MIIE3zCCBEigAwIBAgIBBTANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTE9MDsGA1UE
+ChM0WE1MIFNlY3VyaXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20v
+eG1sc2VjKTEZMBcGA1UECxMQUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxl
+a3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
+DTAzMDMzMTA0MDIyMloXDTEzMDMyODA0MDIyMlowgb8xCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFy
+eSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMSEwHwYDVQQLExhFeGFt
+cGxlcyBSU0EgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAJe4/rQ/gzV4FokE7CthjL/EXwCBSkXm2c3p4jyXO0Wt
+quaNC3dxBwFPfPl94hmq3ZFZ9PHPPbp4RpYRnLZbRjlzVSOq954AXOXpSew7nD+E
+mTqQrd9+ZIbGJnLOMQh5fhMVuOW/1lYCjWAhTCcYZPv7VXD2M70vVXDVXn6ZrqTg
+qkVHE6gw1aCKncwg7OSOUclUxX8+Zi10v6N6+PPslFc5tKwAdWJhVLTQ4FKG+F53
+7FBDnNK6p4xiWryy/vPMYn4jYGvHUUk3eH4lFTCr+rSuJY8i/KNIf/IKim7g/o3w
+Ae3GM8xrof2mgO8GjK/2QDqOQhQgYRIf4/wFsQXVZcMCAwEAAaOCAVcwggFTMAkG
+A1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRp
+ZmljYXRlMB0GA1UdDgQWBBQkhCzy1FkgYosuXIaQo6owuicanDCB+AYDVR0jBIHw
+MIHtgBS0ue+a5pcOaGUemM76VQ2JBttMfKGB0aSBzjCByzELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTE9MDsGA1UE
+ChM0WE1MIFNlY3VyaXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20v
+eG1sc2VjKTEZMBcGA1UECxMQUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMNQWxl
+a3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggEA
+MA0GCSqGSIb3DQEBBAUAA4GBALU/mzIxSv8vhDuomxFcplzwdlLZbvSQrfoNkMGY
+1UoS3YJrN+jZLWKSyWE3mIaPpElqXiXQGGkwD5iPQ1iJMbI7BeLvx6ZxX/f+c8Wn
+ss0uc1NxfahMaBoyG15IL4+beqO182fosaKJTrJNG3mc//ANGU9OsQM9mfBEt4oL
+NJ2D
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/private/cakey.pem b/tests/keys/demoCA/private/cakey.pem
new file mode 100644
index 00000000..0270e59c
--- /dev/null
+++ b/tests/keys/demoCA/private/cakey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,77F426A47A174623
+
+FH1NdgJgrX1OGKM0WfzwRUWmLTmfawdaUPeFNJbz1+40J5DEt1DmC6o0QkXoxIPC
+Te/+FS80gNruYgYIWu4WXftCSdvSfGI8LP1JZ7hmMCl055J2mLVKT4o6HqAQnHrb
+hTATVG6CB/GdHTFPG3J65qIyTlG50jyzfwZtliMCCAwi+AaAlo5xzUe0DgedytB2
+sFkLq5EiD6066P/LXPH/Z5SJKiMCFOl0Gjwd3M9ohZufnEJPJT5ap2fm7OSJSfa6
+jPREY+UwhPyKkYOc2c8gojj6HrsSQlXPl176b1+31c19hhhRAtDfJBIU2OrOFVk/
+V88/Dm0I+ROyLme0rYfFg8uHz2aIymzEMds5ZKEFTFbBhaWbVYKIX7+82tftnd+P
+2kT15JAK9V27F0p4SRiQ5RsDkT3rBWsZjtk9Rptkrgec9aKoTaO2fT8bPaWFR/M1
+6X7kjMqhLw1sHmsSeDKx0YCWfS+gWh7RPjGQ2EfH2pxoZkUAR5R3cZCEn3Ia1BeV
+UTFWy+DwjEeSrNkO96E0pH1r8204cJAKK8cWS4HSAPMsQPf5cZjIrrAak/9Wupkq
+fnrB0Ae6GFO2gHYQfbSL+KdEq6w5+S6XZyTauVyaJAjjIFDmegfaKWHzNvqCWJ4T
+YPsiptUrKz6DYyhiUrNJQKcyGWHWrwMNIbldqSBNCa8OIVoaZiRibgO1SIafAGAS
+9MDXXVaY6rqx1yfZYDc9VgKGXTJhBXALCeGMYF43bvAmPq3M13QJA0rlO7lAUUF2
+5INqBUeJxZrYxn6tRr9EMty/UcYnPR3YHgt0RDZycvbcqPsU5tHk9Q==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/keys/demoCA/serial b/tests/keys/demoCA/serial
new file mode 100644
index 00000000..fcb2a009
--- /dev/null
+++ b/tests/keys/demoCA/serial
@@ -0,0 +1 @@
+D68EB8E091822CFD
diff --git a/tests/keys/dsacert.der b/tests/keys/dsacert.der
new file mode 100644
index 00000000..fb063bec
--- /dev/null
+++ b/tests/keys/dsacert.der
Binary files differ
diff --git a/tests/keys/dsacert.pem b/tests/keys/dsacert.pem
new file mode 100644
index 00000000..0119b658
--- /dev/null
+++ b/tests/keys/dsacert.pem
@@ -0,0 +1,78 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:f9
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Second Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 10 02:31:59 2005 GMT
+ Not After : Jul 8 02:31:59 2015 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Third Level DSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: dsaEncryption
+ DSA Public Key:
+ pub:
+ 3a:27:48:30:c9:93:75:5a:21:f7:55:1c:f9:ce:8a:
+ d4:6a:57:95:cf:15:f3:03:92:c3:5b:d1:67:a5:9d:
+ 97:65:fe:aa:24:97:d7:9a:53:ef:2e:88:7e:cb:b6:
+ c5:34:41:85:fd:94:4f:24:4e:99:5c:51:d0:f4:6f:
+ 18:c3:60:9d
+ P:
+ 00:c8:31:fc:3a:3f:bf:45:73:0d:21:af:16:0a:ab:
+ 77:8f:87:bc:26:7a:f7:3d:e5:48:df:17:62:47:40:
+ 90:57:25:bf:57:14:16:b9:2d:1c:bb:d6:5c:e1:fc:
+ e6:0c:1f:8a:21:e2:08:a2:15:54:55:04:25:bd:1e:
+ 96:6a:39:33:49
+ Q:
+ 00:94:43:ab:9a:a8:c9:1b:7b:5f:8d:4e:3d:5e:32:
+ 6e:33:70:17:36:c9
+ G:
+ 05:33:c3:39:9b:a7:9d:db:67:e6:f3:0d:c3:94:e9:
+ 41:a1:dc:88:3f:4c:57:4b:19:76:1e:be:cd:ed:89:
+ 96:85:2d:af:ff:11:81:7e:97:94:dd:b2:bd:cd:42:
+ 91:91:45:fe:1a:ad:7b:d7:3d:9c:88:26:16:18:1c:
+ 95:64:ec:e3
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ A5:58:9F:29:70:2D:1A:42:47:44:03:DA:AE:67:A7:BA:F7:29:65:3E
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F8
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 24:1f:4a:73:8f:d9:d2:14:f0:88:36:11:e5:f5:d5:3f:2c:c0:
+ 8c:3f:81:78:28:51:17:5e:33:b5:69:75:3a:5e:91:11:61:51:
+ 6c:81:9f:13:3d:d7:0e:00:87:0a:2a:1c:33:c1:31:5e:2e:f3:
+ 9f:6e:91:d3:bd:9c:74:1c:fb:fb
+-----BEGIN CERTIFICATE-----
+MIIEdDCCBB6gAwIBAgIJANaOuOCRgiz5MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMTU5WhcNMTUwNzA4MDIzMTU5WjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgRFNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wgfAw
+gagGByqGSM44BAEwgZwCQQDIMfw6P79Fcw0hrxYKq3ePh7wmevc95UjfF2JHQJBX
+Jb9XFBa5LRy71lzh/OYMH4oh4giiFVRVBCW9HpZqOTNJAhUAlEOrmqjJG3tfjU49
+XjJuM3AXNskCQAUzwzmbp53bZ+bzDcOU6UGh3Ig/TFdLGXYevs3tiZaFLa//EYF+
+l5Tdsr3NQpGRRf4arXvXPZyIJhYYHJVk7OMDQwACQDonSDDJk3VaIfdVHPnOitRq
+V5XPFfMDksNb0WelnZdl/qokl9eaU+8uiH7LtsU0QYX9lE8kTplcUdD0bxjDYJ2j
+ggFTMIIBTzAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdl
+bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpVifKXAtGkJHRAParmenuvcp
+ZT4wgfEGA1UdIwSB6TCB5oAU/uTsUyTwlZXHELXhRLVdOWVa436hgcKkgb8wgbwx
+CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwg
+U2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMp
+MR4wHAYDVQQLExVUZXN0IFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJANaO
+uOCRgiz4MA0GCSqGSIb3DQEBBQUAA0EAJB9Kc4/Z0hTwiDYR5fXVPyzAjD+BeChR
+F14ztWl1Ol6REWFRbIGfEz3XDgCHCiocM8ExXi7zn26R072cdBz7+w==
+-----END CERTIFICATE-----
diff --git a/tests/keys/dsakey.der b/tests/keys/dsakey.der
new file mode 100644
index 00000000..a056304c
--- /dev/null
+++ b/tests/keys/dsakey.der
Binary files differ
diff --git a/tests/keys/dsakey.p12 b/tests/keys/dsakey.p12
new file mode 100644
index 00000000..2ca3659d
--- /dev/null
+++ b/tests/keys/dsakey.p12
Binary files differ
diff --git a/tests/keys/dsakey.p8-der b/tests/keys/dsakey.p8-der
new file mode 100644
index 00000000..2a00d2a2
--- /dev/null
+++ b/tests/keys/dsakey.p8-der
Binary files differ
diff --git a/tests/keys/dsakey.p8-pem b/tests/keys/dsakey.p8-pem
new file mode 100644
index 00000000..cd0e5ec2
--- /dev/null
+++ b/tests/keys/dsakey.p8-pem
@@ -0,0 +1,8 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIHwMBsGCSqGSIb3DQEFAzAOBAgRtaP0qtejsQICCAAEgdBZeMkYVwHBSOuUj5p8
+hNEswZwOAT+yY063ziixN/rCwXJMvnmWRvHGXBoSJ2FNtXjhZrl8W3Vk7SZBCGyw
+Brez9jVTm9iZr9UcTP/e3RZo4yzLBy9iE+qJg86mGkJw+HSHaGReHtq2NV+CcnC9
+jWiBGb9WHTy/NJNpK/ne7UOamVVPYLDAoRIdZvSo8bV3NDp0Oui7flRxV+OJBsti
+NQZYJskY0O74jOjvvaBdih/NIWDHKED1EtnxuKrMSOQtq57zSwdVQ6nS1hedJzms
+AzZ1
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/keys/dsakey.pem b/tests/keys/dsakey.pem
new file mode 100644
index 00000000..8fdd52a9
--- /dev/null
+++ b/tests/keys/dsakey.pem
@@ -0,0 +1,14 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAyDH8Oj+/RXMNIa8WCqt3j4e8Jnr3PeVI3xdiR0CQVyW/VxQWuS0cu9Zc
+4fzmDB+KIeIIohVUVQQlvR6WajkzSQIVAJRDq5qoyRt7X41OPV4ybjNwFzbJAkAF
+M8M5m6ed22fm8w3DlOlBodyIP0xXSxl2Hr7N7YmWhS2v/xGBfpeU3bK9zUKRkUX+
+Gq171z2ciCYWGByVZOzj
+-----END DSA PARAMETERS-----
+-----BEGIN DSA PRIVATE KEY-----
+MIH3AgEAAkEAyDH8Oj+/RXMNIa8WCqt3j4e8Jnr3PeVI3xdiR0CQVyW/VxQWuS0c
+u9Zc4fzmDB+KIeIIohVUVQQlvR6WajkzSQIVAJRDq5qoyRt7X41OPV4ybjNwFzbJ
+AkAFM8M5m6ed22fm8w3DlOlBodyIP0xXSxl2Hr7N7YmWhS2v/xGBfpeU3bK9zUKR
+kUX+Gq171z2ciCYWGByVZOzjAkA6J0gwyZN1WiH3VRz5zorUaleVzxXzA5LDW9Fn
+pZ2XZf6qJJfXmlPvLoh+y7bFNEGF/ZRPJE6ZXFHQ9G8Yw2CdAhQDAKSQn+F+aV8C
+BUJ9PVUDOVc8rw==
+-----END DSA PRIVATE KEY-----
diff --git a/tests/keys/expiredcert.der b/tests/keys/expiredcert.der
new file mode 100644
index 00000000..aefc5ea0
--- /dev/null
+++ b/tests/keys/expiredcert.der
Binary files differ
diff --git a/tests/keys/expiredcert.pem b/tests/keys/expiredcert.pem
new file mode 100644
index 00000000..f5581ca2
--- /dev/null
+++ b/tests/keys/expiredcert.pem
@@ -0,0 +1,61 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:fb
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Second Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 10 03:51:56 2005 GMT
+ Not After : Jul 11 03:51:56 2005 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Expired RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:c9:52:65:60:40:40:66:30:bf:34:3e:f4:7c:cc:
+ 8c:06:93:20:e2:13:96:e8:11:64:78:a4:69:9a:19:
+ 43:87:6d:19:c5:42:4b:76:9a:df:b8:fd:07:98:b6:
+ 6e:c6:45:54:54:7b:a6:09:8a:05:28:bd:4d:6e:dc:
+ 34:03:88:e8:f3
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ F9:FA:89:12:34:4A:3B:59:06:DF:2E:17:F2:C0:8F:B2:26:07:78:C9
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F8
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 98:b4:e9:2f:8a:2a:8b:e5:63:ac:b2:12:61:8c:58:e4:57:c0:
+ a8:00:98:00:ea:48:6c:87:56:33:64:2d:8e:8c:c1:75:0c:45:
+ 55:22:b6:44:79:f6:cf:55:b6:81:6c:bb:37:c5:50:99:fa:e0:
+ 80:de:f7:2c:82:8e:5e:ea:15:e4
+-----BEGIN CERTIFICATE-----
+MIID2zCCA4WgAwIBAgIJANaOuOCRgiz7MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDM1MTU2WhcNMDUwNzExMDM1MTU2WjCBwzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxJTAjBgNVBAsT
+HFRlc3QgRXhwaXJlZCBSU0EgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkg
+U2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQDJUmVgQEBmML80PvR8zIwGkyDiE5boEWR4pGmaGUOH
+bRnFQkt2mt+4/QeYtm7GRVRUe6YJigUovU1u3DQDiOjzAgMBAAGjggFTMIIBTzAM
+BgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
+ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU+fqJEjRKO1kG3y4X8sCPsiYHeMkwgfEGA1Ud
+IwSB6TCB5oAU/uTsUyTwlZXHELXhRLVdOWVa436hgcKkgb8wgbwxCzAJBgNVBAYT
+AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkg
+TGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMR4wHAYDVQQL
+ExVUZXN0IFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4x
+ITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJANaOuOCRgiz4MA0G
+CSqGSIb3DQEBBQUAA0EAmLTpL4oqi+VjrLISYYxY5FfAqACYAOpIbIdWM2QtjozB
+dQxFVSK2RHn2z1W2gWy7N8VQmfrggN73LIKOXuoV5A==
+-----END CERTIFICATE-----
diff --git a/tests/keys/expiredkey.der b/tests/keys/expiredkey.der
new file mode 100644
index 00000000..316e41bd
--- /dev/null
+++ b/tests/keys/expiredkey.der
Binary files differ
diff --git a/tests/keys/expiredkey.p12 b/tests/keys/expiredkey.p12
new file mode 100644
index 00000000..4604e11b
--- /dev/null
+++ b/tests/keys/expiredkey.p12
Binary files differ
diff --git a/tests/keys/expiredkey.pem b/tests/keys/expiredkey.pem
new file mode 100644
index 00000000..13344549
--- /dev/null
+++ b/tests/keys/expiredkey.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAMlSZWBAQGYwvzQ+9HzMjAaTIOITlugRZHikaZoZQ4dtGcVCS3aa
+37j9B5i2bsZFVFR7pgmKBSi9TW7cNAOI6PMCAwEAAQJALeTWr2Z2R9V9ARAI9Bo9
+IZKQwHjuweCVItt4J2Ty+///KhuEnHhYJC40sH4QrpufuATLXJCzUaFHNPIAAY2G
+wQIhAPc3NqqCKzaTakzy9OZWW1d2ZZpiy6OMG1NBOGXrNq6bAiEA0Hm2HJpJ4l6P
+FN6ZAVTnV+VXt98DvyFRSlU8XFMr6IkCIDn/Mwz3csnf9a1NxlSPZ+hx904r5Vhe
+Ez8J6wBGGVMHAiAGtXP71ac9Bqf6FvO7jDzpojLBcwbO1saj6rxHiFGoaQIgFxuV
+W/NisfilEN3POFcTeuWob3qf4CSl/3/bQH6tUFU=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/keys/expiredreq.pem b/tests/keys/expiredreq.pem
new file mode 100644
index 00000000..3fcfbd29
--- /dev/null
+++ b/tests/keys/expiredreq.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBkzCCAT0CAQAwgdcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRIwEAYDVQQHEwlTdW5ueXZhbGUxPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxJTAjBgNVBAsTHFRl
+c3QgRXhwaXJlZCBSU0EgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2Fu
+aW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3
+DQEBAQUAA0sAMEgCQQDJUmVgQEBmML80PvR8zIwGkyDiE5boEWR4pGmaGUOHbRnF
+Qkt2mt+4/QeYtm7GRVRUe6YJigUovU1u3DQDiOjzAgMBAAGgADANBgkqhkiG9w0B
+AQQFAANBAMQmO+O1QV1h3x/NcwY9v9xSp1xmhnbdTYQXl2jRa75epxxSKwT8rzj5
+zlopg6hyt8mBTiMlXfUGfUDzccdfYG0=
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/keys/gost2001ca.der b/tests/keys/gost2001ca.der
new file mode 100644
index 00000000..b48d01ab
--- /dev/null
+++ b/tests/keys/gost2001ca.der
Binary files differ
diff --git a/tests/keys/gost2001ca.pem b/tests/keys/gost2001ca.pem
new file mode 100644
index 00000000..9bc47e1c
--- /dev/null
+++ b/tests/keys/gost2001ca.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCzCCAbgCAQEwCgYGKoUDAgIDBQAwgY8xCzAJBgNVBAYTAlJVMQ8wDQYDVQQH
+EwZNb3Njb3cxIzAhBgNVBAMTGkdPU1QyMDAxIENyeXB0b1BybyBUZXN0IENBMRIw
+EAYDVQQKEwlDcnlwdG9jb20xEzARBgNVBAsTCk9wZW5TU0wgQ0ExITAfBgkqhkiG
+9w0BCQEWEnZpdHVzQGNyeXB0b2NvbS5ydTAeFw0wNTA2MDMxNTA3MjhaFw0xNTA2
+MDMxNTA3MjhaMIGPMQswCQYDVQQGEwJSVTEPMA0GA1UEBxMGTW9zY293MSMwIQYD
+VQQDExpHT1NUMjAwMSBDcnlwdG9Qcm8gVGVzdCBDQTESMBAGA1UEChMJQ3J5cHRv
+Y29tMRMwEQYDVQQLEwpPcGVuU1NMIENBMSEwHwYJKoZIhvcNAQkBFhJ2aXR1c0Bj
+cnlwdG9jb20ucnUwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYHKoUDAgIeAQNDAARA
+gLdWGphDAny4aHnGbd5sVUaIFLJ0W7bEHiP3TQikVe76L+l/yIBI4BU1YmyOCQnX
+DROKczl5PBGHOPl5J3D7ZjAKBgYqhQMCAgMFAANBANS0ZNrxY7IH6UHHBGdAqkzq
+yMqz7W2v44VaioXKhSHQlgl9x9pwC4t0oirghLKXgMERcE0HJ0zHWKO9g3pqLhc=
+-----END CERTIFICATE-----
diff --git a/tests/keys/hmackey.bin b/tests/keys/hmackey.bin
new file mode 100644
index 00000000..536aca34
--- /dev/null
+++ b/tests/keys/hmackey.bin
@@ -0,0 +1 @@
+secret \ No newline at end of file
diff --git a/tests/keys/keys.xml b/tests/keys/keys.xml
new file mode 100644
index 00000000..cead991a
--- /dev/null
+++ b/tests/keys/keys.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<Keys xmlns="http://www.aleksey.com/xmlsec/2002">
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-hmac-sha1</KeyName>
+<KeyValue>
+<HMACKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">c2VjcmV0</HMACKeyValue>
+</KeyValue>
+</KeyInfo>
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-dsa</KeyName>
+<KeyValue>
+<DSAKeyValue>
+<P>
+4jl6DkcmDDBt815kg/WbxW1gnLtqH+kdjqEeFDD9m6EqGqvVhFbbvNNQqAwuaiJU
+nWlR8gG47GtHKFN6w8CM1qteIo3foK504otZFNsl1p3cInQpdRCp2e/lQ+E24J/H
+/n4Ix9pBNV63JIiSIqa+GpDuBpW4o3rrBRxTjOwYpWk=
+</P>
+<Q>
+9WQwByMPy0u1C8e2SeNQTvkG6tM=
+</Q>
+<G>
+Rrg7e8pNLHMFK0pGW7xvzb7Kh6icJSsiBaX6aHqaQc9rSzzMJG3snBuQricNaUH5
+8ipucT+hdPRTo6g0ty5noyyBmqUvYHf9NuskQhPDmC3uTtqQTHeCEuX8XoH3YYlB
+uE4nXvQRGZoyy+43ISe9aDnEAgIUVQXEayTVppRF24I=
+</G>
+<X xmlns="http://www.aleksey.com/xmlsec/2002">
+S3Gt9BE+wZb996U6h4nSNtYxEmE=
+</X>
+<Y>
+WT0+1bR+bj65u5iDJ0MRc6/8iEAbvj7l5sAVn/H+SdZy94wW5mnSLCC5ufN33QPp
+WNvgVk2igM+W51WlhFDgA8Xz9lRPk19jW8BXQpqv11MKoIBpaSAWvnhs/0AKubiT
+XxJz7i78ZJy4hVTn99Rvt6Tc16/LICZfsqIJr+VK4Sg=
+</Y>
+</DSAKeyValue>
+</KeyValue>
+</KeyInfo>
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-rsa</KeyName>
+<KeyValue>
+<RSAKeyValue>
+<Modulus>
+0rGgazIyv0XjPXGGBwt1wvfCPO++VAlxW15LFinbxCeBkq/5jb/71gC7R2CJtUK4
+y/tIi7g89YBwQosJpgMMZt69fz51omEv/WobD0vUFcbRxek+Yi23ZHxhZMtO42Re
+zfpwgC4ep0fXL+V105BUmjGFYACnUJdtMkG8ahH8/Zs=
+</Modulus>
+<Exponent>
+Aw==
+</Exponent>
+<PrivateExponent xmlns="http://www.aleksey.com/xmlsec/2002">
+jHZq8iF3Ki6Xfkuur1z5LKUsKJ/UOAZLkj7cuXE9LW+rtx/7s9VSjqsnhOsGeNcl
+3VIwXSV9+QBK1wdbxAIIQ16+yWXNY+21K94h4C6ssx44lqgODL25OXDsE92EZFu0
+1gApBhqOUxV1gUXDqMnHqSWbk7/1kwX6RzsioRu0UKs=
+</PrivateExponent>
+</RSAKeyValue>
+</KeyValue>
+</KeyInfo>
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-des</KeyName>
+<KeyValue>
+<DESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+zBFljViy/Qhd8AG0vGxf+SekrJ1ttpIz
+</DESKeyValue>
+</KeyValue>
+</KeyInfo>
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-aes128</KeyName>
+<KeyValue>
+<AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">0Xfy3ES+Fbv/OfWuQHKvPA==</AESKeyValue>
+</KeyValue>
+</KeyInfo>
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-aes192</KeyName>
+<KeyValue>
+<AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">lk9DyA07xL/m45fUb7zbLoy3c0hLhw80</AESKeyValue>
+</KeyValue>
+</KeyInfo>
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+<KeyName>test-aes256</KeyName>
+<KeyValue>
+<AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">fpCPQLCMZCw9WipH8kk1J75CqYgWBhbJDMFPiUS0hzE=</AESKeyValue>
+</KeyValue>
+</KeyInfo>
+</Keys>
diff --git a/tests/keys/largersacert.der b/tests/keys/largersacert.der
new file mode 100644
index 00000000..93464522
--- /dev/null
+++ b/tests/keys/largersacert.der
Binary files differ
diff --git a/tests/keys/largersacert.pem b/tests/keys/largersacert.pem
new file mode 100644
index 00000000..7c1a4e05
--- /dev/null
+++ b/tests/keys/largersacert.pem
@@ -0,0 +1,100 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:fc
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Second Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 11 02:50:11 2005 GMT
+ Not After : Jul 9 02:50:11 2015 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Large RSA Key, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (4096 bit)
+ Modulus (4096 bit):
+ 00:f3:61:f9:36:54:ae:5d:17:68:1b:18:28:24:72:
+ 4e:39:5d:bf:20:17:c8:7c:20:59:fb:a3:42:e4:2c:
+ b7:0d:6d:97:7e:e1:9b:ba:59:c3:e7:e8:64:ff:76:
+ 35:58:e0:90:fa:2b:13:92:5f:ba:b7:7f:54:25:6e:
+ ce:cd:1b:a3:78:92:34:31:7f:9d:dc:80:61:3c:72:
+ 69:6d:b8:35:a8:f8:1f:03:6c:e5:d7:41:53:24:84:
+ 8a:72:70:3c:e2:39:8b:ec:70:9d:d3:cf:2e:08:f6:
+ 05:80:af:36:8f:ed:8e:ef:df:50:33:94:58:15:8f:
+ 87:c4:b4:65:3d:a1:d1:23:00:6a:67:35:60:06:58:
+ bd:43:8a:86:52:29:f4:a1:e1:5f:7f:59:6e:ca:4a:
+ 78:16:9d:da:04:d9:61:d4:a3:ea:69:72:7f:1b:aa:
+ ff:c8:07:51:13:50:c1:3e:7d:9b:f7:70:dc:ba:5d:
+ 94:a9:2b:ac:ea:56:e0:3c:7f:5d:91:ef:bd:82:25:
+ f2:37:eb:2c:d9:ad:b7:dd:3e:bc:86:7a:af:89:8f:
+ f9:32:5e:9c:d0:41:0c:8c:b7:84:5e:29:e9:4f:fc:
+ b5:5c:f4:f9:82:32:b9:35:ed:84:0a:32:23:32:b5:
+ a4:b1:c8:c5:a0:16:b5:77:8d:21:8f:53:80:c4:a1:
+ a4:65:ee:af:0a:84:1d:34:30:e3:07:35:ce:16:8e:
+ 69:7b:b7:21:91:56:26:c2:d7:3f:79:0e:e0:b2:77:
+ a5:ca:60:88:15:30:8f:65:aa:8f:9d:9f:d0:50:3d:
+ 2a:9b:4f:61:ca:43:19:b9:69:58:1b:98:77:43:42:
+ 1e:08:7c:30:58:52:d4:b3:eb:d1:a2:9e:28:dd:1b:
+ 96:fd:f9:28:fd:76:d8:ec:91:21:d1:8d:42:4c:f5:
+ 05:70:2e:d2:bb:9a:c5:c8:e1:77:5d:4e:5f:c2:ab:
+ 9f:c0:75:51:11:6e:ea:6b:0e:d4:bc:93:de:a4:95:
+ e3:d2:52:57:ac:74:c5:a6:e5:a2:94:3f:d8:43:0e:
+ 42:8c:75:ad:0c:69:d1:a8:8e:e7:49:77:2b:38:af:
+ c9:ac:43:77:27:90:82:1d:62:e6:31:a0:1b:17:be:
+ 7e:63:2c:29:ec:1b:3d:4b:52:39:ec:7a:2a:fc:48:
+ 2f:bd:ce:d9:1f:21:02:fb:2c:6e:d9:40:14:c5:6a:
+ ce:20:bc:0c:e4:ae:87:35:d2:da:5f:db:95:50:f3:
+ e3:ed:2c:93:ad:42:5b:af:65:fe:f8:4b:0a:dc:60:
+ 7f:dd:48:38:88:d0:fc:a4:aa:fc:5f:07:97:cf:ae:
+ b7:43:3d:87:eb:be:51:e3:f1:8c:1f:63:43:29:24:
+ 8c:94:23
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 90:35:36:11:52:F9:00:65:FC:71:E7:73:B0:91:ED:0B:19:84:C6:28
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F8
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 79:cd:41:fc:f0:66:13:f1:76:bd:22:51:dd:91:2f:7a:46:fd:
+ b0:ea:44:e6:73:5d:ac:00:2d:6e:0c:90:a5:e1:3b:f2:4c:75:
+ 79:12:08:eb:7f:fa:82:7d:e0:f7:76:db:63:6c:07:e9:65:0a:
+ 98:88:4e:b1:0f:d2:57:3d:df:4f
+-----BEGIN CERTIFICATE-----
+MIIFmTCCBUOgAwIBAgIJANaOuOCRgiz8MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzExMDI1MDExWhcNMTUwNzA5MDI1MDExWjCBuTELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxGzAZBgNVBAsT
+ElRlc3QgTGFyZ2UgUlNBIEtleTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8G
+CSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA82H5NlSuXRdoGxgoJHJOOV2/IBfIfCBZ+6NC5Cy3DW2X
+fuGbulnD5+hk/3Y1WOCQ+isTkl+6t39UJW7OzRujeJI0MX+d3IBhPHJpbbg1qPgf
+A2zl10FTJISKcnA84jmL7HCd088uCPYFgK82j+2O799QM5RYFY+HxLRlPaHRIwBq
+ZzVgBli9Q4qGUin0oeFff1luykp4Fp3aBNlh1KPqaXJ/G6r/yAdRE1DBPn2b93Dc
+ul2UqSus6lbgPH9dke+9giXyN+ss2a233T68hnqviY/5Ml6c0EEMjLeEXinpT/y1
+XPT5gjK5Ne2ECjIjMrWkscjFoBa1d40hj1OAxKGkZe6vCoQdNDDjBzXOFo5pe7ch
+kVYmwtc/eQ7gsnelymCIFTCPZaqPnZ/QUD0qm09hykMZuWlYG5h3Q0IeCHwwWFLU
+s+vRop4o3RuW/fko/XbY7JEh0Y1CTPUFcC7Su5rFyOF3XU5fwqufwHVREW7qaw7U
+vJPepJXj0lJXrHTFpuWilD/YQw5CjHWtDGnRqI7nSXcrOK/JrEN3J5CCHWLmMaAb
+F75+Yywp7Bs9S1I57Hoq/Egvvc7ZHyEC+yxu2UAUxWrOILwM5K6HNdLaX9uVUPPj
+7SyTrUJbr2X++EsK3GB/3Ug4iND8pKr8XweXz663Qz2H675R4/GMH2NDKSSMlCMC
+AwEAAaOCAVMwggFPMAwGA1UdEwQFMAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5T
+U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSQNTYRUvkAZfxx53Ow
+ke0LGYTGKDCB8QYDVR0jBIHpMIHmgBT+5OxTJPCVlccQteFEtV05ZVrjfqGBwqSB
+vzCBvDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoT
+NFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3ht
+bHNlYykxHjAcBgNVBAsTFVRlc3QgUm9vdCBDZXJ0aWZpY2F0ZTEWMBQGA1UEAxMN
+QWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29t
+ggkA1o644JGCLPgwDQYJKoZIhvcNAQEFBQADQQB5zUH88GYT8Xa9IlHdkS96Rv2w
+6kTmc12sAC1uDJCl4TvyTHV5Egjrf/qCfeD3dttjbAfpZQqYiE6xD9JXPd9P
+-----END CERTIFICATE-----
diff --git a/tests/keys/largersakey-win.p12 b/tests/keys/largersakey-win.p12
new file mode 100644
index 00000000..af04b9e4
--- /dev/null
+++ b/tests/keys/largersakey-win.p12
Binary files differ
diff --git a/tests/keys/largersakey-winxp.p12 b/tests/keys/largersakey-winxp.p12
new file mode 100644
index 00000000..75746297
--- /dev/null
+++ b/tests/keys/largersakey-winxp.p12
Binary files differ
diff --git a/tests/keys/largersakey.der b/tests/keys/largersakey.der
new file mode 100644
index 00000000..c76b59fa
--- /dev/null
+++ b/tests/keys/largersakey.der
Binary files differ
diff --git a/tests/keys/largersakey.p12 b/tests/keys/largersakey.p12
new file mode 100644
index 00000000..613fc7ce
--- /dev/null
+++ b/tests/keys/largersakey.p12
Binary files differ
diff --git a/tests/keys/largersakey.p8-der b/tests/keys/largersakey.p8-der
new file mode 100644
index 00000000..1c75f06b
--- /dev/null
+++ b/tests/keys/largersakey.p8-der
Binary files differ
diff --git a/tests/keys/largersakey.p8-pem b/tests/keys/largersakey.p8-pem
new file mode 100644
index 00000000..7991d7ac
--- /dev/null
+++ b/tests/keys/largersakey.p8-pem
@@ -0,0 +1,53 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIJaTAbBgkqhkiG9w0BBQMwDgQII/X7tBz2lDgCAggABIIJSIFZASAVzO/ZwE3K
+ldJI6KQ8KJSH2b8iP5VLqAYKn7GlrAOioT9XBBF1QgE5r8B9qAxp/if8fC7CF0Wo
+iruZI1hJpBjuSFgNSgomHr2jXxPVX59YxmBkM3KQ5FC4gL70+LDqzhhozIaAyrbe
+c+w94NjCq3cR9w3S6lnjpc/JZaTNz9Yb/Psl6PfCdEdnGpyxiGLpKZDCnVvBgPXU
+7C9yJ9/GDUQynBl1xiEWR89jVpatZjOJgz8NJU3upE5SWVVYIThXGgrm6Xolyh3M
+L9qZksyKQg1r48Bd9w9kxRUOhgJzQ5ovFDHoftRmc7RMxLvorsI7SYYbSTNAz2JF
+q/H7yakrPD5TYMzt8ctFp6Jh9yq98pobyzLbugSxP1QrapfJe1LWQm4qKV6tZcqw
+T/mHbS1+7a1EtCFi7l4rlTT/Xu2gGAdiroT+cfNWJlwo63kCaiVpYzmEhBJVJOtS
+YVRTRjf8UofWhkEXNSrn07xeFS7bIzG5icdvjvRKaRwHhXgSyVIp9eFumX8oW0ZG
+nrEVqc8mjzEP2tBkytgfPmEiOnBizX9Bg6RLjL8Kzfev3Sj/eeizrCRA4qPPlzRN
+uF5hdi+yFakPQN6XKQd9PuCksY7w0Vb+x51baF96LYO82Q9pThYk8AUPMek1nB1w
+BTWTphukTJfwmBzAZCKm1VrMjIFgN1gRK6jO/FYtveJ5yGNx9vi6Y3Bs1heOJdVn
+Hjnq0rXWzDvHR8pzlDo85R/WNqjmkH9qQ/Tnsixm7J4IguXjE6znrC+4bcfJsWRc
+01a+15WgSvATGYNAa0zgUgv7JGvHsxHu+OCYnpNQnxGVYpyK0p7Kzm/DEM7mr49Z
+jHm+nuZ2n/sLVoyn5OI7JeCWuHWCdHWGz8P90jOdhdFadg2RPS0OdO9JAnL9mznD
+AmnI35zq02FP3lHxE/4/deAhDYVUGQzVKnAsLaXoRVZ77O5UjUMuDZN6E59EAR3w
+y32IXuoUphR3ID6tW3e4nCYWEmjExxNn1ZFU/ImIlIbYZp6ym+ulZhA4ZcFafBoA
+kdpcULakqCEHFW2coSeB+NtQvU2DEw9T+Vnnl2WUD8Gb1Y1G1Z8iB1gNg2Zjn2rL
+tY/ZBM4IQR2uXzyus6o/poF0qpPC37DI1YTlOBMyg1oOA2fc2l4wULx+u7jMtNEL
+eG//swW4F8Od5j3Hs0kJpJ00O98dqcXpYy/UaGQNdWzIUIg8AjScMdt/aFg6vluR
+JmS3mmZr5GY6GG0+n4xTzDCFDHwPO+dkx2z0qry8qWUUz5cL2Ym6KS+MGqKNz4vO
+kScYfg51gikT+kT6xshO62alqZwsmZB3YCp/7dD9s2LcWFaKQvVFoi+EXum/sBBL
+7/fbh30Cx1eSpYN/Jb1FRwlcg/e4lcpp4et8LL2oLCghPbBfw5qYnQLN/oA2LJnB
+TTVGc0lA6ZSkI1UrqfDLQvBCrLKXhO2hp3KvRoJlLc1dXXyHh40c7/8Aw+BUqkrO
+/sv52jTkwttPc9RnUhR1F9LVyMrOhYD9BlgZGqzMLzi58+WHigcgtfNColps6ATi
+GaMmBfCl0VSw3u686RyXOjpTwGHVgwCp0hLuHbg8USBaqqnt4PpVG5zAU95KQ6t4
+Nr7CZBJQWlGotu2orgyV2JfcvNWtZjr5usbxnA5mSLEWI09rpnQRP+JGFGCQQr00
+6PAaWnyYCs4ZFYkWWkzuAVMSE0Xvbll2+bwnprA39AfPl/2UCBzwxS2bdbvDdLgX
+wh+plYaRWnUhZwbK8XIH6Gc+zfAc6glJobkP3gV2hbNXo/1yHuuPrjz5AZ1J7B05
+hnN53NoUncnrCcNc79jkTzuprJ3UkIBc7ibUXjf3vdzfsbA+9GVxKWdY1jmNU3si
+yDJlywhNaMf1LwJsnq1tn4B37NrZEjtTejnk9HkLYu89q1f+t45PkSrnuf1J75ej
+jXCzRQGMVkLh+vB8mCYPbraMciOPaLBNM5mQpNCITZVJ6xq7JfRqnKYK1U9LhzB+
+4r19bvri2gBuXCBM71LN6UWRSLYCRbKWDs1OJKBB4T6BtMU4FwHUGspF9Ch5Cmqw
+fRzJsVI+/sFlgxN7Y++qmH5hH7LoWsQAthGmhxdXjIXGek+hTYToTnS+vu4Eyz2/
+VzMS4oPAsBVlRWkzcfE6vA2tdPMt0+pmLoow+shuskrciFCJtQl6WiOA/ei+XoTG
+Amzy5cILYqJ6BW+IxcoIp4OH3KdzJPz+AccQZkBPxkYbwkw7+6wLk+RXirwyXGaz
+x+s+MSUloio2IGXi8nUdeaBbEt7X32H9TB2QXIOyVPaUSKCMcozzfxGLt+NEL/+C
+tUjsVUvRsPw1qW7kT2cVsmJUclg+R/6dozkXlCrEa0Er/6TmD+n3BTehUBFwO/r3
+vOOKyNUfofAC2fI7koOP/W08WBnJdDqd6RrYdyD09nKzkXcmPfq9i6pCnLe4rwZc
+YA8KDMBxBRho4DA0Av4JcbMlZu872xAdk7RJMcaugIOQ8uJshNK8+KpLmy9KDkDC
+nZLTunTO97KmRUqrhYC9rqPqioYZG09uWWZWjpvexoOa9zZoIY1f601tLBEg/m/7
+4AO3L7TlPG1jZZgI0rbMb7er4AajAfNEwthwJ8K4GqWLi87GijppfAsComHfhPwg
+AOOQtZ5kRztEeJXXEi6LGNvyhZF8v5zvHgk4jGoF+PMg2idL/V59VOPbuFtLFkMw
+QtaZ50jcqDBLeBPWfmbgdo7bHx0fVlcAdQVvUerqm218fXCDaraOQLNekqjpFwib
+A1/c4+UhcVqFrFldsZYSy/c9kH1LWt/7tbL50rLKNUkGPqlqeEsgbKlVFI+PvTNZ
+iMJ03tZ2Z6OL5KgHr8iVZbvK4b/JQRLy2mhkuR3UB0bSSSDzYy+6Is0Ejs4V2nYv
+TK0zBETlmPqTtyK9Gsj22kSgXuE9PIrG8dfN2y7mEYsva6p5e4t/afbZBMbnK8xy
+8S/QXVuQ1GlBLZNeUqUyMkBwtUq213irEbj0dA1SlaZ3DEO9Y92JOkze+swNXGQf
+F+V1/Md3R3OfgGKYz6CiKZzYpdRubpxdtHq3X9bs6ESLss91lHsdTRYw5Cli+AZc
+0T6x10xq/vPerq3Z3uVgdF1GREnVoZ07nZAJJJZWnyZugvM1/w1ZFSYv8xqKjl/G
+n6hCl1lFtfyHieoKYA==
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/keys/largersakey.pem b/tests/keys/largersakey.pem
new file mode 100644
index 00000000..d25dbbd2
--- /dev/null
+++ b/tests/keys/largersakey.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIJKAIBAAKCAgEA82H5NlSuXRdoGxgoJHJOOV2/IBfIfCBZ+6NC5Cy3DW2XfuGb
+ulnD5+hk/3Y1WOCQ+isTkl+6t39UJW7OzRujeJI0MX+d3IBhPHJpbbg1qPgfA2zl
+10FTJISKcnA84jmL7HCd088uCPYFgK82j+2O799QM5RYFY+HxLRlPaHRIwBqZzVg
+Bli9Q4qGUin0oeFff1luykp4Fp3aBNlh1KPqaXJ/G6r/yAdRE1DBPn2b93Dcul2U
+qSus6lbgPH9dke+9giXyN+ss2a233T68hnqviY/5Ml6c0EEMjLeEXinpT/y1XPT5
+gjK5Ne2ECjIjMrWkscjFoBa1d40hj1OAxKGkZe6vCoQdNDDjBzXOFo5pe7chkVYm
+wtc/eQ7gsnelymCIFTCPZaqPnZ/QUD0qm09hykMZuWlYG5h3Q0IeCHwwWFLUs+vR
+op4o3RuW/fko/XbY7JEh0Y1CTPUFcC7Su5rFyOF3XU5fwqufwHVREW7qaw7UvJPe
+pJXj0lJXrHTFpuWilD/YQw5CjHWtDGnRqI7nSXcrOK/JrEN3J5CCHWLmMaAbF75+
+Yywp7Bs9S1I57Hoq/Egvvc7ZHyEC+yxu2UAUxWrOILwM5K6HNdLaX9uVUPPj7SyT
+rUJbr2X++EsK3GB/3Ug4iND8pKr8XweXz663Qz2H675R4/GMH2NDKSSMlCMCAwEA
+AQKCAgBHktNgJ+0TEVQbS7JabYcVlb0kKfpajoUH3I5KXeADQexgcuaCGe3j4FL7
+UX8EwR3BhDOAQ0i8t+Q+EeUdKnibd5uDxvzcoKB3z0mz641UQIuWTUsWT26s+ZFh
+cCJngPbmNIQlivMFzZv2qRBJqVn0rt5+HKz+wjPyI/717gV73p5r9aVkmGooV6+C
+sDXx+T5FTD6pnNbOB+Paszby+rVwByzcLSCFaaltHb2GrBfW38j5wZV7Xo2+aIgP
+IoGY7kDz6kbeLPoGlfDRTqbQgXnn4YAuUOaa09Zl934k1vx2+mE3kg9iO5p+Anhn
+KzFwszxY0CtWFfeNzeJFrQ/cQ5D9micMaTVB9zyizarkXGgHOoncuIVBVgV8i7gA
+YxxcR2jsDhySoUXcIMFWxxMVR66dx+gK4FUB/GOX26NMcvj0FgjQkUWCoDKivUSi
+9ClgH2/r8bFS+nNEoWuJ23LqUO2LtGDF1z2PXSs8SVUd2SPTHjlnJ6nSFbrtrfkw
+GMUov/QizIn7GH0IGUJCU5RZq3VUs5SdJqr7Glz8yjnbFacTfSrXdbLjD7toFOE8
+tNOJrAKI7mBhH9LsnQ4E0RRjpX/6GozVO6xfeNFWKsx4ocZ0T7wRjSwb6Pi/lVf5
+9VZwXgI67MJA8Px6MIGUDkPOOo63n1/Zs4YY3Pl7qKAOGr898QKCAQEA/1B8O+qi
+gXbTcXCAEkmQimhQDlrylBunucWTKPLNFLd1qiAwAlx9kDVHH0GV/lxqEKh9bm00
+6OOqHpEYwOoHFWfXr0hX4+FK86fI8SCZ8TPbMWYkx7567yAwl9p44mv3wHbwuVCs
+EoyQS5EKCfcOL/pLF7OyDMMWaHNLx24C+g7LRpim/NyUPQjTxmRBX4rd+4qFBIKH
+1Ksan+7rm/yzY3VZCtwLzqKQntsOPrdYO0vPYpq5lieIjSsz2v7uFa+QgHVaaupU
+UYEK3tpEKfLS+iLNA1aEmmlVfkFc3qWeR7y8SFN9TedBVLGg6gwjZ1kf5Yo4Zfgf
+FU/0XmuL0g/JmwKCAQEA9AlJKwUBtMEeauIY00gNCdQVN1oxsCrxa8knDMDWl9EO
+KEpoA6ilepROszlxj7ejdFBxHqnI0h4U6yLimsDB+LOA8ULvIhTYOWV2FIA/zpfw
+ej34dcnA4QiM7Cs63z6r84c3JS+EVL13zZoNBdmTzsLIEy47Sqv8XP1VzI24mZ+t
+LU6LXX50kj4iibPrFgfYkA1zsfh/amY1hBXktAj4tvOMI9sugy3py1iPlpu+UX3W
+7nbUzI66bZtDguLszQWkWfMwwkHABQcjO+e6fKKVe9P/KdCH3cXz3YTK3ZK9fIWJ
+jISFymS8wd9o70iI9HT+0/d4TEd8lmOpq1VCq2XsGQKCAQA0Fvyx0MZE+bRcEaLf
+mEi4JF4o/588XoQS39+NXDRBRMjp49VHtg0cLfKLyvrKQZqWOXoV3IwN890SjXHq
+chTt5hjYNz9PS/jZy2Kw54Dg+D6BTqC0bAVy4jNn1/gP4g1TJDEq7e2dfzY1ZKsS
+q2gmm79UX6I0/lyFBPjyAFz1Ha2VgrGXJ33LEhD7ChtYXeG6X2GSMPt7hUlSVhGV
+6rHC2f9HuuthxkMRVgoK+6cxud7e9Ehm/Tvb6XOT+60hmYc23jqLU7HOSzCnlQqR
+MGyhAhan1rAJPPJnZviGqG2pnzUe4IHRMhxfJjp5Ze6XOFTMpS2qiDv3Qi/OT8zg
+F75/AoIBAARbThUYh8lEUVizJKJQ/PqZ8K8GSzDL83drJelSYAJh1xDdEzJNhnbD
+wwvsEJzyOFbRQNO9UDqAEvuHqef9XPklqz2jZkWDfcC4kP0YtQrpJ3/nL1JbAbiC
+wJFOzERECCnW1iMxz/j7UPI4t9bM5ZihXZUKFEDnBSBb3XZDaXJEqYDPkClhIo+h
+0FgJAD9qcHFR7CjXON8baAUtpuGX72jEvFG/jfsFjND2icm0ihdGWdn0ASSNv8JJ
+LVFe379hRGfesZYmOllcoUJmhqvG80g8pqeGc4aADDR+NGj0P7HDaIs7qm/MkJod
+dPAgqWFD3XDHUDx8YjsFGHhYk1IgBbECggEBAOse/fI06KcoQ3ARHUV98UsTBf4C
+eLydlAkdoyJkJ+dIqFmqRLmNzOolfzfEJkp+YO9fU6KU5+mF2PUxGcU6QhUOk2Lz
+DF5ARFeZSNZ6UmrFdm3QGkBHE7u+iRBjHhrR80PjE0qYM7Vjqg9L1k4hr97ccrj9
+tNRSEqPtR7XA6QfAx3RBlJfQXAmwLeSuGC6Sh0Q55UYhHegN2IblFcYdoxYr68uD
+pMpypdcgbClKBaxCIvcKvbPiziHsAU2VZnLmCOA66Csqv0Tw/IjUops5EegIJ6LT
+29QsXgdv3E/Wb6yQF9vS0LRWBjEy3/FRwaxs6acqslfBT3QKQMSjDADTCKo=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/keys/largersareq.pem b/tests/keys/largersareq.pem
new file mode 100644
index 00000000..c8da3dc2
--- /dev/null
+++ b/tests/keys/largersareq.pem
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIFEzCCAvsCAQAwgc0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRIwEAYDVQQHEwlTdW5ueXZhbGUxPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxGzAZBgNVBAsTElRl
+c3QgTGFyZ2UgUlNBIEtleTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqG
+SIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEA82H5NlSuXRdoGxgoJHJOOV2/IBfIfCBZ+6NC5Cy3DW2XfuGb
+ulnD5+hk/3Y1WOCQ+isTkl+6t39UJW7OzRujeJI0MX+d3IBhPHJpbbg1qPgfA2zl
+10FTJISKcnA84jmL7HCd088uCPYFgK82j+2O799QM5RYFY+HxLRlPaHRIwBqZzVg
+Bli9Q4qGUin0oeFff1luykp4Fp3aBNlh1KPqaXJ/G6r/yAdRE1DBPn2b93Dcul2U
+qSus6lbgPH9dke+9giXyN+ss2a233T68hnqviY/5Ml6c0EEMjLeEXinpT/y1XPT5
+gjK5Ne2ECjIjMrWkscjFoBa1d40hj1OAxKGkZe6vCoQdNDDjBzXOFo5pe7chkVYm
+wtc/eQ7gsnelymCIFTCPZaqPnZ/QUD0qm09hykMZuWlYG5h3Q0IeCHwwWFLUs+vR
+op4o3RuW/fko/XbY7JEh0Y1CTPUFcC7Su5rFyOF3XU5fwqufwHVREW7qaw7UvJPe
+pJXj0lJXrHTFpuWilD/YQw5CjHWtDGnRqI7nSXcrOK/JrEN3J5CCHWLmMaAbF75+
+Yywp7Bs9S1I57Hoq/Egvvc7ZHyEC+yxu2UAUxWrOILwM5K6HNdLaX9uVUPPj7SyT
+rUJbr2X++EsK3GB/3Ug4iND8pKr8XweXz663Qz2H675R4/GMH2NDKSSMlCMCAwEA
+AaAAMA0GCSqGSIb3DQEBBAUAA4ICAQDW+eyCOkDNCtpO8i8ThqBMA++0WmnY1T8Q
+3tSFxgne8ZVz+/2fERcB7ZuPLH7+Uu37cdsaBP0Qq5jRqe0WiMlrOiV7sdFPDPnV
+uuiOCbSrxSc1FfmuSmtx2XnKZHCGpyRmArASvlN15PG+e8t/rN3EeqlAMeDnHyng
+ODoWXY8WxwNC6Ft8H/1duVhM0yP0lvLSKwgrUx3jU+m9gmWZADnQN5DZo32MJr/8
+KEJrjRYJQQ1oZZ34VNLCrZgutyH5y/A8dSZRpy99RA8PJ3trd1HWN2VMQesIhuKs
+uS0rZLdFov0JbH1dGe1V3DM7Omt4jvhZQ4wje6JkIDKoguuZ8izX1iZ+hfNFSxUx
+vREmTvoEMmOagAbg1OGfexbTMhQE5YcoNK8YdJj9xKIcD2Oj6TnWHX6p9JclAlIV
+LFxnXDsXHIRb2weoPc942PXH3yavHRWaguYAhDHYxb3TSPm5JDHKr6i7YRKCueV/
+NB84mhAGd40SKUCFGoD6wSWhKWG1KrBUNY0X2Qp8M71ZfWN4SF0sjcwB2XQQp6yr
+0mvxXSbMhtr4bSGKB5RECJRM16DaJ2VapTJ3Pr3S4+bZVkxUq6KCJZY7rQeyk7RP
+6U7k0u5XKUOgEmH93DL7ac0FMy70hIyaAiG4k3jE4P6ewqBmsWaW3OtT3RWtBCNd
+E8XvfdMyBg==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/keys/merlincert.pem b/tests/keys/merlincert.pem
new file mode 100644
index 00000000..cff8e3ea
--- /dev/null
+++ b/tests/keys/merlincert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAwugAwIBAgIGAOxN334jMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+MB4XDTAyMDIyODE3NTI1NFoXDTAzMDIyODE3NTI1NFowbjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+MIIBtzCCASsGByqGSM44BAEwggEeAoGBAIprqepZpIuKwJlLLSm/8XQUTFjbUPqQ
+zfe2ZywPV95Sm5BB7WBco0N7gHLYFUie+YlUbisc+Am+Uc1ZtuRGipiqvK4n9TLQ
+SIuo4wycZiHTWhChvc1U3/YIicdTfSNLd6IdXwFWQ0q8ysyRkNlrw3yHxR3STLQd
+wtFShpi2Ue15AhUAxDve3j7sEnh4rIzM5gK+5/gxxFUCgYA0u6AB/ohknGjcEI6L
+nKsYRXC2UTNdyed1eF3RPPfwKdApzhIS6mbg/I/lOYu8rrhMN84Puyej9bmgjUpl
+2KZ9bZziv/rBo3NlK+Jww5aEthjrbU2fqeMFzxU3CjFanMJeEqbvRvz4Phhkyf95
+TkM3x2+FO/9s0rbUV8mqOnTfdQOBhQACgYEAhiDEE1r/AVBPgmBksGXqTRTHYhLq
++PE+lUD0zi8qUQTIsgIyjoWORG8HG9XoRl/4LxXVUP3hiJSE78MINC61m3ef6Ir1
+lbWo1lSUY9gi88Gy7TJMJrkpCwgzeNgUL5U/ZACwup8lM0D04Bi7lxZ7Vt4fqPMG
+MoY2QUwG2H3SUTGjNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA
+MBEGA1UdDgQKBAiCOqKyJnVZWzAJBgcqhkjOOAQDAzAAMC0CFQCGiGcFnv0ZDYOb
+M8Ebo7XQJrgn2QIUa0pkSOjcyp9B68ZDaxsMLIpuVwM=
+-----END CERTIFICATE-----
diff --git a/tests/keys/openssl.cnf b/tests/keys/openssl.cnf
new file mode 100644
index 00000000..ecd8b887
--- /dev/null
+++ b/tests/keys/openssl.cnf
@@ -0,0 +1,316 @@
+#
+# OpenSSL example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+# This definition stops the following lines choking if HOME isn't
+# defined.
+HOME = .
+RANDFILE = $ENV::HOME/.rnd
+
+# Extra OBJECT IDENTIFIER info:
+#oid_file = $ENV::HOME/.oid
+oid_section = new_oids
+
+# To use this configuration file with the "-extfile" option of the
+# "openssl x509" utility, name here the section containing the
+# X.509v3 extensions to use:
+# extensions =
+# (Alternatively, use a configuration file that has only
+# X.509v3 extensions in its main [= default] section.)
+
+[ new_oids ]
+
+# We can add new OIDs in here for use by 'ca' and 'req'.
+# Add a simple OID like this:
+# testoid1=1.2.3.4
+# Or use config file substitution like this:
+# testoid2=${testoid1}.5.6
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir = ./demoCA # Where everything is kept
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+#unique_subject = no # Set to 'no' to allow creation of
+ # several ctificates with same subject.
+new_certs_dir = $dir/newcerts # default place for new certs.
+
+certificate = $dir/cacert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+crlnumber = $dir/crlnumber # the current crl number
+ # must be commented out to leave a V1 CRL
+crl = $dir/crl.pem # The current CRL
+private_key = $dir/private/cakey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+x509_extensions = usr_cert # The extentions to add to the cert
+
+# Comment out the following two lines for the "traditional"
+# (and highly broken) format.
+name_opt = ca_default # Subject Name options
+cert_opt = ca_default # Certificate field options
+
+# Extension copying option: use with caution.
+# copy_extensions = copy
+
+# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
+# so this is commented out by default to leave a V1 CRL.
+# crlnumber must also be commented out to leave a V1 CRL.
+# crl_extensions = crl_ext
+
+default_days = 3650 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = sha1 # which md to use.
+preserve = no # keep passed DN ordering
+
+# A few difference way of specifying how similar the request should look
+# For type CA, the listed attributes must be the same, and the optional
+# and supplied fields are just that :-)
+policy = policy_match
+
+# For the CA policy
+[ policy_match ]
+countryName = match
+stateOrProvinceName = match
+organizationName = match
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+####################################################################
+[ req ]
+default_bits = 1024
+default_keyfile = privkey.pem
+distinguished_name = req_distinguished_name
+attributes = req_attributes
+x509_extensions = v3_ca # The extentions to add to the self signed cert
+
+# Passwords for private keys if not present they will be prompted for
+# input_password = secret
+# output_password = secret
+
+# This sets a mask for permitted string types. There are several options.
+# default: PrintableString, T61String, BMPString.
+# pkix : PrintableString, BMPString.
+# utf8only: only UTF8Strings.
+# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
+# MASK:XXXX a literal mask value.
+# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
+# so use this option with caution!
+string_mask = nombstr
+
+# req_extensions = v3_req # The extensions to add to a certificate request
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = US
+countryName_min = 2
+countryName_max = 2
+
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = California
+
+localityName = Locality Name (eg, city)
+localityName_default = Sunnyvale
+
+0.organizationName = Organization Name (eg, company)
+0.organizationName_default = XML Security Library (http://www.aleksey.com/xmlsec)
+
+# we can do this but it is not needed normally :-)
+#1.organizationName = Second Organization Name (eg, company)
+#1.organizationName_default = World Wide Web Pty Ltd
+
+organizationalUnitName = Organizational Unit Name (eg, section)
+#organizationalUnitName_default =
+
+commonName = Common Name (eg, YOUR name)
+commonName_max = 64
+commonName_default = Aleksey Sanin
+
+emailAddress = Email Address
+emailAddress_max = 64
+emailAddress_default = xmlsec@aleksey.com
+
+# SET-ex3 = SET extension number 3
+
+[ req_attributes ]
+challengePassword = A challenge password
+challengePassword_min = 4
+challengePassword_max = 20
+
+unstructuredName = An optional company name
+
+[ usr_cert ]
+
+# These extensions are added when 'ca' signs a request.
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:TRUE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+[ v3_req ]
+
+# Extensions to add to a certificate request
+
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+[ v3_ca ]
+
+
+# Extensions for a typical CA
+
+
+# PKIX recommendation.
+
+subjectKeyIdentifier=hash
+
+authorityKeyIdentifier=keyid:always,issuer:always
+
+# This is what PKIX recommends but some broken software chokes on critical
+# extensions.
+#basicConstraints = critical,CA:true
+# So we do this instead.
+basicConstraints = CA:true
+
+# Key usage: this is typical for a CA certificate. However since it will
+# prevent it being used as an test self-signed certificate it is best
+# left out by default.
+# keyUsage = cRLSign, keyCertSign
+
+# Some might want this also
+# nsCertType = sslCA, emailCA
+
+# Include email address in subject alt name: another PKIX recommendation
+# subjectAltName=email:copy
+# Copy issuer details
+# issuerAltName=issuer:copy
+
+# DER hex encoding of an extension: beware experts only!
+# obj=DER:02:03
+# Where 'obj' is a standard or added object
+# You can even override a supported extension:
+# basicConstraints= critical, DER:30:03:01:01:FF
+
+[ crl_ext ]
+
+# CRL extensions.
+# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
+
+# issuerAltName=issuer:copy
+authorityKeyIdentifier=keyid:always,issuer:always
+
+[ proxy_cert_ext ]
+# These extensions should be added when creating a proxy certificate
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+# This really needs to be in place for it to be a proxy certificate.
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/tests/keys/rsacert.der b/tests/keys/rsacert.der
new file mode 100644
index 00000000..a480d645
--- /dev/null
+++ b/tests/keys/rsacert.der
Binary files differ
diff --git a/tests/keys/rsacert.pem b/tests/keys/rsacert.pem
new file mode 100644
index 00000000..89c58f0a
--- /dev/null
+++ b/tests/keys/rsacert.pem
@@ -0,0 +1,61 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number:
+ d6:8e:b8:e0:91:82:2c:fa
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Second Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Validity
+ Not Before: Jul 10 02:33:02 2005 GMT
+ Not After : Jul 8 02:33:02 2015 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Third Level RSA Certificate, CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (512 bit)
+ Modulus (512 bit):
+ 00:d3:d0:6d:0f:76:9e:56:de:83:54:39:24:d1:d2:
+ 3b:56:1e:cb:8e:a7:67:b1:89:96:d2:d6:c3:57:1c:
+ 4a:fa:7b:a6:7b:e6:7d:49:be:33:9d:b5:0a:91:69:
+ 7e:be:04:00:4d:d4:54:13:28:53:d8:ff:86:aa:b7:
+ 74:50:1c:d8:7d
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ D7:F4:C6:46:77:CE:37:04:23:AD:29:54:FB:B0:0E:A4:CC:43:28:19
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Root Certificate/CN=Aleksey Sanin/emailAddress=xmlsec@aleksey.com
+ serial:D6:8E:B8:E0:91:82:2C:F8
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 47:e3:be:65:b0:8b:68:01:a5:8b:7b:6f:01:7a:a0:78:85:2e:
+ 82:21:e6:48:8b:00:fa:e5:38:50:1b:3d:99:4b:0e:aa:f9:f9:
+ e0:dc:af:57:1f:d2:99:2c:81:6e:df:54:4f:4d:cd:34:a6:c2:
+ 30:c5:b8:47:0f:a8:95:7a:d8:49
+-----BEGIN CERTIFICATE-----
+MIID3zCCA4mgAwIBAgIJANaOuOCRgiz6MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMzAyWhcNMTUwNzA4MDIzMzAyWjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7LjqdnsYmW0tbD
+VxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQABo4IBUzCC
+AU8wDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTMQygZMIHx
+BgNVHSMEgekwgeaAFP7k7FMk8JWVxxC14US1XTllWuN+oYHCpIG/MIG8MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEeMBwG
+A1UECxMVVGVzdCBSb290IENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVrc2V5IFNh
+bmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQDWjrjgkYIs
++DANBgkqhkiG9w0BAQUFAANBAEfjvmWwi2gBpYt7bwF6oHiFLoIh5kiLAPrlOFAb
+PZlLDqr5+eDcr1cf0pksgW7fVE9NzTSmwjDFuEcPqJV62Ek=
+-----END CERTIFICATE-----
diff --git a/tests/keys/rsakey-win.p12 b/tests/keys/rsakey-win.p12
new file mode 100644
index 00000000..e0281f7d
--- /dev/null
+++ b/tests/keys/rsakey-win.p12
Binary files differ
diff --git a/tests/keys/rsakey-winxp.p12 b/tests/keys/rsakey-winxp.p12
new file mode 100644
index 00000000..3817a7e1
--- /dev/null
+++ b/tests/keys/rsakey-winxp.p12
Binary files differ
diff --git a/tests/keys/rsakey.der b/tests/keys/rsakey.der
new file mode 100644
index 00000000..6a844dbd
--- /dev/null
+++ b/tests/keys/rsakey.der
Binary files differ
diff --git a/tests/keys/rsakey.p12 b/tests/keys/rsakey.p12
new file mode 100644
index 00000000..2c6be5ed
--- /dev/null
+++ b/tests/keys/rsakey.p12
Binary files differ
diff --git a/tests/keys/rsakey.p8-der b/tests/keys/rsakey.p8-der
new file mode 100644
index 00000000..fed75a6e
--- /dev/null
+++ b/tests/keys/rsakey.p8-der
Binary files differ
diff --git a/tests/keys/rsakey.p8-pem b/tests/keys/rsakey.p8-pem
new file mode 100644
index 00000000..f31b10ff
--- /dev/null
+++ b/tests/keys/rsakey.p8-pem
@@ -0,0 +1,11 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIBgTAbBgkqhkiG9w0BBQMwDgQIEZ3kmUDSHvUCAggABIIBYPVfp9uKbSZ7fhvF
+8g5KVcikiKq1cVPUTg+9579/peIQtowRFAosI+MIAB+eTAyLSCtl7SetsuD/oykW
+nONRnjzKeuF2PgQj3AwtBVQtMD6z9hZoc+uTrp7t1J53SFhKpS2NCwzEb4VyE+Fy
+NpD2g30ccYmWkwWNOd9Z1kACnxRtaoGa5jj2Tim/Xz+okDeAR+TWt5vAh6K34Tfm
+ndmcWHbEEh7QTEXvzzgU0WMx1CA8hbMaRRBBoGbRecCLnQ0hBBeShP5cPkM6P0mY
+5ZIRBk68duKgZLchL3z9Mzy+faRKqusNod37L88PGDSkqjMIEbyQP33TwH5zCg4x
+Iu5H8TmPpWLefQi54XUH/xkdW0oX648hFflLDNrP9USeSVB0l4A+xEX2qL94Q6Ed
+SGFFLk+Fvwo+oPYPCJvYceHCBeuKatRX8CdsPTnkalnWMM5og4re6SyH96EAGVcK
+9Gr5OGI=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/keys/rsakey.pem b/tests/keys/rsakey.pem
new file mode 100644
index 00000000..8ea653ff
--- /dev/null
+++ b/tests/keys/rsakey.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBANPQbQ92nlbeg1Q5JNHSO1Yey46nZ7GJltLWw1ccSvp7pnvmfUm+
+M521CpFpfr4EAE3UVBMoU9j/hqq3dFAc2H0CAwEAAQJBALFVCjmsAZyQ5jqZLO5N
+qEfNuHZSSUol+xPBogFIOq3BWa269eNNcAK5or5g0XWWon7EPdyGT4qyDVH9KzXK
+RLECIQDzm/Nj0epUGN51/rKJgRXWkXW/nfSCMO9fvQR6Ujoq3wIhAN6WeHK9vgWg
+wBWqMdq5sR211+LlDH7rOUQ6rBpbsoQjAiEA7jzpfglgPPZFOOfo+oh/LuP6X3a+
+FER/FQXpRyb7M8kCIETUrwZ8WkiPPxbz/Fqw1W5kjw/g2I5e2uSYaCP2eyuVAiEA
+mOI6RhRyMqgxQyy0plJVjG1s4fdu92AWYy9AwYeyd/8=
+-----END RSA PRIVATE KEY-----
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>
diff --git a/tests/merlin-exc-c14n-one/Readme.txt b/tests/merlin-exc-c14n-one/Readme.txt
new file mode 100644
index 00000000..1ba1cd92
--- /dev/null
+++ b/tests/merlin-exc-c14n-one/Readme.txt
@@ -0,0 +1,3 @@
+untested exclusive c14n example signature + c14n output
+merlin@baltimore.ie
+mon jan 14 2002
diff --git a/tests/merlin-exc-c14n-one/exc-signature.tmpl b/tests/merlin-exc-c14n-one/exc-signature.tmpl
new file mode 100644
index 00000000..7b635ae0
--- /dev/null
+++ b/tests/merlin-exc-c14n-one/exc-signature.tmpl
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Foo xmlns:bar="urn:bar" xmlns="urn:foo" xml:space="preserve">
+ <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <dsig:SignedInfo>
+ <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue></dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" />
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue></dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" />
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue></dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" />
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue></dsig:DigestValue>
+ </dsig:Reference>
+ </dsig:SignedInfo>
+ <dsig:SignatureValue>
+ </dsig:SignatureValue>
+ <dsig:KeyInfo>
+ <dsig:KeyValue>
+ </dsig:KeyValue>
+ </dsig:KeyInfo>
+ <dsig:Object Id="to-be-signed">
+ <bar:Baz>
+ <!-- comment -->
+ </bar:Baz>
+ </dsig:Object>
+ </dsig:Signature>
+</Foo>
diff --git a/tests/merlin-exc-c14n-one/exc-signature.xml b/tests/merlin-exc-c14n-one/exc-signature.xml
new file mode 100644
index 00000000..e805940b
--- /dev/null
+++ b/tests/merlin-exc-c14n-one/exc-signature.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Foo xmlns:bar="urn:bar" xmlns="urn:foo" xml:space="preserve">
+ <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <dsig:SignedInfo>
+ <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue>7yOTjUu+9oEhShgyIIXDLjQ08aY=</dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" />
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue>09xMy0RTQM1Q91demYe/0F6AGXo=</dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" />
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue>ZQH+SkCN8c5y0feAr+aRTZDwyvY=</dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#xpointer(id('to-be-signed'))">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments">
+ <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" />
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue>a1cTqBgbqpUt6bMJN4C6zFtnoyo=</dsig:DigestValue>
+ </dsig:Reference>
+ </dsig:SignedInfo>
+ <dsig:SignatureValue>
+ Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA==
+ </dsig:SignatureValue>
+ <dsig:KeyInfo>
+ <dsig:KeyValue>
+ <dsig:DSAKeyValue>
+ <dsig:P>
+ 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB
+ nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8
+ L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E=
+ </dsig:P>
+ <dsig:Q>
+ mFf8DiMVNFXy0vag9oNGNW/g4u0=
+ </dsig:Q>
+ <dsig:G>
+ g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr
+ apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp
+ wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8=
+ </dsig:G>
+ <dsig:Y>
+ j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v
+ B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r
+ 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0=
+ </dsig:Y>
+ </dsig:DSAKeyValue>
+ </dsig:KeyValue>
+ </dsig:KeyInfo>
+ <dsig:Object Id="to-be-signed">
+ <bar:Baz>
+ <!-- comment -->
+ </bar:Baz>
+ </dsig:Object>
+ </dsig:Signature>
+</Foo>
diff --git a/tests/merlin-xmldsig-twenty-three/Readme.txt b/tests/merlin-xmldsig-twenty-three/Readme.txt
new file mode 100644
index 00000000..37e9d88f
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/Readme.txt
@@ -0,0 +1,63 @@
+Sample XML Signatures[1][2]
+
+[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
+[2] http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+
+1. A large and complex signature:
+
+This includes internal and external base 64, references of the forms
+"", "#xpointer(/)", "#foo" and "#xpointer(id('foo'))" (with and
+without comments), manifests, signature properties, simple xpath
+with here(), xslt, retrieval method and odd interreferential
+dependencies.
+
+ signature.xml - A signature
+ signature.tmpl - The template from which the signature was created
+ signature-c14n-*.txt - All intermediate c14n output
+
+2. Some basic signatures:
+
+The key for the HMAC-SHA1 signatures is "secret".getBytes("ASCII")
+which is, in hex, (73 65 63 72 65 74). No key info is provided for
+these signatures.
+
+ signature-enveloped-dsa.xml
+ signature-enveloping-b64-dsa.xml
+ signature-enveloping-dsa.xml
+ signature-enveloping-hmac-sha1-40.xml
+ signature-enveloping-hmac-sha1.xml
+ signature-enveloping-rsa.xml
+ signature-external-b64-dsa.xml
+ signature-external-dsa.xml - The signatures
+ signature-*-c14n-*.txt - The intermediate c14n output
+
+3. Varying key information:
+
+To resolve the key associated with the KeyName in `signature-keyname.xml'
+you must perform a cunning transformation from the name `Xxx' to the
+certificate that resides in the directory `certs/' that has a subject name
+containing the common name `Xxx', which happens to be in the file
+`certs/xxx.crt'.
+
+To resolve the key associated with the X509Data in `signature-x509-is.xml',
+`signature-x509-ski.xml' and `signature-x509-sn.xml' you need to resolve
+the identified certificate from those in the `certs' directory.
+
+In `signature-x509-crt-crl.xml' an X.509 CRL is present which has revoked
+the X.509 certificate used for signing. So verification should be
+qualified.
+
+ signature-keyname.xml
+ signature-retrievalmethod-rawx509crt.xml
+ signature-x509-crt-crl.xml
+ signature-x509-crt.xml
+ signature-x509-is.xml
+ signature-x509-ski.xml
+ signature-x509-sn.xml - The signatures
+ certs/*.crt - The certificates
+
+Merlin Hughes <merlin@baltimore.ie>
+Baltimore Technologies, Ltd.
+http://www.baltimore.com/
+
+Thursday, April 4, 2002
diff --git a/tests/merlin-xmldsig-twenty-three/certs/badb.der b/tests/merlin-xmldsig-twenty-three/certs/badb.der
new file mode 100644
index 00000000..2d0dec68
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/badb.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/badb.pem b/tests/merlin-xmldsig-twenty-three/certs/badb.pem
new file mode 100644
index 00000000..0221d206
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/badb.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTjCCAw6gAwIBAgIGAOz5IWdKMAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAyMjM1OTU3WhcNMTIwNDAyMjI1OTQ2WjBmMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ0wCwYDVQQDEwRCYWRi
+MIIBtjCCASsGByqGSM44BAEwggEeAoGBAISKsEonjNGgHs/uh+9YKgnwZ8Bt3T7u
+yQBJW9dxpMF0cPUXz4dFbSFY4QyW8igCLswpOa+eHHEYsWvE0Nr1lcKHUPXq7u41
+JJwHNq1RAFeZiU6wa+1FL3v1/T1rAgzepV7xS4iafz4vxdHMlfwgKfoyKfq6JU1z
+oVM/ahI5xWDDAhUAmEv6eIJrB4KN0fPRABPx3NHYclkCgYAlhuYZ/AzPta7+bE5C
+QasmSVzc8uM/e+LN7ABlEXwQRk6QfZBcX8TbePNE8ZFng4Uft/QzAOUxALET7kKA
+ek4Jeytpzc0XYCYyuGJATm4F9ZY1pAJ5yQmUmwvDYdlaZJ4ldGzO/R57Evngn/G4
+tqjjoi0sx3jq7czvDwdGHnky0AOBhAACgYATQutuLkVzLAWmxY7yUNr12h3oXy54
+Bq1CfurLlhfiraKcFqe6QB6DvfEbh+4e/GeQIPI3y+dP/zkvrbdjN6l74mCueWTI
+dyn+wrhsvHbx6sb8YiElOKE7xnM1Nv8jOgcOR1NwJinjKqPv+stIdDENExfx6Ubz
+8hrtRueuFP3b36M6MDgwDgYDVR0PAQH/BAQDAgeAMBEGA1UdDgQKBAiAtARqytE1
+qDATBgNVHSMEDDAKgAiKHFYwWjISfTAJBgcqhkjOOAQDAy8AMCwCFFKTrj8PpVIm
+Yzp9a4bruXQS6ZvQAhQ1kT4Tac5xe7Gu8fu4RlzNTm911A==
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/balor.der b/tests/merlin-xmldsig-twenty-three/certs/balor.der
new file mode 100644
index 00000000..806d59d7
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/balor.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/balor.pem b/tests/merlin-xmldsig-twenty-three/certs/balor.pem
new file mode 100644
index 00000000..edc1748a
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/balor.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTzCCAw+gAwIBAgIGAOz5IaxHMAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAzMDAwMDE1WhcNMTIwNDAyMjI1OTQ2WjBnMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ4wDAYDVQQDEwVCYWxv
+cjCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCEirBKJ4zRoB7P7ofvWCoJ8GfAbd0+
+7skASVvXcaTBdHD1F8+HRW0hWOEMlvIoAi7MKTmvnhxxGLFrxNDa9ZXCh1D16u7u
+NSScBzatUQBXmYlOsGvtRS979f09awIM3qVe8UuImn8+L8XRzJX8ICn6Min6uiVN
+c6FTP2oSOcVgwwIVAJhL+niCaweCjdHz0QAT8dzR2HJZAoGAJYbmGfwMz7Wu/mxO
+QkGrJklc3PLjP3vizewAZRF8EEZOkH2QXF/E23jzRPGRZ4OFH7f0MwDlMQCxE+5C
+gHpOCXsrac3NF2AmMrhiQE5uBfWWNaQCeckJlJsLw2HZWmSeJXRszv0eexL54J/x
+uLao46ItLMd46u3M7w8HRh55MtADgYQAAoGAbueMW9xlSwsHNyM3j1KFYeM2yUon
+KtIVOMFc4VmNFE14ldDEldIK/8072nA2fCJvWfhTTC5DOAjzvSmH8sw2cgCLuo72
+K39mC5aDx3/US5x+WwiDqYiVQbrir09mHdnjGnRRPWTjmA4AM3PBOCNi8VykODIB
+r9sgc3UAV+b8jl+jOjA4MA4GA1UdDwEB/wQEAwIHgDARBgNVHQ4ECgQIg+4EbbfC
+EBMwEwYDVR0jBAwwCoAIihxWMFoyEn0wCQYHKoZIzjgEAwMvADAsAhRDxoNOoKQC
+6qpfb4Eh4YrYxHnwnwIUZKOfYeB62qVk0Mpd4V/zHNWC360=
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/bres.pem b/tests/merlin-xmldsig-twenty-three/certs/bres.pem
new file mode 100644
index 00000000..18a0966c
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/bres.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTjCCAw6gAwIBAgIGAOz5Id5/MAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAzMDAwMDI4WhcNMTIwNDAyMjI1OTQ2WjBmMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ0wCwYDVQQDEwRCcmVz
+MIIBtjCCASsGByqGSM44BAEwggEeAoGBAISKsEonjNGgHs/uh+9YKgnwZ8Bt3T7u
+yQBJW9dxpMF0cPUXz4dFbSFY4QyW8igCLswpOa+eHHEYsWvE0Nr1lcKHUPXq7u41
+JJwHNq1RAFeZiU6wa+1FL3v1/T1rAgzepV7xS4iafz4vxdHMlfwgKfoyKfq6JU1z
+oVM/ahI5xWDDAhUAmEv6eIJrB4KN0fPRABPx3NHYclkCgYAlhuYZ/AzPta7+bE5C
+QasmSVzc8uM/e+LN7ABlEXwQRk6QfZBcX8TbePNE8ZFng4Uft/QzAOUxALET7kKA
+ek4Jeytpzc0XYCYyuGJATm4F9ZY1pAJ5yQmUmwvDYdlaZJ4ldGzO/R57Evngn/G4
+tqjjoi0sx3jq7czvDwdGHnky0AOBhAACgYBgvDFxw1U6Ou2G6P/+347Jfk2wPB1/
+atr4p3JUVLuT0ExZG6np+rKiXmcBbYKbAhMY37zVkroR9bwo+NgaJGubQ4ex5Y1X
+N2Q5gIHNhNfKr8G4LPVqWGxf/lFPDYxX3ezqBJPpJCJTREX7s6Hp/VTV2SpQlySv
++GRcFKJFPlhD9aM6MDgwDgYDVR0PAQH/BAQDAgeAMBEGA1UdDgQKBAiC+5gx0MHL
+hTATBgNVHSMEDDAKgAiKHFYwWjISfTAJBgcqhkjOOAQDAy8AMCwCFDTcM5i61uqq
+/aveERhOJ6NG/LubAhREVDtAeNbTEywXr4O7KvEEvFLUjg==
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/ca.der b/tests/merlin-xmldsig-twenty-three/certs/ca.der
new file mode 100644
index 00000000..00861d03
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/ca.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/ca.pem b/tests/merlin-xmldsig-twenty-three/certs/ca.pem
new file mode 100644
index 00000000..4e6d5766
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/ca.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAxqgAwIBAgIGAOz5ITo8MAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAyMjM1OTQ2WhcNMTIwNDAyMjI1OTQ2WjB2MQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMR0wGwYDVQQDExRBbm90
+aGVyIFRyYW5zaWVudCBDQTCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCEirBKJ4zR
+oB7P7ofvWCoJ8GfAbd0+7skASVvXcaTBdHD1F8+HRW0hWOEMlvIoAi7MKTmvnhxx
+GLFrxNDa9ZXCh1D16u7uNSScBzatUQBXmYlOsGvtRS979f09awIM3qVe8UuImn8+
+L8XRzJX8ICn6Min6uiVNc6FTP2oSOcVgwwIVAJhL+niCaweCjdHz0QAT8dzR2HJZ
+AoGAJYbmGfwMz7Wu/mxOQkGrJklc3PLjP3vizewAZRF8EEZOkH2QXF/E23jzRPGR
+Z4OFH7f0MwDlMQCxE+5CgHpOCXsrac3NF2AmMrhiQE5uBfWWNaQCeckJlJsLw2HZ
+WmSeJXRszv0eexL54J/xuLao46ItLMd46u3M7w8HRh55MtADgYQAAoGADpGA7hzl
+zqaxtr6U+w86qQmoDJhIPMGAUG65aFhGDLm410IzA30J4DYEd9gpnG7lNF+AeHQq
+rpvUN+H0CB0eSxiElFRiV+x+oYUN/p1v/mbKXb4H1+mT7XTi5G/k9Kw5e8UbNgDC
+Ij/2uewSMd5y+jkWUUUXlwYbqt5pOZZhmtejNjA0MA4GA1UdDwEB/wQEAwICBDAP
+BgNVHRMECDAGAQH/AgEAMBEGA1UdDgQKBAiKHFYwWjISfTAJBgcqhkjOOAQDAy8A
+MCwCFDI9WLFVplIMf5ta+kB2s/BHBzm9AhQTczFDTX/7sawplNpLfzu5i/g+qA==
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.der b/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.der
new file mode 100644
index 00000000..2109edfa
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.pem b/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.pem
new file mode 100644
index 00000000..049721f1
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTzCCAw6gAwIBAgIGAOz5IcSmMAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAzMDAwMDIxWhcNMTIwNDAyMjI1OTQ2WjBmMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ0wCwYDVQQDEwRMdWdo
+MIIBtjCCASsGByqGSM44BAEwggEeAoGBAISKsEonjNGgHs/uh+9YKgnwZ8Bt3T7u
+yQBJW9dxpMF0cPUXz4dFbSFY4QyW8igCLswpOa+eHHEYsWvE0Nr1lcKHUPXq7u41
+JJwHNq1RAFeZiU6wa+1FL3v1/T1rAgzepV7xS4iafz4vxdHMlfwgKfoyKfq6JU1z
+oVM/ahI5xWDDAhUAmEv6eIJrB4KN0fPRABPx3NHYclkCgYAlhuYZ/AzPta7+bE5C
+QasmSVzc8uM/e+LN7ABlEXwQRk6QfZBcX8TbePNE8ZFng4Uft/QzAOUxALET7kKA
+ek4Jeytpzc0XYCYyuGJATm4F9ZY1pAJ5yQmUmwvDYdlaZJ4ldGzO/R57Evngn/G4
+tqjjoi0sx3jq7czvDwdGHnky0AOBhAACgYBIdlgw5JS5w1C4a5zQVul03YLFTkaX
+6RxbTYsDcnb0SyegrcKQ5y7MgaeDTUVIzCe6Q1WNjvT1fLwWmygpNVUUOZKEJT3p
+kSB+8/7IrGM+IWUTxkyIwasgsmrQnV/a+CSRFVDzZQKJFzcdCfZmK0yxh2NrPMiQ
+ogOgroVjgLrlE6M6MDgwDgYDVR0PAQH/BAQDAgeAMBEGA1UdDgQKBAiMWQ6+Iv7t
+UDATBgNVHSMEDDAKgAiKHFYwWjISfTAJBgcqhkjOOAQDAzAAMC0CFQCE72yE3Jte
+0ltPp3yWpePyMp0RJgIUdB+bQ5BzY7G332mPCCH7dNa1Y0Q=
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/lugh.der b/tests/merlin-xmldsig-twenty-three/certs/lugh.der
new file mode 100644
index 00000000..3b1193ab
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/lugh.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/lugh.pem b/tests/merlin-xmldsig-twenty-three/certs/lugh.pem
new file mode 100644
index 00000000..e0d1e959
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/lugh.pem
@@ -0,0 +1,12 @@
+-----BEGIN PUBLIC KEY-----
+MIIBtjCCASsGByqGSM44BAEwggEeAoGBAISKsEonjNGgHs/uh+9YKgnwZ8Bt3T7u
+yQBJW9dxpMF0cPUXz4dFbSFY4QyW8igCLswpOa+eHHEYsWvE0Nr1lcKHUPXq7u41
+JJwHNq1RAFeZiU6wa+1FL3v1/T1rAgzepV7xS4iafz4vxdHMlfwgKfoyKfq6JU1z
+oVM/ahI5xWDDAhUAmEv6eIJrB4KN0fPRABPx3NHYclkCgYAlhuYZ/AzPta7+bE5C
+QasmSVzc8uM/e+LN7ABlEXwQRk6QfZBcX8TbePNE8ZFng4Uft/QzAOUxALET7kKA
+ek4Jeytpzc0XYCYyuGJATm4F9ZY1pAJ5yQmUmwvDYdlaZJ4ldGzO/R57Evngn/G4
+tqjjoi0sx3jq7czvDwdGHnky0AOBhAACgYBIdlgw5JS5w1C4a5zQVul03YLFTkaX
+6RxbTYsDcnb0SyegrcKQ5y7MgaeDTUVIzCe6Q1WNjvT1fLwWmygpNVUUOZKEJT3p
+kSB+8/7IrGM+IWUTxkyIwasgsmrQnV/a+CSRFVDzZQKJFzcdCfZmK0yxh2NrPMiQ
+ogOgroVjgLrlEw==
+-----END PUBLIC KEY-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/macha.der b/tests/merlin-xmldsig-twenty-three/certs/macha.der
new file mode 100644
index 00000000..484ddc26
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/macha.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/macha.pem b/tests/merlin-xmldsig-twenty-three/certs/macha.pem
new file mode 100644
index 00000000..2402a12f
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/macha.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDUDCCAw+gAwIBAgIGAOz5IXv6MAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAzMDAwMDAzWhcNMTIwNDAyMjI1OTQ2WjBnMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ4wDAYDVQQDEwVNYWNo
+YTCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCEirBKJ4zRoB7P7ofvWCoJ8GfAbd0+
+7skASVvXcaTBdHD1F8+HRW0hWOEMlvIoAi7MKTmvnhxxGLFrxNDa9ZXCh1D16u7u
+NSScBzatUQBXmYlOsGvtRS979f09awIM3qVe8UuImn8+L8XRzJX8ICn6Min6uiVN
+c6FTP2oSOcVgwwIVAJhL+niCaweCjdHz0QAT8dzR2HJZAoGAJYbmGfwMz7Wu/mxO
+QkGrJklc3PLjP3vizewAZRF8EEZOkH2QXF/E23jzRPGRZ4OFH7f0MwDlMQCxE+5C
+gHpOCXsrac3NF2AmMrhiQE5uBfWWNaQCeckJlJsLw2HZWmSeJXRszv0eexL54J/x
+uLao46ItLMd46u3M7w8HRh55MtADgYQAAoGAXenEaP4SIoG3ukTjtqT8TOKddzyb
+dd8epOpGDnPemC6hmsjkbfNDrKEdbsb9AKhb0pp2HKWxNPzPACJ65LMgrtTPY/6f
+NLxB1/o+J1dJR7nehKF9WjwDjAJJ6f9Wc4OwJP7B7DlwWzhaMMNOzmASAUU/AoeL
+WTuMfjA3O+6hm6ijOjA4MA4GA1UdDwEB/wQEAwIHgDARBgNVHQ4ECgQIizPsQXmT
+yPowEwYDVR0jBAwwCoAIihxWMFoyEn0wCQYHKoZIzjgEAwMwADAtAhUAiT4zE8AB
+6veOzVcWxkyYFwHcnFsCFDorkHKzPCnWkmpuDY39GvfKEYBA
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/merlin.der b/tests/merlin-xmldsig-twenty-three/certs/merlin.der
new file mode 100644
index 00000000..a72fc7f0
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/merlin.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/merlin.pem b/tests/merlin-xmldsig-twenty-three/certs/merlin.pem
new file mode 100644
index 00000000..7efe8e08
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/merlin.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+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==
+-----END CERTIFICATE-----
+
diff --git a/tests/merlin-xmldsig-twenty-three/certs/morigu.pem b/tests/merlin-xmldsig-twenty-three/certs/morigu.pem
new file mode 100644
index 00000000..c1fd6eb5
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/morigu.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDUDCCAxCgAwIBAgIGAOz5IVHTMAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAyMjM1OTUyWhcNMTIwNDAyMjI1OTQ2WjBoMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZNb3Jp
+Z3UwggG2MIIBKwYHKoZIzjgEATCCAR4CgYEAhIqwSieM0aAez+6H71gqCfBnwG3d
+Pu7JAElb13GkwXRw9RfPh0VtIVjhDJbyKAIuzCk5r54ccRixa8TQ2vWVwodQ9eru
+7jUknAc2rVEAV5mJTrBr7UUve/X9PWsCDN6lXvFLiJp/Pi/F0cyV/CAp+jIp+rol
+TXOhUz9qEjnFYMMCFQCYS/p4gmsHgo3R89EAE/Hc0dhyWQKBgCWG5hn8DM+1rv5s
+TkJBqyZJXNzy4z974s3sAGURfBBGTpB9kFxfxNt480TxkWeDhR+39DMA5TEAsRPu
+QoB6Tgl7K2nNzRdgJjK4YkBObgX1ljWkAnnJCZSbC8Nh2VpkniV0bM79HnsS+eCf
+8bi2qOOiLSzHeOrtzO8PB0YeeTLQA4GEAAKBgH1NBJ9Az5TwY4tDE0dPYVHHABt+
+yLspnT3k9G6YWUMFhZ/+3RuqEPjnKrPfUoXTTJGIACgPU3/PkqwrPVD0JMdpOcnZ
+LHiJ/P7QRQeMwDRoBrs7genB1bDd4pSJrEUcjrkA5uRrIj2Z5fL+UuLiLGPO2rM7
+BNQRIq3QFPdX++NuozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIK7Ljjh
++EsfMBMGA1UdIwQMMAqACIocVjBaMhJ9MAkGByqGSM44BAMDLwAwLAIUEJJCOHw8
+ppxoRyz3s+Vmb4NKIfMCFDgJoZn9zh/3WoYNBURODwLvyBOy
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/certs/nemain.der b/tests/merlin-xmldsig-twenty-three/certs/nemain.der
new file mode 100644
index 00000000..f4b62ae6
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/nemain.der
Binary files differ
diff --git a/tests/merlin-xmldsig-twenty-three/certs/nemain.pem b/tests/merlin-xmldsig-twenty-three/certs/nemain.pem
new file mode 100644
index 00000000..b681a5c2
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/certs/nemain.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDUDCCAxCgAwIBAgIGAOz5IZDHMAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+c2llbnQgQ0EwHhcNMDIwNDAzMDAwMDA4WhcNMTIwNDAyMjI1OTQ2WjBoMQswCQYD
+VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZOZW1h
+aW4wggG2MIIBKwYHKoZIzjgEATCCAR4CgYEAhIqwSieM0aAez+6H71gqCfBnwG3d
+Pu7JAElb13GkwXRw9RfPh0VtIVjhDJbyKAIuzCk5r54ccRixa8TQ2vWVwodQ9eru
+7jUknAc2rVEAV5mJTrBr7UUve/X9PWsCDN6lXvFLiJp/Pi/F0cyV/CAp+jIp+rol
+TXOhUz9qEjnFYMMCFQCYS/p4gmsHgo3R89EAE/Hc0dhyWQKBgCWG5hn8DM+1rv5s
+TkJBqyZJXNzy4z974s3sAGURfBBGTpB9kFxfxNt480TxkWeDhR+39DMA5TEAsRPu
+QoB6Tgl7K2nNzRdgJjK4YkBObgX1ljWkAnnJCZSbC8Nh2VpkniV0bM79HnsS+eCf
+8bi2qOOiLSzHeOrtzO8PB0YeeTLQA4GEAAKBgHzbc/0aTzXwKKeT85kjCq2HD4WY
+nZC9DOck02gNhNbEgN+wGeUPDSQM/vhmxVeoK3ptVA/sU8arBW8V+AdrU/9hJr0v
+nEiqgt9WQLHUhnMJiXTMLcS7XHeIVcwh/iRjD61HUp1cby9UMHZRsW6Ys8rUi0Zn
+/1KrtpTwZJuNwsYIozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIX9dMSn
+0pyIMBMGA1UdIwQMMAqACIocVjBaMhJ9MAkGByqGSM44BAMDLwAwLAIUFRYkL6qD
+NZWtKU03+WYBiGEGSoECFEtRGI19WHg+sT9fBfGKfo8NnJX4
+-----END CERTIFICATE-----
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.tmpl b/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.tmpl
new file mode 100644
index 00000000..853fbf69
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Envelope xmlns="http://example.org/envelope">
+ <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/2000/09/xmldsig#enveloped-signature" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ </KeyValue>
+ </KeyInfo>
+ </Signature>
+</Envelope>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml b/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml
new file mode 100644
index 00000000..f5ff1f50
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Envelope xmlns="http://example.org/envelope">
+ <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/2000/09/xmldsig#enveloped-signature" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>fdy6S2NLpnT4fMdokUHSHsmpcvo=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ Z4pBb+o+XOKWME7CpLyXuNqyIYdXOcGvthfUf+ZDLL5immPx+3tK8Q==
+ </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>
+ </KeyInfo>
+ </Signature>
+</Envelope>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.tmpl b/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.tmpl
new file mode 100644
index 00000000..5ca8d504
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.tmpl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="#object">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <Object Id="object">c29tZSB0ZXh0</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml b/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml
new file mode 100644
index 00000000..4e924b0e
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="#object">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>N6pjx3OY2VRHMmLhoAV8HmMu2nc=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ KgAeq8e0yUNfFz+mFlZ3QgyQNMciV+Z3BoDQDvQNker7pazEnJmOIA==
+ </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>
+ </KeyInfo>
+ <Object Id="object">c29tZSB0ZXh0</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.tmpl b/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.tmpl
new file mode 100644
index 00000000..555fc8b1
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.tmpl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml b/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml
new file mode 100644
index 00000000..488ac261
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ PfD92lkxKgc2OKvF4p0ba6cJj6d1eqIDx5Q1hvVYTviotje23Snunw==
+ </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>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.tmpl b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.tmpl
new file mode 100644
index 00000000..1057b61c
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml
new file mode 100644
index 00000000..d654c536
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1">
+ <HMACOutputLength>80</HMACOutputLength>
+ </SignatureMethod>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ xjqFz/yYQRTOrw==
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.tmpl b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.tmpl
new file mode 100644
index 00000000..2b310a6d
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.tmpl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml
new file mode 100644
index 00000000..c0c8343a
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#hmac-sha1" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ JElPttIT4Am7Q+MNoMyv+WDfAZw=
+ </SignatureValue>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.tmpl b/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.tmpl
new file mode 100644
index 00000000..edc7c7e9
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.tmpl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml b/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml
new file mode 100644
index 00000000..1580d838
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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#rsa-sha1" />
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ ov3HOoPN0w71N3DdGNhN+dSzQm6NJFUB5qGKRp9Q986nVzMb8wCIVxCQu+x3vMtq
+ p4/R3KEcPtEJSaoR+thGq++GPIh2mZXyWJs3xHy9P4xmoTVwli7/l7s8ebDSmnbZ
+ 7xZU4Iy1BSMZSxGKnRG+Z/0GJIfTz8jhH6wCe3l03L4=
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ <RSAKeyValue>
+ <Modulus>
+ q07hpxA5DGFfvJFZueFl/LI85XxQxrvqgVugL25V090A9MrlLBg5PmAsxFTe+G6a
+ xvWJQwYOVHj/nuiCnNLa9a7uAtPFiTtW+v5H3wlLaY3ws4atRBNOQlYkIBp38sTf
+ QBkk4i8PEU1GQ2M0CLIJq4/2Akfv1wxzSQ9+8oWkArc=
+ </Modulus>
+ <Exponent>
+ AQAB
+ </Exponent>
+ </RSAKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.tmpl b/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.tmpl
new file mode 100644
index 00000000..be723e01
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/Signature/2002/04/xml-stylesheet.b64">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ </KeyValue>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml b/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml
new file mode 100644
index 00000000..1fb56630
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/Signature/2002/04/xml-stylesheet.b64">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ IhOlAjMFaZtkEju5R5bi528h1HpDa4A21sudZynhJRRLjZuQIHZ3eQ==
+ </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>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-external-dsa.tmpl b/tests/merlin-xmldsig-twenty-three/signature-external-dsa.tmpl
new file mode 100644
index 00000000..7b9ab4cc
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-external-dsa.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ </KeyValue>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-external-dsa.xml b/tests/merlin-xmldsig-twenty-three/signature-external-dsa.xml
new file mode 100644
index 00000000..34d3e6a8
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-external-dsa.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ LaL1/t/XodYvDJDgSEbq47GX8ltnlx3FFURdi7o+UFVi+zLf0WyWaQ==
+ </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>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-keyname.tmpl b/tests/merlin-xmldsig-twenty-three/signature-keyname.tmpl
new file mode 100644
index 00000000..9059e282
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-keyname.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <KeyName></KeyName>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-keyname.xml b/tests/merlin-xmldsig-twenty-three/signature-keyname.xml
new file mode 100644
index 00000000..a7c60a3d
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-keyname.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ JkJ3GplEU0iDbqSv7ZOXhvv3zeM1KmP+CLphhoc+NPYqpGYQiW6O6w==
+ </SignatureValue>
+ <KeyInfo>
+ <KeyName>Lugh</KeyName>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.tmpl b/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.tmpl
new file mode 100644
index 00000000..11d69cfd
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.tmpl
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#rawX509Certificate" URI="tests/keys/dsacert.der" />
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml b/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml
new file mode 100644
index 00000000..30620184
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ SNB5FI193RFXoG2j8Z9bXWgW7BMPICqNob4Hjh08oou4tkhGxz4+pg==
+ </SignatureValue>
+ <KeyInfo>
+ <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#rawX509Certificate" URI="tests/merlin-xmldsig-twenty-three/certs/balor.der" />
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.tmpl b/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.tmpl
new file mode 100644
index 00000000..8c2e6692
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml b/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml
new file mode 100644
index 00000000..fe01797e
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ WF6EaX66f8CdGE6NafmzdLpb/1OVYX4kBNsqgGIqHR5JZAu4HpbVQQ==
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509Certificate>
+ MIIDTjCCAw6gAwIBAgIGAOz5Id5/MAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+ c2llbnQgQ0EwHhcNMDIwNDAzMDAwMDI4WhcNMTIwNDAyMjI1OTQ2WjBmMQswCQYD
+ VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+ aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ0wCwYDVQQDEwRCcmVz
+ MIIBtjCCASsGByqGSM44BAEwggEeAoGBAISKsEonjNGgHs/uh+9YKgnwZ8Bt3T7u
+ yQBJW9dxpMF0cPUXz4dFbSFY4QyW8igCLswpOa+eHHEYsWvE0Nr1lcKHUPXq7u41
+ JJwHNq1RAFeZiU6wa+1FL3v1/T1rAgzepV7xS4iafz4vxdHMlfwgKfoyKfq6JU1z
+ oVM/ahI5xWDDAhUAmEv6eIJrB4KN0fPRABPx3NHYclkCgYAlhuYZ/AzPta7+bE5C
+ QasmSVzc8uM/e+LN7ABlEXwQRk6QfZBcX8TbePNE8ZFng4Uft/QzAOUxALET7kKA
+ ek4Jeytpzc0XYCYyuGJATm4F9ZY1pAJ5yQmUmwvDYdlaZJ4ldGzO/R57Evngn/G4
+ tqjjoi0sx3jq7czvDwdGHnky0AOBhAACgYBgvDFxw1U6Ou2G6P/+347Jfk2wPB1/
+ atr4p3JUVLuT0ExZG6np+rKiXmcBbYKbAhMY37zVkroR9bwo+NgaJGubQ4ex5Y1X
+ N2Q5gIHNhNfKr8G4LPVqWGxf/lFPDYxX3ezqBJPpJCJTREX7s6Hp/VTV2SpQlySv
+ +GRcFKJFPlhD9aM6MDgwDgYDVR0PAQH/BAQDAgeAMBEGA1UdDgQKBAiC+5gx0MHL
+ hTATBgNVHSMEDDAKgAiKHFYwWjISfTAJBgcqhkjOOAQDAy8AMCwCFDTcM5i61uqq
+ /aveERhOJ6NG/LubAhREVDtAeNbTEywXr4O7KvEEvFLUjg==
+ </X509Certificate>
+ <X509CRL>
+ MIIBJDCB5AIBATAJBgcqhkjOOAQDMHYxCzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZE
+ dWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9sb2dpZXMgTHRkLjERMA8G
+ A1UECxMIWC9TZWN1cmUxHTAbBgNVBAMTFEFub3RoZXIgVHJhbnNpZW50IENBFw0w
+ MjA0MDQwMjE2NThaFw0xMTA0MDIwMjE2NThaMBkwFwIGAOz5Id5/Fw0wMjA0MDQw
+ MjE2NThaoCMwITATBgNVHSMEDDAKgAiKHFYwWjISfTAKBgNVHRQEAwIBADAJBgcq
+ hkjOOAQDAzAAMC0CFCEIm38fvGzSJHms284hUs9dNB8nAhUAjEtZr0TGgc6sVRVk
+ krEgltdo7Jw=
+ </X509CRL>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-crt.tmpl b/tests/merlin-xmldsig-twenty-three/signature-x509-crt.tmpl
new file mode 100644
index 00000000..8c2e6692
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-crt.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-crt.xml b/tests/merlin-xmldsig-twenty-three/signature-x509-crt.xml
new file mode 100644
index 00000000..2048fd27
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-crt.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ GCQVmBq+1H7e9IjvKfe+egLM1Jlp3L1JCGkl9SlJ0eaDh2MKYUUnHA==
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509Certificate>
+ MIIDUDCCAxCgAwIBAgIGAOz5IVHTMAkGByqGSM44BAMwdjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEdMBsGA1UEAxMUQW5vdGhlciBUcmFu
+ c2llbnQgQ0EwHhcNMDIwNDAyMjM1OTUyWhcNMTIwNDAyMjI1OTQ2WjBoMQswCQYD
+ VQQGEwJJRTEPMA0GA1UECBMGRHVibGluMSQwIgYDVQQKExtCYWx0aW1vcmUgVGVj
+ aG5vbG9naWVzIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZNb3Jp
+ Z3UwggG2MIIBKwYHKoZIzjgEATCCAR4CgYEAhIqwSieM0aAez+6H71gqCfBnwG3d
+ Pu7JAElb13GkwXRw9RfPh0VtIVjhDJbyKAIuzCk5r54ccRixa8TQ2vWVwodQ9eru
+ 7jUknAc2rVEAV5mJTrBr7UUve/X9PWsCDN6lXvFLiJp/Pi/F0cyV/CAp+jIp+rol
+ TXOhUz9qEjnFYMMCFQCYS/p4gmsHgo3R89EAE/Hc0dhyWQKBgCWG5hn8DM+1rv5s
+ TkJBqyZJXNzy4z974s3sAGURfBBGTpB9kFxfxNt480TxkWeDhR+39DMA5TEAsRPu
+ QoB6Tgl7K2nNzRdgJjK4YkBObgX1ljWkAnnJCZSbC8Nh2VpkniV0bM79HnsS+eCf
+ 8bi2qOOiLSzHeOrtzO8PB0YeeTLQA4GEAAKBgH1NBJ9Az5TwY4tDE0dPYVHHABt+
+ yLspnT3k9G6YWUMFhZ/+3RuqEPjnKrPfUoXTTJGIACgPU3/PkqwrPVD0JMdpOcnZ
+ LHiJ/P7QRQeMwDRoBrs7genB1bDd4pSJrEUcjrkA5uRrIj2Z5fL+UuLiLGPO2rM7
+ BNQRIq3QFPdX++NuozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIK7Ljjh
+ +EsfMBMGA1UdIwQMMAqACIocVjBaMhJ9MAkGByqGSM44BAMDLwAwLAIUEJJCOHw8
+ ppxoRyz3s+Vmb4NKIfMCFDgJoZn9zh/3WoYNBURODwLvyBOy
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-is.tmpl b/tests/merlin-xmldsig-twenty-three/signature-x509-is.tmpl
new file mode 100644
index 00000000..8c2e6692
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-is.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-is.xml b/tests/merlin-xmldsig-twenty-three/signature-x509-is.xml
new file mode 100644
index 00000000..b7a01f85
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-is.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ bmKMy/w1DO9dHA6E7Dt0B8IFkYAj1/UD3TqcdqIcfkMT7evE8+NBgg==
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509IssuerSerial>
+ <X509IssuerName>
+ CN=Another Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE
+ </X509IssuerName>
+ <X509SerialNumber>1017792003066</X509SerialNumber>
+ </X509IssuerSerial>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-ski.tmpl b/tests/merlin-xmldsig-twenty-three/signature-x509-ski.tmpl
new file mode 100644
index 00000000..8c2e6692
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-ski.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-ski.xml b/tests/merlin-xmldsig-twenty-three/signature-x509-ski.xml
new file mode 100644
index 00000000..c71bfce5
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-ski.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ F9nEU1Us48iKTml8n7E4wt7HtFJ5gaLIgox0J9WbujGndW0oQJbeGg==
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509SKI>
+ hf10xKfSnIg=
+ </X509SKI>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-sn.tmpl b/tests/merlin-xmldsig-twenty-three/signature-x509-sn.tmpl
new file mode 100644
index 00000000..8c2e6692
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-sn.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature-x509-sn.xml b/tests/merlin-xmldsig-twenty-three/signature-x509-sn.xml
new file mode 100644
index 00000000..d5b08088
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature-x509-sn.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ MUOjiqG0dbjvR6+qYYPL85nKSt2FeZGQBQkYudv48KyJhJLG1Bp+bA==
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data>
+ <X509SubjectName>
+ CN=Badb,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE
+ </X509SubjectName>
+ </X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmldsig-twenty-three/signature.tmpl b/tests/merlin-xmldsig-twenty-three/signature.tmpl
new file mode 100644
index 00000000..ebd2bc2a
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature.tmpl
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Envelope [
+ <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
+ <!ENTITY c14n 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>
+ <!ENTITY xpath 'http://www.w3.org/TR/1999/REC-xpath-19991116'>
+ <!ENTITY xslt 'http://www.w3.org/TR/1999/REC-xslt-19991116'>
+ <!ATTLIST Notaries Id ID #IMPLIED>
+]>
+<!-- Preamble -->
+<Envelope xmlns:foo="http://example.org/foo" xmlns="http://example.org/usps">
+ <DearSir>foo</DearSir>
+ <Body>bar</Body>
+ <YoursSincerely>
+ <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="signature">
+ <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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="http://www.w3.org/Signature/2002/04/xml-stylesheet.b64">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-1">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+ self::text()
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-2">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties" URI="#signature-properties-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="">
+ <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>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="#xpointer(/)">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="#xpointer(/)">
+ <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>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3">
+ <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>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))">
+ <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>
+ <Reference Id="reference-1" URI="#manifest-reference-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Id="reference-2" URI="#reference-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="#reference-2">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ ancestor-or-self::dsig:SignedInfo
+ and
+ count(ancestor-or-self::dsig:Reference |
+ here()/ancestor::dsig:Reference[1]) &gt;
+ count(ancestor-or-self::dsig:Reference)
+ or
+ count(ancestor-or-self::node() |
+ id('notaries')) =
+ count(ancestor-or-self::node())
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#X509Data" URI="#object-4">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ ancestor-or-self::dsig:X509Data
+ </XPath>
+ </Transform>
+ </Transforms>
+ </RetrievalMethod>
+ </KeyInfo>
+ <Object Id="object-1" MimeType="text/plain">I am the text.</Object>
+ <Object Encoding="http://www.w3.org/2000/09/xmldsig#base64" Id="object-2" MimeType="text/plain">SSBhbSB0aGUgdGV4dC4=</Object>
+ <Object Id="object-3">
+ <NonCommentandus xmlns=""><!-- Commentandum --></NonCommentandus>
+ </Object>
+ <Object>
+ <Manifest Id="manifest-1">
+ <Reference Id="manifest-reference-1" URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="#reference-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ <Reference URI="#notaries">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" exclude-result-prefixes="foo" version="1.0">
+ <xsl:output encoding="UTF-8" indent="no" method="xml" />
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>Notaries</title>
+ </head>
+ <body>
+ <table>
+ <xsl:for-each select="Notaries/Notary">
+ <tr>
+ <th>
+ <xsl:value-of select="@name" />
+ </th>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+ </xsl:template>
+ </xsl:stylesheet>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </Manifest>
+ </Object>
+ <Object>
+ <SignatureProperties Id="signature-properties-1">
+ <SignatureProperty Target="#signature">
+ <SignerAddress xmlns="urn:demo"><IP>192.168.21.138</IP></SignerAddress>
+ </SignatureProperty>
+ </SignatureProperties>
+ </Object>
+ <Object Id="object-4">
+ <X509Data>
+ <X509Certificate>
+MIIEdDCCBB6gAwIBAgIJANaOuOCRgiz5MA0GCSqGSIb3DQEBBQUAMIHIMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEqMCgG
+A1UECxMhVGVzdCBTZWNvbmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wHhcNMDUwNzEwMDIzMTU5WhcNMTUwNzA4MDIzMTU5WjCBxzELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBM
+aWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAnBgNVBAsT
+IFRlc3QgVGhpcmQgTGV2ZWwgRFNBIENlcnRpZmljYXRlMRYwFAYDVQQDEw1BbGVr
+c2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb20wgfAw
+gagGByqGSM44BAEwgZwCQQDIMfw6P79Fcw0hrxYKq3ePh7wmevc95UjfF2JHQJBX
+Jb9XFBa5LRy71lzh/OYMH4oh4giiFVRVBCW9HpZqOTNJAhUAlEOrmqjJG3tfjU49
+XjJuM3AXNskCQAUzwzmbp53bZ+bzDcOU6UGh3Ig/TFdLGXYevs3tiZaFLa//EYF+
+l5Tdsr3NQpGRRf4arXvXPZyIJhYYHJVk7OMDQwACQDonSDDJk3VaIfdVHPnOitRq
+V5XPFfMDksNb0WelnZdl/qokl9eaU+8uiH7LtsU0QYX9lE8kTplcUdD0bxjDYJ2j
+ggFTMIIBTzAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdl
+bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpVifKXAtGkJHRAParmenuvcp
+ZT4wgfEGA1UdIwSB6TCB5oAU/uTsUyTwlZXHELXhRLVdOWVa436hgcKkgb8wgbwx
+CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwg
+U2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMp
+MR4wHAYDVQQLExVUZXN0IFJvb3QgQ2VydGlmaWNhdGUxFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJANaO
+uOCRgiz4MA0GCSqGSIb3DQEBBQUAA0EAJB9Kc4/Z0hTwiDYR5fXVPyzAjD+BeChR
+F14ztWl1Ol6REWFRbIGfEz3XDgCHCiocM8ExXi7zn26R072cdBz7+w==
+ </X509Certificate>
+ </X509Data>
+ </Object>
+ </Signature>
+ </YoursSincerely>
+ <PostScript>bar</PostScript>
+ <Notaries xmlns="" Id="notaries">
+ <Notary name="Great, A. T." />
+ <Notary name="Hun, A. T." />
+ </Notaries>
+ <!-- Commentary -->
+</Envelope>
+<!-- Postamble -->
diff --git a/tests/merlin-xmldsig-twenty-three/signature.xml b/tests/merlin-xmldsig-twenty-three/signature.xml
new file mode 100644
index 00000000..504fbe11
--- /dev/null
+++ b/tests/merlin-xmldsig-twenty-three/signature.xml
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Envelope [
+ <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
+ <!ENTITY c14n 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>
+ <!ENTITY xpath 'http://www.w3.org/TR/1999/REC-xpath-19991116'>
+ <!ENTITY xslt 'http://www.w3.org/TR/1999/REC-xslt-19991116'>
+ <!ATTLIST Notaries Id ID #IMPLIED>
+]>
+<!-- Preamble -->
+<Envelope xmlns:foo="http://example.org/foo" xmlns="http://example.org/usps">
+ <DearSir>foo</DearSir>
+ <Body>bar</Body>
+ <YoursSincerely>
+ <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="signature">
+ <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="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ <Reference URI="http://www.w3.org/Signature/2002/04/xml-stylesheet.b64">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-1">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath>
+ self::text()
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ ancestor-or-self::dsig:SignedInfo
+ and
+ count(ancestor-or-self::dsig:Reference |
+ here()/ancestor::dsig:Reference[1]) &gt;
+ count(ancestor-or-self::dsig:Reference)
+ or
+ count(ancestor-or-self::node() |
+ id('notaries')) =
+ count(ancestor-or-self::node())
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>tQiE3GUKiBenPyp3J0Ei6rJMFv4=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-2">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>qg4HFwsN+/WX32uH85WlJU9l45k=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties" URI="#signature-properties-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>ETlEI3y7hvvAtMe9wQSz7LhbHEE=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>J/O0HhdaPXxx49fgGWMESL09GpA=</DigestValue>
+ </Reference>
+ <Reference URI="">
+ <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>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>J/O0HhdaPXxx49fgGWMESL09GpA=</DigestValue>
+ </Reference>
+ <Reference URI="#xpointer(/)">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>J/O0HhdaPXxx49fgGWMESL09GpA=</DigestValue>
+ </Reference>
+ <Reference URI="#xpointer(/)">
+ <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>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>MkL9CX8yeABBth1RChyPx58Ls8w=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yamSIokKmjA3hB/s3Fu07wDO3vM=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3">
+ <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>yamSIokKmjA3hB/s3Fu07wDO3vM=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>yamSIokKmjA3hB/s3Fu07wDO3vM=</DigestValue>
+ </Reference>
+ <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))">
+ <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>419CYgyTWOTGYGBhzieWklNf7Bk=</DigestValue>
+ </Reference>
+ <Reference URI="#reference-2">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>VzK45P9Ksjqq5oXlKQpkGgB2CNY=</DigestValue>
+ </Reference>
+ <Reference Id="reference-1" URI="#manifest-reference-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>7/9fR+NIDz9owc1Lfsxu1JBr8uo=</DigestValue>
+ </Reference>
+ <Reference Id="reference-2" URI="#reference-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>qURlo3LSq4TWQtygBZJ0iXQ9E14=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ WvZUJAJ/3QNqzQvwne2vvy7U5Pck8ZZ5UTa6pIwR7GE+PoGi6A1kyw==
+ </SignatureValue>
+ <KeyInfo>
+ <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#X509Data" URI="#object-4">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ ancestor-or-self::dsig:X509Data
+ </XPath>
+ </Transform>
+ </Transforms>
+ </RetrievalMethod>
+ </KeyInfo>
+ <Object Id="object-1" MimeType="text/plain">I am the text.</Object>
+ <Object Encoding="http://www.w3.org/2000/09/xmldsig#base64" Id="object-2" MimeType="text/plain">SSBhbSB0aGUgdGV4dC4=</Object>
+ <Object Id="object-3">
+ <NonCommentandus xmlns=""><!-- Commentandum --></NonCommentandus>
+ </Object>
+ <Object>
+ <Manifest Id="manifest-1">
+ <Reference Id="manifest-reference-1" URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ <Reference URI="#reference-1">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>qURlo3LSq4TWQtygBZJ0iXQ9E14=</DigestValue>
+ </Reference>
+ <Reference URI="#notaries">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" exclude-result-prefixes="foo" version="1.0">
+ <xsl:output encoding="UTF-8" indent="no" method="xml" />
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>Notaries</title>
+ </head>
+ <body>
+ <table>
+ <xsl:for-each select="Notaries/Notary">
+ <tr>
+ <th>
+ <xsl:value-of select="@name" />
+ </th>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+ </xsl:template>
+ </xsl:stylesheet>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>c7wq5XKos6RqNVJyFy7/fl6+sAs=</DigestValue>
+ </Reference>
+ </Manifest>
+ </Object>
+ <Object>
+ <SignatureProperties Id="signature-properties-1">
+ <SignatureProperty Target="#signature">
+ <SignerAddress xmlns="urn:demo"><IP>192.168.21.138</IP></SignerAddress>
+ </SignatureProperty>
+ </SignatureProperties>
+ </Object>
+ <Object Id="object-4">
+ <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>
+ </Object>
+ </Signature>
+ </YoursSincerely>
+ <PostScript>bar</PostScript>
+ <Notaries xmlns="" Id="notaries">
+ <Notary name="Great, A. T." />
+ <Notary name="Hun, A. T." />
+ </Notaries>
+ <!-- Commentary -->
+</Envelope>
+<!-- Postamble -->
diff --git a/tests/merlin-xmlenc-five/Readme.txt b/tests/merlin-xmlenc-five/Readme.txt
new file mode 100644
index 00000000..3a663b7c
--- /dev/null
+++ b/tests/merlin-xmlenc-five/Readme.txt
@@ -0,0 +1,117 @@
+Example Signatures[1] using Encryption[2] key information and
+Additional Security URIs[3], Encrypted Data[2] and Decryption
+Transform[4]
+
+[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
+[2] http://www.w3.org/Encryption/2001/Drafts/xmlenc-core/
+[3] http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt
+[4] http://www.w3.org/TR/xmlenc-decrypt
+
+***
+Some of these signature are WITHOUT cryptographic merit;
+for example, key transport of an HMAC key is meaningless.
+These are provided solely for testing purposes.
+***
+
+Private keys necessary for performing the verification
+and decryption are provided in the PKCS#12 file ids.p12,
+encrypted under the pass phrase "Our Little Secret". I
+may have done some of the ASN.1 encoding in this P12
+incorrectly; I hope not. Private keys are also available
+in PKCS#8 encoding; rsa.p8, dh1.p8.
+
+RSA/OAEP is presently poorly defined; I assume MGF1/SHA-1.
+
+Secret keys are identified by key name as follows:
+
+ Key Name | Algorithm | Key Value
+----------+-----------+-----------
+ bob | 3des | "abcdefghijklmnopqrstuvwx".getBytes ("ASCII")
+ job | aes-128 | "abcdefghijklmnop".getBytes ("ASCII")
+ jeb | aes-192 | "abcdefghijklmnopqrstuvwx".getBytes ("ASCII")
+ jed | aes-256 | "abcdefghijklmnopqrstuvwxyz012345".getBytes ("ASCII")
+
+. encrypt-content-aes128-cbc-kw-aes192.xml
+. encrypt-content-aes192-cbc-dh-sha512.xml
+. encrypt-content-tripledes-cbc.xml
+. encrypt-data-aes128-cbc.xml
+. encrypt-data-aes192-cbc-kw-aes256.xml
+. encrypt-data-aes256-cbc-kw-tripledes.xml
+. encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml
+. encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml
+. encrypt-element-aes128-cbc-rsa-1_5.xml
+. encrypt-element-aes192-cbc-ref.xml
+. encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml
+. encrypt-element-tripledes-cbc-kw-aes128.xml
+ Encrypted content, element and data. RSA private key has
+ friendly name "RSA" in the P12, and is rsa.p8.
+ DH private key has ID "DH1", and is dh1.p8.
+
+. encrypt-content-aes256-cbc-prop.xml
+ Contains a useless EncryptionProperty.
+
+. encrypt-element-aes256-cbc-carried-kw-aes256.xml
+ External EncryptedKey contains a CarriedKeyName which
+ is referenced by a KeyName in the EncryptedData; the
+ key for Recipient "someone else" is not for you; the
+ key for Recipient "you" is.
+
+. encrypt-element-aes256-cbc-retrieved-kw-aes256.xml
+ External EncryptedKey is identified by a RetrievalMethod
+ in the EncryptedData.
+
+. decryption-transform.xml
+ Decryption transform.
+
+. decryption-transform-except.xml
+ Decryption transform with Except.
+
+All signatures are performed with nontruncated HMAC
+algorithms.
+
+For debugging purposes, where chosen, the MAC key is
+"abcdefghijklmnopqrstuvwxyz012345".getBytes ("ASCII"). Where
+agreed, it has length equal to the HMAC output length; e.g., 256
+bits for HMAC/SHA-256.
+
+. encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml
+ RIPEMD-160 message digest; HMAC/RIPEMD-160 key is wrapped
+ using triple DES. The decryption key is from the above table,
+ identified by the key name "bob".
+
+. encsig-sha256-hmac-sha256-kw-aes128.xml
+ SHA-256 message digest; HMAC/SHA-256 key is wrapped using
+ AES-128. The decryption key is from the above table, identified
+ by the key name "job".
+
+. encsig-sha384-hmac-sha384-kw-aes192.xml
+ SHA-384 message digest; HMAC/SHA-384 key is wrapped using
+ AES-192. The decryption key is from the above table, identified
+ by the key name "jeb".
+
+. encsig-sha512-hmac-sha512-kw-aes256.xml
+ SHA-512 message digest; HMAC/SHA-512 key is wrapped using
+ AES-256. The decryption key is from the above table, identified
+ by the key name "jed".
+
+. encsig-hmac-sha256-rsa-1_5.xml
+ HMAC/SHA-256 keys is transported using RSA/OAEP. Your private
+ key has friendly name "RSA" in the P12.
+
+. encsig-hmac-sha256-rsa-oaep-mgf1p.xml
+ HMAC/SHA-256 keys is transported using RSA/PKCS#1. Your private
+ key has friendly name "RSA" in the P12.
+
+. encsig-hmac-sha256-dh.xml
+ HMAC/SHA-256 key is agreed using Diffie Hellman. Your private
+ key has friendly name "DH1" in the P12.
+
+. encsig-hmac-sha256-kw-tripledes-dh.xml
+ HMAC/SHA-256 key is wrapped using triple DES. The decryption
+ key is agreed using Diffie Hellman. Your private key has
+ friendly name "DH1" in the P12.
+
+Merlin Hughes <merlin@baltimore.ie>
+Baltimore Technologies, Ltd.
+
+Monday, March 4, 2002
diff --git a/tests/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml b/tests/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml
new file mode 100644
index 00000000..74eec57f
--- /dev/null
+++ b/tests/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jeb</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ JbjZH7Mq564oMybpvCHWYM/5ER3eFsAV
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ YDYTxR+smxZDSVoXXEp3n6HzTgWqV7ZlG6I1lmEv7zLGZBF/o7eqe5QGT6L3DPNW
+ geflA8vVJHxwliixWcvHCnNKQkx+Sw8YbIknCQyr4mqtXEmHhsie5XYTEyqgKLVP
+ YdNXf56wLUTMEmBqq7cto9OrYcBWkrDcQQvHmDkHuG+Nom4m+623GsB0FNts6VyN
+ sdGMwo4K0bEFReLL04l6It+cgLJ2q+LKdBoMQL59IAQmrwi0bkiqee2cLlDuGyQ1
+ KD9IQ1qtlJpvQujN4xNVWT00UjtWxmpSMID/Kue/AnXn7Cf8zw1ZZQitgh8uWOX2
+ uMy99F2YlxqIK1r+MeXHuZDNf75S8dFaKIKtHMf7ioA=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/decryption-transform-except.xml b/tests/merlin-xmlenc-five/decryption-transform-except.xml
new file mode 100644
index 00000000..bdd22516
--- /dev/null
+++ b/tests/merlin-xmlenc-five/decryption-transform-except.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ cX6lnfgmvWuxyiQgNhzAq1lYggW2M5GziFgNBQju3xcnDqlzf5LSjeyBnbL0Q7ws
+ 8XhySFCrdwIi5mVxyfdFkVrTlzQQ0viaqTDgi9PQRgZMOImGGWij3wbmf9XseHHt
+ 6q8V7LPjMFQAnsLDQgKf4gzzOnhtKf15GfTEpGvUnNn2dLDxw+hDcD1N54/bjSQs
+ uTiL7PgGQ5g4u4eaXRRLWeAGsIf5QgdQG3GLiOZIX1LJ5bREKgXeKrtJJI97xUX3
+ 3vaF+tKRcSFBFIMjFrw271bFj4vvvQZfSS6xX+BKXHOUu8C4NH9Le8pA9o4NgCB8
+ tWA8W3iI5/BGEZve0Me9byvPHYjRXlbG+YqysVTmzfw=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-1">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <CipherData>
+ <CipherValue>
+ x3aR5pJ5pepFFH5ENv61pZG4pVwNKaM+H9oyY4qG6d8l/C0J1iGv6c8dyLp0YQ2k
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </PaymentInfo>
+ <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/2000/09/xmldsig#enveloped-signature" />
+ <Transform Algorithm="http://www.w3.org/2001/04/decrypt#">
+ <Except xmlns="http://www.w3.org/2001/04/decrypt#" URI="#encrypt-data-1" />
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+ <DigestValue>5Oe9qba6preOZG1NZAYK2/6pu9RCon9vRJ9hVLDpeng=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ LuHrz9+WG7/c4Q81tFboNZg2cktWbZcRfp08XrmgKy1GDm9xSfTYCA==
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ <DSAKeyValue>
+ <P>
+ imup6lmki4rAmUstKb/xdBRMWNtQ+pDN97ZnLA9X3lKbkEHtYFyjQ3uActgVSJ75
+ iVRuKxz4Cb5RzVm25EaKmKq8rif1MtBIi6jjDJxmIdNaEKG9zVTf9giJx1N9I0t3
+ oh1fAVZDSrzKzJGQ2WvDfIfFHdJMtB3C0VKGmLZR7Xk=
+ </P>
+ <Q>
+ xDve3j7sEnh4rIzM5gK+5/gxxFU=
+ </Q>
+ <G>
+ NLugAf6IZJxo3BCOi5yrGEVwtlEzXcnndXhd0Tz38CnQKc4SEupm4PyP5TmLvK64
+ TDfOD7sno/W5oI1KZdimfW2c4r/6waNzZSvicMOWhLYY621Nn6njBc8VNwoxWpzC
+ XhKm70b8+D4YZMn/eU5DN8dvhTv/bNK21FfJqjp033U=
+ </G>
+ <Y>
+ W7dOmH/vWqocVCiqaxj6soxVXfR8XpMdY2Zv4Amjr3n81geyOLb6IZ+l7MUbdp85
+ 29DQzuoVTthVpB9X4JKCprZIzifOTM1PFflTBzjx7egJwJWAIVdWyiIPjke6Va+w
+ uV2n4Rl/cgCvrXK5cTov5C/Bpaf6o+qrrDGFBLLZTF4=
+ </Y>
+ </DSAKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ </Signature>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/decryption-transform.xml b/tests/merlin-xmlenc-five/decryption-transform.xml
new file mode 100644
index 00000000..50d68b34
--- /dev/null
+++ b/tests/merlin-xmlenc-five/decryption-transform.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ SE3HkQevYxzuN9LoMH3QIYHK0X7DBlobhiTbRucgKcTKt9DsUJIcd6JZV6lrw/4x
+ YICyq6YM73IWpibspxgz/0chhvWem9sYZvWTuTtZgHzeY0Uri6bpXqBEn1YT0K6B
+ chwfv1myfp91EmdPHU+shH6ZEyYkHJUMss58iIawIuVsIfpCO7xDKgfs/glnN3os
+ epY0KvAMZSnwUAf42fQ3TlahLTR+B52AmdodwaCwQlwQwrC7RH0FtNiiLQA9SA2t
+ //StKWcyHjswUCejfKLdjv6bK+WmBxmnNWtmI9DYkjJ6V5pYU1MVw+JG410O+gaa
+ fnNWxlWa+BGwcTaz+KNrP8bIqli8IoJJgxXIUqfb734=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </PaymentInfo>
+ <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/2000/09/xmldsig#enveloped-signature" />
+ <Transform Algorithm="http://www.w3.org/2001/04/decrypt#" />
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+ <DigestValue>wSvPYqTcpLfX2mKXibtsmm7FDu8N+/BObM0+bGaeXhk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ O0VYUdslJ8t2EURD0T/v2nNrFQMo42vzvfAhooZrDbkuLbCj6/Hxmw==
+ </SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ <DSAKeyValue>
+ <P>
+ imup6lmki4rAmUstKb/xdBRMWNtQ+pDN97ZnLA9X3lKbkEHtYFyjQ3uActgVSJ75
+ iVRuKxz4Cb5RzVm25EaKmKq8rif1MtBIi6jjDJxmIdNaEKG9zVTf9giJx1N9I0t3
+ oh1fAVZDSrzKzJGQ2WvDfIfFHdJMtB3C0VKGmLZR7Xk=
+ </P>
+ <Q>
+ xDve3j7sEnh4rIzM5gK+5/gxxFU=
+ </Q>
+ <G>
+ NLugAf6IZJxo3BCOi5yrGEVwtlEzXcnndXhd0Tz38CnQKc4SEupm4PyP5TmLvK64
+ TDfOD7sno/W5oI1KZdimfW2c4r/6waNzZSvicMOWhLYY621Nn6njBc8VNwoxWpzC
+ XhKm70b8+D4YZMn/eU5DN8dvhTv/bNK21FfJqjp033U=
+ </G>
+ <Y>
+ W7dOmH/vWqocVCiqaxj6soxVXfR8XpMdY2Zv4Amjr3n81geyOLb6IZ+l7MUbdp85
+ 29DQzuoVTthVpB9X4JKCprZIzifOTM1PFflTBzjx7egJwJWAIVdWyiIPjke6Va+w
+ uV2n4Rl/cgCvrXK5cTov5C/Bpaf6o+qrrDGFBLLZTF4=
+ </Y>
+ </DSAKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ </Signature>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/dh0.p8 b/tests/merlin-xmlenc-five/dh0.p8
new file mode 100644
index 00000000..86bf4ce3
--- /dev/null
+++ b/tests/merlin-xmlenc-five/dh0.p8
Binary files differ
diff --git a/tests/merlin-xmlenc-five/dh1.p8 b/tests/merlin-xmlenc-five/dh1.p8
new file mode 100644
index 00000000..86bf4ce3
--- /dev/null
+++ b/tests/merlin-xmlenc-five/dh1.p8
Binary files differ
diff --git a/tests/merlin-xmlenc-five/dsa.p8 b/tests/merlin-xmlenc-five/dsa.p8
new file mode 100644
index 00000000..95b240fc
--- /dev/null
+++ b/tests/merlin-xmlenc-five/dsa.p8
Binary files differ
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data b/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data
new file mode 100644
index 00000000..a42179d6
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.tmpl b/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.tmpl
new file mode 100644
index 00000000..bb6f3d71
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jeb</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml b/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml
new file mode 100644
index 00000000..3553bf4a
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jeb</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ IbjZH7Mq564oMybpvCHWYM/5ER3eFsAV
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ YDYTxR+smxZDSVoXXEp3n6HzTgWqV7ZlG6I1lmEv7zLGZBF/o7eqe5QGT6L3DPNW
+ geflA8vVJHxwliixWcvHCnNKQkx+Sw8YbIknCQyr4mqtXEmHhsie5XYTEyqgKLVP
+ YdNXf56wLUTMEmBqq7cto9OrYcBWkrDcQQvHmDkHuG+Nom4m+623GsB0FNts6VyN
+ sdGMwo4K0bEFReLL04l6It+cgLJ2q+LKdBoMQL59IAQmrwi0bkiqee2cLlDuGyQ1
+ KD9IQ1qtlJpvQujN4xNVWT00UjtWxmpSMID/Kue/AnXn7Cf8zw1ZZQitgh8uWOX2
+ uMy99F2YlxqIK1r+MeXHuZDNf75S8dFaKIKtHMf7ioA=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml b/tests/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml
new file mode 100644
index 00000000..d1242784
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>
+ bm9uY2U=
+ </KA-Nonce>
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+ <OriginatorKeyInfo>
+ <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <P>
+ plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8
+ 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE
+ whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8=
+ </P>
+ <Q>
+ 9jJXQijNovoq6QUBFcEUYwUvyTM=
+ </Q>
+ <Generator>
+ PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d
+ lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY
+ 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0=
+ </Generator>
+ <Public>
+ Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r
+ NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt
+ m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM=
+ </Public>
+ </DHKeyValue>
+ </KeyValue>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl
+ czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC
+ wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn
+ m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp
+ oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI
+ cU0=
+ </X509Certificate>
+ </X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1
+ aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb
+ VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7
+ wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H
+ orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2
+ Yos=
+ </X509Certificate>
+ </X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 5jIlxXZGhx8vUNbL0ZvdRry6mPapX8qLYlDgy3tE6nRbnBRWACviYQAXBqvDfn1R
+ TKmBWZ5NoJobM8lXWOk2nNQIuSQojcFYRuvcWU7DffDVX7dUCAVRJp6PS/5V1IHR
+ JJ2WBagWSW1lFW9mqjfe0ZflEZGYI3/5kUYQIpbMvEuXoF8129VGiKalZsCVTRxd
+ /IsdT8x/7L57GlGq0OzCMI5zG3QrBV7wUOoqBu5SxS8QUvUPucH8hsD4Bq4BwVEa
+ GlUVAj7H3HYYo7fviTO4i2lTMunGW9rcJVnKXjDM/Mds3oM4zbBo/Ao3m3rmpUUz
+ AwSe6ofh6ML418+cyCaRUoVQOlG+VwkHEKUiYYGhsKY=
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data b/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data
new file mode 100644
index 00000000..2997c127
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo Id="Payment">
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.tmpl b/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.tmpl
new file mode 100644
index 00000000..2cdca95e
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.tmpl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ <EncryptionProperties>
+ <EncryptionProperty Target="#encrypt-data-0">
+ <Certification xmlns="urn:example:prop">
+ certifiable
+ </Certification>
+ </EncryptionProperty>
+ </EncryptionProperties>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml b/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml
new file mode 100644
index 00000000..ea87af6d
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo Id="Payment">
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ H8n1OuEJFyUgUguDFF6ml8nRbA0IaDYgmtGelWT4V7CSz9q/AvtfxyMzUH+tQZ+F
+ jyXh3otR1+V1+8EsevzEq5nUmNKl+wyxQmWaUvbvXpSwAJnlJdyvnP56JiXUBS+p
+ C2KzlO9kk8l6awtuRd9Z6eVjngwTf7kNprmu5Bv0o+x7dcq96G8wGLvMThbs4uxk
+ iIDK5+qGBzzIlFw3GG82MKmnVBveQw3LD52y76yBtoayuAJFJMnrXa0OEAaBRSI2
+ fjPNGJV3sCyKZDHqGlsQ4X+VvXzevLbBLkFy1xH9/zoUXo8cEaTvsIOBYu/Xn/CJ
+ y/dpe/dvOqqji+9vFccAyrBHxHeYSonuFsxfpSDVC6Y=
+ </CipherValue>
+ </CipherData>
+ <EncryptionProperties>
+ <EncryptionProperty Target="#encrypt-data-0">
+ <Certification xmlns="urn:example:prop">
+ certifiable
+ </Certification>
+ </EncryptionProperty>
+ </EncryptionProperties>
+ </EncryptedData>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data b/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data
new file mode 100644
index 00000000..2997c127
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo Id="Payment">
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.tmpl b/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.tmpl
new file mode 100644
index 00000000..3428cbf9
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml b/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml
new file mode 100644
index 00000000..90e13446
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo Id="Payment">
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ uchJT2QyzQe7BoBaDYKPR5BDgEW8jsJ3UOGEYz9EVrBKVztYfcu0xhif5Y9kqtyx
+ DDa7woNcTyhwQDZh9jGr5hzkcjrsKfMjJw+PnKNZzc+KMW0z861L8sdhdl8TA+bt
+ yudfaCEJaH4RdHABp+VMzL5CrXr5skvubolWs1KzUtqbRekkxucknzJmnqRY8yPp
+ 4iBvVuvus+Bk0pj271NWu13CmHvdJRMMDSX30JMfsecW6mfdF5xjoFciL8VnemzJ
+ qt0SUVjMzoeY0PnCdk09Ej2OZdj8AtkLPCEKeiBBD+coCf5F8WaLrPTRPgjoAtiN
+ Wda+McaZPJje1IfoAKGTcg==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.data b/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.data
new file mode 100644
index 00000000..9d04ac31
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.data
@@ -0,0 +1 @@
+top secret message
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.tmpl b/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.tmpl
new file mode 100644
index 00000000..86a074f3
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.tmpl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>job</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml b/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml
new file mode 100644
index 00000000..8ae0a064
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>job</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ QMpxhXq1DtBeyC9KfSaMQWrEtefe+e935gF/x62spvmL6IW0XeS0W4Kk31OgWzN0
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data b/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data
new file mode 100644
index 00000000..9d04ac31
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data
@@ -0,0 +1 @@
+top secret message
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.tmpl b/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.tmpl
new file mode 100644
index 00000000..95dd1dde
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml b/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml
new file mode 100644
index 00000000..55ccb1e7
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 4AAgyi3M7xNdBimbQZKdGJLn3/cS4Yv8QKuA01+gUnY=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 50lv94d/DFJirJXYOUXaBlrO+7gIXpx8cqH+G2xvE4mueoIxmGs8RH7FBXwjuMgf
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data b/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data
new file mode 100644
index 00000000..9d04ac31
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data
@@ -0,0 +1 @@
+top secret message
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.tmpl b/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.tmpl
new file mode 100644
index 00000000..ad6f4b62
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml b/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml
new file mode 100644
index 00000000..14e2b922
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ ZyJbVsjRM4MEsswwwHz57aUz1eMqZHuEIoEPGS47CcmLvhuCtlzWZ9S/WcVJZIpz
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ Lp2ZWyJERT05icmHvWWbEtCCfmB2jvSlSclhS0oj3A3PU90aE6v+bFFQxrHw7VUd
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml
new file mode 100644
index 00000000..c9c30e09
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+ <OAEPparams>
+ MTIzNDU2Nzg=
+ </OAEPparams>
+ </EncryptionMethod>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Data>
+ <X509Certificate>
+ MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu
+ dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI
+ dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ
+ 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ
+ McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz
+ a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV
+ HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF
+ BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA
+ TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c
+ 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w=
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 1SVctZA/RB6vVjsu5NYTxowdvsViJJ1skDXX09RmNU3YlCuPpSqWWhCU5u5ILfr9
+ 6AFcascXbdFyEZ9tjDhK8Nid2MEqkR/Mc9zFHf7mPMnO7C8bRggkjjdILSIF/Ft7
+ FXzm/DFP50IF3zPe/n5jy2Nk8uRvTmKUDcnoV6qnUgY=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ QOImekuU44UeCmVaMma9bCT5h5a6mWXDSndTB81jvHw=
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data
new file mode 100644
index 00000000..9d04ac31
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data
@@ -0,0 +1 @@
+top secret message
diff --git a/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl
new file mode 100644
index 00000000..7818502a
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ </EncryptionMethod>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml
new file mode 100644
index 00000000..29daa4ea
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ </EncryptionMethod>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Data>
+ <X509Certificate>
+ MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu
+ dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI
+ dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ
+ 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ
+ McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz
+ a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV
+ HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF
+ BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA
+ TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c
+ 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w=
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ S5SqVG+QxxpCNWobuqQFAI6db1pTEpWNMQXQVJAPjlfmvnVmTtq5v6fgMA2l/r7M
+ iX7gUPZthrKezkSavDfi057cK6YKpC5/KACXjNJvUoaVXj/aXpcoMOO+ZTPq36eo
+ pyeW99DWYgCbY88Kf9R3r3QMx/ogwjScfRVJTRZL3Lo=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ HG02AxNyn4iA9NH5x+PQ9lgPNzTkljThotXWKz0UYrE=
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data b/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data
new file mode 100644
index 00000000..7c83b3e2
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PurchaseOrder Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po" Id="Purchase">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.tmpl b/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.tmpl
new file mode 100644
index 00000000..40ac2e32
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.tmpl
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+</EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml b/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml
new file mode 100644
index 00000000..9d74e16c
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PurchaseOrder Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po" Id="Purchase">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Data>
+ <X509Certificate>
+ MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu
+ dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI
+ dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ
+ 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ
+ McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz
+ a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV
+ HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF
+ BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA
+ TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c
+ 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w=
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ heZshNX5m7arS3OmR72+8WNCMMpznxE41dLWkgd6XJpzl+IN2xuijAf4YPEjjJmZ
+ nt9PlO3/hiHl0Cvpg5vMR6AhvL49BvCz9JCeMG6x3MHBiKbRNhyEq2rX7o1GdJhC
+ 5cm35Q/ZDKV9DHG8jWmPcOb8yKU9NYo2LJKDb3YHOJY=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 0wkECpTy60/FDwbVM4zgd9qJVjR4h0q4PLm5pyyIxAuhbEh0art03yEikmbWBt2H
+ 7qOk2G9iufUdwwqNPuZV5Qw5Rg2FMvTx234lDERGn5p+hhjOTcss5JF9QDzgdiec
+ KABX3vbCESi/f3uwQ8BYDT+6SnxTR+xtcNv5xhbUCIFk/TaenSWx6p6fntTwTl1e
+ lpwnI0EtM1yf4a9tBiH9PNd36BUv2rvSi4cZvJqSB3ZKvGtuwwyRzOzlzl259d1u
+ QuoYysTBEAHw/WIop8eAexU9PUv7UbTkQAQag1yStda+GepVdpXEpu4hcxXQcvfs
+ 9AQgkAgh4JKrnY4Bhz2B/e4CHHfbEedDOi+FVYlZuLn0CzrKMnM+1nUmqxJVWHz7
+ hytidpuqNRw3gcMkYvgH6g==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.data b/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.data
new file mode 100644
index 00000000..ae9a6e58
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.data
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+ <CipherValue xmlns="http://www.example.org/repository" Id="example1">
+ zih1MFU6Px1m2U1lSEIV9LUIsnb3SIWBfRHlRrOWKFFFcVvXiE6z3nCbkNYMuy1T
+ nPwXDd9/BkOGiPuFT2jixN7Zowe2ANK1dZXKVjZ1+ACx+Kg17U+EMPEuq481OW7e
+ wm0vnbur0L2lCXb4DP7c6sotV89W53v2MlaYqWHhlBO/zasqwhl6q/c/L/GdPUHH
+ ovKZ+24ZWYktxCLEXMslIAysQ0UFBLolrtC/7XDgYY9s4UvbedgeqbrdnxQ4LiRn
+ L+aKN1bnKF3KlWKCJFvVrRESriGPBfpasWA/A1LOK333a8LaOlS7RFamflfICk+t
+ VqCspVnIs6vBBtrGLI5SsJS+rh1r42jI/h/ivELUOmUq1sZCFQvEhx7AiHi4/9SY
+ LWcR4w3ZH3aqFL/XtAzKYQ==
+ </CipherValue>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml b/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml
new file mode 100644
index 00000000..2c8da0d8
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jeb</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherReference URI="">
+ <Transforms>
+ <Transform xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <XPath xmlns:rep="http://www.example.org/repository">self::text()[parent::rep:CipherValue[@Id="example1"]]</XPath>
+ </Transform>
+ <Transform xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#base64" />
+ </Transforms>
+ </CipherReference>
+ </CipherData>
+ </EncryptedData>
+ <CipherValue xmlns="http://www.example.org/repository" Id="example1">
+ zih1MFU6Px1m2U1lSEIV9LUIsnb3SIWBfRHlRrOWKFFFcVvXiE6z3nCbkNYMuy1T
+ nPwXDd9/BkOGiPuFT2jixN7Zowe2ANK1dZXKVjZ1+ACx+Kg17U+EMPEuq481OW7e
+ wm0vnbur0L2lCXb4DP7c6sotV89W53v2MlaYqWHhlBO/zasqwhl6q/c/L/GdPUHH
+ ovKZ+24ZWYktxCLEXMslIAysQ0UFBLolrtC/7XDgYY9s4UvbedgeqbrdnxQ4LiRn
+ L+aKN1bnKF3KlWKCJFvVrRESriGPBfpasWA/A1LOK333a8LaOlS7RFamflfICk+t
+ VqCspVnIs6vBBtrGLI5SsJS+rh1r42jI/h/ivELUOmUq1sZCFQvEhx7AiHi4/9SY
+ LWcR4w3ZH3aqFL/XtAzKYQ==
+ </CipherValue>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml
new file mode 100644
index 00000000..3594a7f4
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>Foo Key</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ pdDtiyd7XQ/BFEEN0PMJuHnLUfCY+bJlsW+q04OiKSPnRd4/dS1tjaTfj5dPpGXe
+ cY3fJvRsq9QP1CJiwyEC/EQ1zSLbzwOtZ+NtxtsFgYvPBJ9t86ZcXIjlErQ85z3L
+ wnb8rSHpE9tu4tJ1rjgf2i6NCbdFnSMXLSDgLEs48+gkX0cJCmKxzRaSE4cV0OSl
+ hBWND4EYzX1M679VlSYrI0de+lSPO3Vx+y/TuZ5Vo+uu9+YP+ce0LRkx2BicjjsP
+ QO9sp+yjHPNDIV1Z7VHsDIWqqmBaNQo3GuzF5WzWgaXTKnPv/IgUQn+1t3EtgHyb
+ JhnfR/1em16z/Zaf9Uy1Lfd//yfEJ9BCjqwe1UjwN6ytu1v2BHd+8bVjD2o+Dg8V
+ 7ayOLlkWOTOLvtJMPOXPqw==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Recipient="someone else">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>ned</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ EWlIkFPGrkeW4cyjWSznLVoClVh/OEC7Klya9d9o7R6wll6JswZb2w==
+ </CipherValue>
+ </CipherData>
+ <CarriedKeyName>Foo Key</CarriedKeyName>
+ </EncryptedKey>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Recipient="you">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ bsL63D0hPN6EOyzdgfEmKsAAvoJiGM+Wp9a9KZM92IKdl7s3YSntRg==
+ </CipherValue>
+ </CipherData>
+ <CarriedKeyName>Foo Key</CarriedKeyName>
+ </EncryptedKey>
+ </KeyInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml
new file mode 100644
index 00000000..5fb336ac
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>
+ bm9uY2U=
+ </KA-Nonce>
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160" />
+ <OriginatorKeyInfo>
+ <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <P>
+ plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8
+ 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE
+ whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8=
+ </P>
+ <Q>
+ 9jJXQijNovoq6QUBFcEUYwUvyTM=
+ </Q>
+ <Generator>
+ PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d
+ lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY
+ 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0=
+ </Generator>
+ <Public>
+ Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r
+ NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt
+ m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM=
+ </Public>
+ </DHKeyValue>
+ </KeyValue>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl
+ czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC
+ wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn
+ m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp
+ oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI
+ cU0=
+ </X509Certificate>
+ </X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1
+ aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb
+ VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7
+ wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H
+ orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2
+ Yos=
+ </X509Certificate>
+ </X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ qKWnCxVIlNvPEqBMxhCaY6z9NK0ZFCmRef1U5wbIMPaR/g2Zdw7VZg==
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ betMfG/VMLdwNGdkspCrJSo092PltInklQisKd8ImQgeFMzjn73OpXhK0KJtB9IB
+ 1xGjENZ8Yzu625ehhCZGGFK4mp8DkIE7Sfw7O+5UEqprE/cGrWL0bbcz0U7X2Evh
+ 4/9va6h+DHAzmVYW7bqsa0WkiHkELRq44ORdSzyPUIwpGUCsOWyThsYfIn4uhIHQ
+ NJVTKPRHTb5H5lsxNtobSeXACSYAHk/BmJM99h4IQ9Gh7bCkhkmZsIvo/lNOW+6r
+ xtvLqHfYw9XhJe7hL0Q5EluMCBZQJ/Vx2r5lTXzBeonlurpzNdRa+ClKSVRUwKYH
+ Vjemr/o+Y4e4r8gD3TVP3auVuUCmi3XLpj4WjOsPDcekzZUgXA/xuJ+7jHXjOEOK
+ RViMiwIk0cqOa6s0Qg63EQ==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.data b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.data
new file mode 100644
index 00000000..0d6bb44c
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.data
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST EncryptedKey Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-key-0">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256"/>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ bsL63D0hPN6EOyzdgfEmKsAAvoJiGM+Wp9a9KZM92IKdl7s3YSntRg==
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml
new file mode 100644
index 00000000..a08f51f3
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST EncryptedKey Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <RetrievalMethod Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey" URI="#encrypt-key-0" />
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ cudR6Hg0xqhrOjbvQz4C/WOdHbcB7Duc+xFxbObkfkW6jXweDOf8Tq87FPbj5bby
+ oCLbWqq3ap/zx/gN8Xv3Fj6fYUz3dIb1wzXy7B0/3me7i4fBHyGropflLi7iEag2
+ WU7aGJ0CA9/jQr6Td2qhH0CDU47QN9eK/PVMPPfLX1D1A90uK32wPn+SCysE58Q3
+ rCi7Jwo+OsrxT0qqjP82T3FjVi0i/dsnPb5GQWLE3/y7OsIuknuMRO4mWma+bO/m
+ aAN9JNeom5Kn3IKHCK2+kyx+LsGo2daKxF7RF9QqlaA/imsMS4trRjZjYhgfgm96
+ kb1l4AI7VZcfRXwYdzLqKNHty6ZxbSQBMeEca0mEuIbor7IH34641a/BuFME/BLm
+ MoVaLUCE0rg1e1U0S18UCg==
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-key-0">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ bsL63D0hPN6EOyzdgfEmKsAAvoJiGM+Wp9a9KZM92IKdl7s3YSntRg==
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data b/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data
new file mode 100644
index 00000000..a42179d6
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005"/>
+ </CreditCard>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.tmpl b/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.tmpl
new file mode 100644
index 00000000..eb5105c7
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.tmpl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>job</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
diff --git a/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml b/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml
new file mode 100644
index 00000000..6aca9d99
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE test [
+<!ATTLIST PaymentInfo Id ID #IMPLIED>
+]>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>job</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ dV45TUpJbidb9iKa34xj1WVtTZ036cnqvym2TBJWR5c=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ bmExbDyrUQtsGjNBU7TRpMhOC76O/wBDWVMQML43lWNP0xp7QwVPce1XdbB4AVUn
+ xxAuJh18jOd9UzPTzrJHrKWvsWP8Xp1m/HL3A1XhOUe+MEcFyJB9fXazhDmyaSYU
+ SvieaPXcpzKWiHhZE8RKUyAYw9nU9wf2SEUgCVRuRPfsrXg4Uyr83VTn84LPe9sL
+ dd2hMj4jhgHL86b7PTYBWdtrYXq0Jwzptuw+TZ1C706BAZDYNAiSTdx3J17Ey3ex
+ IeIFBBIq8D8Gp7XiH4UxiDB6rtA2czox6+FCvaIsrGFaaw9XdzvhiZ3HxYROjprz
+ qiXcJlZzG6j8yRdpHSjsDkN3w7XjEgRODieGx110rBytZcwtqb0zc6JTZH5DzoJy
+ </CipherValue>
+ </CipherData>
+ </EncryptedData>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml b/tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml
new file mode 100644
index 00000000..a69d9361
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ 255LFQdP+eAK2aeuuLnz10pmaw4WEYb6TZa3B6H4z8c=
+ </SignatureValue>
+ <KeyInfo>
+ <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>
+ bm9uY2U=
+ </KA-Nonce>
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+ <OriginatorKeyInfo>
+ <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <P>
+ plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8
+ 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE
+ whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8=
+ </P>
+ <Q>
+ 9jJXQijNovoq6QUBFcEUYwUvyTM=
+ </Q>
+ <Generator>
+ PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d
+ lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY
+ 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0=
+ </Generator>
+ <Public>
+ Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r
+ NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt
+ m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM=
+ </Public>
+ </DHKeyValue>
+ </KeyValue>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl
+ czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC
+ wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn
+ m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp
+ oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI
+ cU0=
+ </X509Certificate>
+ </X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1
+ aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb
+ VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7
+ wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H
+ orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2
+ Yos=
+ </X509Certificate>
+ </X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml b/tests/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml
new file mode 100644
index 00000000..79ef3f12
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ 9XBpYbFplNqqF7U/QtCHYE20U7oIxcyCr0L19MlenNo=
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh">
+ <KA-Nonce>
+ bm9uY2U=
+ </KA-Nonce>
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+ <OriginatorKeyInfo>
+ <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <P>
+ plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8
+ 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE
+ whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8=
+ </P>
+ <Q>
+ 9jJXQijNovoq6QUBFcEUYwUvyTM=
+ </Q>
+ <Generator>
+ PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d
+ lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY
+ 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0=
+ </Generator>
+ <Public>
+ Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r
+ NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt
+ m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM=
+ </Public>
+ </DHKeyValue>
+ </KeyValue>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl
+ czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC
+ wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn
+ m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp
+ oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI
+ cU0=
+ </X509Certificate>
+ </X509Data>
+ </OriginatorKeyInfo>
+ <RecipientKeyInfo>
+ <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Certificate>
+ MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB
+ MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx
+ DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll
+ cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1
+ aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw
+ Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H
+ DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j
+ T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c
+ JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE
+ n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA
+ 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx
+ qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB
+ Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb
+ VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7
+ wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H
+ orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR
+ BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE
+ AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2
+ Yos=
+ </X509Certificate>
+ </X509Data>
+ </RecipientKeyInfo>
+ </AgreementMethod>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 2s+2ji8opL0SLKziiyNZ+mZ8Ibfu7cTwe4C0MmyarYDwGmsiRSqff8trHUwa+njZ
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml b/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml
new file mode 100644
index 00000000..ecc29878
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ 9XBpYbFplNqqF7U/QtCHYE20U7oIxcyCr0L19MlenNo=
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Data>
+ <X509Certificate>
+ MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu
+ dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI
+ dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ
+ 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ
+ McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz
+ a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV
+ HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF
+ BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA
+ TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c
+ 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w=
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ BRhPOKN/KLCih2Q2RoxQiaV0s1FfpOM+kisl9MwRSPow5CyX91rBVfoWpP/Qq1T3
+ Rj/f0gVoJyE008uLic4X/S4spnudlOzTkVB6bUzoBt4j+z4hEq/cIfHqVdEJ+lN0
+ iu1sJk3k6ESl22OWEqQB7Rl5sAdhFPOqXsnLUNWmqA8=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml b/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml
new file mode 100644
index 00000000..1779093a
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ 9XBpYbFplNqqF7U/QtCHYE20U7oIxcyCr0L19MlenNo=
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
+ <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <OAEPparams>
+ MTIzNDU2Nzg=
+ </OAEPparams>
+ </EncryptionMethod>
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <X509Data>
+ <X509Certificate>
+ MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu
+ dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT
+ AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s
+ b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI
+ dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ
+ 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ
+ McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz
+ a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV
+ HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF
+ BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA
+ TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c
+ 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w=
+ </X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ NGIOL9UzhGwPYvVzbBxOGzxXfTIkzIsmtNSkWA03p64aS41vVA0sKWvcr/79Nf7T
+ 6RdA61TmwOKa5GDUYRumEadC7Z0zKFDKcuN78iJzlj2WwVqr5vBx14X2BSVW+de1
+ UTmXRZFRosFOk9etvD7Lm1V+kqIxqSrod68G8gJvGrY=
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl b/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl
new file mode 100644
index 00000000..3d78bb37
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-ripemd160" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160" />
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml b/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml
new file mode 100644
index 00000000..532800bb
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-ripemd160" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160" />
+ <DigestValue>ixv9ZpIiqEzBC3Uztm5Rl6tXd9Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ kwV4uELL96oFm8/+VGzq+xAOgUg=
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ gHMpx5iF7+KXtNHLasZrkcLHn8Ti4rxUjCIRK+IcgbQir6FUsQ/uxQ3o8enEMWq1
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml b/tests/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml
new file mode 100644
index 00000000..535510c7
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha256" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+ <DigestValue>eI1OLVStn6Z4q7Byq8XGUJ4bce1LMSlanI6o+SvYzt0=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ cOQGJE3d3fXi1BIfdvr1v6tz/4lt9xGznfyDPXEvc4Q=
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>job</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ rPnY/XoSGCbuwy7vpslf29rs9dbvSCmGFOjEs3LT6g/qyZjfDA+2fQ==
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml b/tests/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml
new file mode 100644
index 00000000..836aba22
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha384" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384" />
+ <DigestValue>bWetGDV3M5oEiecfEHILQxVQRa1XgdY37VH8eWi9yVVx7Rr7UNhk+v6Jk7sMNPoA</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ iEjhOJoKiwsOBduxHj7bxILSsl6TLhNO3w/vlRcw9RZAe24HIxLRfhj4Xqsz1Orr
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jeb</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ 19D633XVohP6UJvaVRAhJek+ahtM3gOiVs6nZyAasDEb+WCUQOcWZw==
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml b/tests/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml
new file mode 100644
index 00000000..9adfafd8
--- /dev/null
+++ b/tests/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/2001/04/xmldsig-more#hmac-sha512" />
+ <Reference URI="http://www.w3.org/TR/xml-stylesheet">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
+ <DigestValue>c8+KT9+qCSbNpdZm7/dp9Mv/lgF51ATycY0Ttz/0bw2p5nvnmeEgQpIPw5HhVJ9Ku6dDf0RKVVR/CsYvPGfnEg==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ zB8ZUo9bQxzxnxW2aZ217eu//1e5xHB6RlfEOFOlx1l5PIhadKAlQo0z1D9B2HVU
+ Kj4StSnlUsrvDo2BxgiAoA==
+ </SignatureValue>
+ <KeyInfo>
+ <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" />
+ <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ </KeyInfo>
+ <CipherData>
+ <CipherValue>
+ tPCC89jQShB+WDINCdRfKgf8wTlAx8xRXD73RmEHPBfix8zS1N82KQ==
+ </CipherValue>
+ </CipherData>
+ </EncryptedKey>
+ </KeyInfo>
+</Signature>
diff --git a/tests/merlin-xmlenc-five/ids.p12 b/tests/merlin-xmlenc-five/ids.p12
new file mode 100644
index 00000000..e659a4b6
--- /dev/null
+++ b/tests/merlin-xmlenc-five/ids.p12
Binary files differ
diff --git a/tests/merlin-xmlenc-five/keys.xml b/tests/merlin-xmlenc-five/keys.xml
new file mode 100644
index 00000000..9a8c0154
--- /dev/null
+++ b/tests/merlin-xmlenc-five/keys.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<Keys xmlns="http://www.aleksey.com/xmlsec/2002" >
+
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>bob</KeyName>
+ <KeyValue>
+ <DESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
+ </DESKeyValue>
+ </KeyValue>
+</KeyInfo>
+
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jed</KeyName>
+ <KeyValue>
+ <AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU=
+ </AESKeyValue>
+ </KeyValue>
+</KeyInfo>
+
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>job</KeyName>
+ <KeyValue>
+ <AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ YWJjZGVmZ2hpamtsbW5vcA==
+ </AESKeyValue>
+ </KeyValue>
+</KeyInfo>
+
+<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <KeyName>jeb</KeyName>
+ <KeyValue>
+ <AESKeyValue xmlns="http://www.aleksey.com/xmlsec/2002">
+ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
+ </AESKeyValue>
+ </KeyValue>
+</KeyInfo>
+
+
+
+</Keys>
diff --git a/tests/merlin-xmlenc-five/plaintext.xml b/tests/merlin-xmlenc-five/plaintext.xml
new file mode 100644
index 00000000..26907987
--- /dev/null
+++ b/tests/merlin-xmlenc-five/plaintext.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PurchaseOrder xmlns="urn:example:po">
+ <Items>
+ <Item Code="001-001-001" Quantity="1">
+ spade
+ </Item>
+ <Item Code="001-001-002" Quantity="1">
+ shovel
+ </Item>
+ </Items>
+ <ShippingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </ShippingAddress>
+ <PaymentInfo>
+ <BillingAddress>
+ Dig PLC, 1 First Ave, Dublin 1, Ireland
+ </BillingAddress>
+ <CreditCard Type="Amex">
+ <Name>Foo B Baz</Name>
+ <Number>1234 567890 12345</Number>
+ <Expires Month="1" Year="2005" />
+ </CreditCard>
+ </PaymentInfo>
+</PurchaseOrder>
diff --git a/tests/merlin-xmlenc-five/rsa.p8 b/tests/merlin-xmlenc-five/rsa.p8
new file mode 100644
index 00000000..df70c742
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsa.p8
Binary files differ
diff --git a/tests/merlin-xmlenc-five/rsapriv.der b/tests/merlin-xmlenc-five/rsapriv.der
new file mode 100644
index 00000000..53642680
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsapriv.der
Binary files differ
diff --git a/tests/merlin-xmlenc-five/rsapriv.p12 b/tests/merlin-xmlenc-five/rsapriv.p12
new file mode 100644
index 00000000..bc6838b3
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsapriv.p12
Binary files differ
diff --git a/tests/merlin-xmlenc-five/rsapriv.p8-der b/tests/merlin-xmlenc-five/rsapriv.p8-der
new file mode 100644
index 00000000..66cb1c79
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsapriv.p8-der
Binary files differ
diff --git a/tests/merlin-xmlenc-five/rsapriv.p8-pem b/tests/merlin-xmlenc-five/rsapriv.p8-pem
new file mode 100644
index 00000000..e16c4252
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsapriv.p8-pem
@@ -0,0 +1,17 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICoTAbBgkqhkiG9w0BBQMwDgQI7pCqxlSm0uoCAggABIICgKiSM7d9ApczPWn9
+/+K9P4zFx/nER+vtY/XZKvzKOmu5j4kq7CvNTP4LWXsg95LBEuMQO+0I5PpNeM1w
+WxzqHHoCdv2OY/1yUkU5dzU5buBq442kUYT86jIXTPxJ0zhqc057jpSvo5dF2m+E
+FPG/h5YIqtnI6esQppODOSm+zBuCFNBrsXWvAs/ao64FKgw3rXtlySeuA4Ulqv6D
+MkkO8SOqGeB7of7jlAGB6fGCitMOPXS6YYK79mbKx6KTawBpLCKUYJM4/CJiqbTq
+eSfzSUC28r84uRGwIqtQvf3n0KmffaOTsUinV7Pgyne/rmzd1jNOYk9lqWfyCAQk
+S/QX966F7sWtIroHLYAVkOSwCXQp2UfMpIb18/ll4IqUwmaOeb8HbyXefC3kbWen
+IKuyyMBT3ov0hyCR+FUcGo/w/18mKRwSIQYWjpxuRgDCxXmSsXYYGTCkQGyvKGmm
+iMMAPwHHOtKZtUL5geIJbBDBFtRNj6ttaUlVmUWyt+mTZD8YOplEIDDbcnACQMxH
+W3MZNJPMY5IzNdvWtePsVGCFBFjsPTf1AvsNum89dcwI7V5YU5eD7VbaoqyvGGwK
+yUZZu+SBq5cMZCeAYK5MtYJvml9iJAKEFo5o4+bpsGJ/olbQP8HJI47ln5hhfm6i
+343IUAoKc9l8URMqArZfwj0B1XVeMksQ6UipLjjCpS4/2QA7MGtOWsI+2tfaIAyK
+iDwIujiM5K8b423uMo6IVU/7gBsDdpsQEQqw3gXqlBYcJ1iXO83EI+QB5EXfg2WS
+B2RiiaR40nAxudNjT4wX55BtFU+oYT4gvF+6wxsLCmSEmgvD9ePCSAsOxg/vD5tj
+5OSA/4o=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/merlin-xmlenc-five/rsapriv.pem b/tests/merlin-xmlenc-five/rsapriv.pem
new file mode 100644
index 00000000..c2406c7f
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsapriv.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDkXTUsWzRVpUHjbDpWCfYDfXmQ/q4LkaioZoTpu4ut1Q3eQC5t
+gD14agJhgT8yzeY5S/YNlwCyuVkjuFyoyTHFX2IOPpz7jnh4KnQ+B1IH9fY/+kmk
+zHJgxSUDJsdUMPgGpKt5hnEn7ziXAWXLc2udFbnHwhi9TXXwRHGi9wZ4YwIDAQAB
+AoGBALNTnlXeqRI4W61DZ+v4ln/XIIeD9xiOoWrcVrNU2zL+g41ryQmkEqFkXcpD
+vGUg2xFTXTz+v0WZ1y39sIW6uKFRYUfaNsF6iVfGAyx1VWK/jgtPnCWDQy26Eby0
+BqpbZRy1a6MLYVEG/5bvZE01CDV4XttpTrNX91WWcYGduJxBAkEA6ED1ZOqIzBpu
+c2KAo+bWmroCH8+cSDk0gVq6bnRB+EEhRCmo/VgvndWLxfexdGmDIOAIisB06N5a
+GzBSCaEY/QJBAPu2cNvuuBNLwrlxPCwOEpIHYT4gJq8UMtg6O6N+u++nYCGhK6uo
+VCmrKY+UewyNIcsLZF0jsNI2qJjiU1vQxN8CQQDfQJnigMQwlfO3/Ga1po6Buu2R
+0IpkroB3G1R8GkrTrR+iGv2zUdKrwHsUOC2fPlFrB4+OeMOomRw6aG9jjDStAkB1
+ztiZhuvuVAoKIv5HnDqC0CNqIUAZtzlozDB3f+xT6SFr+/Plfn4Nlod4JMVGhZNo
+ZaeOlBLBAEX+cAcVtOs/AkBicZOAPv84ABmFfyhXhYaAuacaJLq//jg+t+URUOg+
+XZS9naRmawEQxOkZQVoMeKgvu05+V4MniFqdQBINIkr5
+-----END RSA PRIVATE KEY-----
diff --git a/tests/merlin-xmlenc-five/rsapub.pem b/tests/merlin-xmlenc-five/rsapub.pem
new file mode 100644
index 00000000..d92c99e9
--- /dev/null
+++ b/tests/merlin-xmlenc-five/rsapub.pem
@@ -0,0 +1,6 @@
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkXTUsWzRVpUHjbDpWCfYDfXmQ
+/q4LkaioZoTpu4ut1Q3eQC5tgD14agJhgT8yzeY5S/YNlwCyuVkjuFyoyTHFX2IO
+Ppz7jnh4KnQ+B1IH9fY/+kmkzHJgxSUDJsdUMPgGpKt5hnEn7ziXAWXLc2udFbnH
+whi9TXXwRHGi9wZ4YwIDAQAB
+-----END PUBLIC KEY-----
diff --git a/tests/merlin-xpath-filter2-three/Readme.txt b/tests/merlin-xpath-filter2-three/Readme.txt
new file mode 100644
index 00000000..728be33a
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/Readme.txt
@@ -0,0 +1,23 @@
+Sample XML Signatures[1] using the revised XPath Filter 2.0[2]
+
+[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
+[2] Were it considered, the URL would be http://www.w3.org/TR/xmldsig-filter2/
+ but in the meantime it is attached to the accompanying message
+
+First, the last example from the spec along with an example of
+an empty input node set:
+
+ sign-spec.tmpl - A basic signature template
+ sign-spec.xml - The signature
+ sign-spec-c14n-*.txt - C14n output
+
+Next, John Boyer's example (for performance testing):
+
+ sign-xfdl.tmpl - The signature template
+ sign-xfdl.xml - The signature
+ sign-xfdl-c14n-*.txt - C14n output
+
+Merlin Hughes <merlin@baltimore.ie>
+Baltimore Technologies, Ltd.
+
+Wednesday, June 10, 2002
diff --git a/tests/merlin-xpath-filter2-three/sign-spec-c14n-0.txt b/tests/merlin-xpath-filter2-three/sign-spec-c14n-0.txt
new file mode 100644
index 00000000..6b9358fd
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-spec-c14n-0.txt
@@ -0,0 +1,11 @@
+<ToBeSigned>
+
+ <Data></Data>
+ <ReallyToBeSigned>
+
+ <Data></Data>
+ </ReallyToBeSigned>
+ </ToBeSigned><ToBeSigned>
+ <Data></Data>
+
+ </ToBeSigned> \ No newline at end of file
diff --git a/tests/merlin-xpath-filter2-three/sign-spec-c14n-1.txt b/tests/merlin-xpath-filter2-three/sign-spec-c14n-1.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-spec-c14n-1.txt
diff --git a/tests/merlin-xpath-filter2-three/sign-spec-c14n-2.txt b/tests/merlin-xpath-filter2-three/sign-spec-c14n-2.txt
new file mode 100644
index 00000000..0a5d0536
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-spec-c14n-2.txt
@@ -0,0 +1,25 @@
+<dsig:SignedInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></dsig:CanonicalizationMethod>
+ <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></dsig:SignatureMethod>
+ <dsig:Reference URI="">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath>
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract"> //NotToBeSigned </XPath>
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> //ReallyToBeSigned </XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>
+ <dsig:DigestValue>p6/HaYIdxbEdYX8/8zNfjED4H5Y=</dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#signature-value">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></dsig:Transform>
+ <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> /</XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>
+ <dsig:DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</dsig:DigestValue>
+ </dsig:Reference>
+ </dsig:SignedInfo> \ No newline at end of file
diff --git a/tests/merlin-xpath-filter2-three/sign-spec.tmpl b/tests/merlin-xpath-filter2-three/sign-spec.tmpl
new file mode 100644
index 00000000..0b0d38c3
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-spec.tmpl
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<Document>
+ <ToBeSigned>
+ <!-- comment -->
+ <Data />
+ <NotToBeSigned>
+ <ReallyToBeSigned>
+ <!-- comment -->
+ <Data />
+ </ReallyToBeSigned>
+ </NotToBeSigned>
+ </ToBeSigned>
+ <ToBeSigned>
+ <Data />
+ <NotToBeSigned>
+ <Data />
+ </NotToBeSigned>
+ </ToBeSigned>
+ <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig-xpath="http://www.w3.org/2002/06/xmldsig-filter2">
+ <dsig:SignedInfo>
+ <dsig:CanonicalizationMethod Algorithm="" />
+ <dsig:SignatureMethod Algorithm="" />
+ <dsig:Reference URI="">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <dsig-xpath:XPath Filter="intersect"> //ToBeSigned </dsig-xpath:XPath>
+ <dsig-xpath:XPath Filter="subtract"> //NotToBeSigned </dsig-xpath:XPath>
+ <dsig-xpath:XPath Filter="union"> //ReallyToBeSigned </dsig-xpath:XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="" />
+ <dsig:DigestValue />
+ </dsig:Reference>
+ <dsig:Reference URI="#signature-value">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <dsig-xpath:XPath Filter="union"> /</dsig-xpath:XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="" />
+ <dsig:DigestValue />
+ </dsig:Reference>
+ </dsig:SignedInfo>
+ <dsig:SignatureValue Id="signature-value" />
+ <dsig:KeyInfo>
+ <dsig:KeyValue/>
+ </dsig:KeyInfo>
+ </dsig:Signature>
+</Document>
diff --git a/tests/merlin-xpath-filter2-three/sign-spec.xml b/tests/merlin-xpath-filter2-three/sign-spec.xml
new file mode 100644
index 00000000..dd5dfd76
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-spec.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document>
+ <ToBeSigned>
+ <!-- comment -->
+ <Data />
+ <NotToBeSigned>
+ <ReallyToBeSigned>
+ <!-- comment -->
+ <Data />
+ </ReallyToBeSigned>
+ </NotToBeSigned>
+ </ToBeSigned>
+ <ToBeSigned>
+ <Data />
+ <NotToBeSigned>
+ <Data />
+ </NotToBeSigned>
+ </ToBeSigned>
+ <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <dsig:SignedInfo>
+ <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
+ <dsig:Reference URI="">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath>
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract"> //NotToBeSigned </XPath>
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> //ReallyToBeSigned </XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue>p6/HaYIdxbEdYX8/8zNfjED4H5Y=</dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference URI="#signature-value">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> /</XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <dsig:DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</dsig:DigestValue>
+ </dsig:Reference>
+ </dsig:SignedInfo>
+ <dsig:SignatureValue Id="signature-value">
+ Ft7PdmEYSC8GwxffIa4xiobr1iEaUf3LGNfPLiQnJBJI/1Cp5WiEiQ==
+ </dsig:SignatureValue>
+ <dsig:KeyInfo>
+ <dsig:KeyValue>
+ <dsig:DSAKeyValue>
+ <dsig:P>
+ 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH
+ Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi
+ 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=
+ </dsig:P>
+ <dsig:Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</dsig:Q>
+ <dsig:G>
+ nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z
+ Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM
+ 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=
+ </dsig:G>
+ <dsig:Y>
+ cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i
+ Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv
+ +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=
+ </dsig:Y>
+ </dsig:DSAKeyValue>
+ </dsig:KeyValue>
+ <dsig:X509Data>
+ <dsig:X509SubjectName>
+ CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE
+ </dsig:X509SubjectName>
+ <dsig:X509IssuerSerial>
+ <dsig:X509IssuerName>
+ CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE
+ </dsig:X509IssuerName>
+ <dsig:X509SerialNumber>1017788370348</dsig:X509SerialNumber>
+ </dsig:X509IssuerSerial>
+ <dsig: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
+ </dsig:X509Certificate>
+ <dsig: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==
+ </dsig:X509Certificate>
+ </dsig:X509Data>
+ </dsig:KeyInfo>
+ </dsig:Signature>
+</Document>
diff --git a/tests/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt b/tests/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt
new file mode 100644
index 00000000..dea89da0
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt
@@ -0,0 +1,3986 @@
+<XFDL version="4.0.1">
+ <vfd_title>SF71</vfd_title>
+ <vfd_author>Thomas Mohr</vfd_author>
+ <vfd_revision>4/6/98</vfd_revision>
+ <vfd_date>4/6/98</vfd_date>
+ <saveformat>application/x-xfdl</saveformat>
+ <transmitformat>application/x-xfdl</transmitformat>
+ <formid content="array">
+ <version>1.0.0</version>
+ </formid>
+ <page sid="PAGE1">
+ <vfd_pagesize>letter</vfd_pagesize>
+ <vfd_pagedpi>120</vfd_pagedpi>
+ <vfd_printsize>8.0;10.5</vfd_printsize>
+ <label>PAGE1</label>
+ <bgcolor content="array">
+ <ae>235</ae>
+ <ae>235</ae>
+ <ae>235</ae>
+ </bgcolor>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <label sid="LABEL1">
+ <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>14</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ <size content="array">
+ <ae>61</ae>
+ <ae>1</ae>
+ </size>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>3</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>874</ae>
+ <ae>34</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>79</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>1. NAME</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>100</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>218</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>(Last, First, Middle Initial)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>385</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>85</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>170</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>3. ORGANIZATION</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>248</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>4. TYPE OF LEAVE/ABSENCE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>32</ae>
+ <ae>155</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>236</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>(Check appropriate box(es) below.)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>270</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>From:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>163</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Date</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>352</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>To:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>From:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>430</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>163</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Time</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>513</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>To:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>134</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>46</ae>
+ </ae>
+ </itemlocation>
+ <value>Total
+Hours</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>186</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Accrued Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>232</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Restored Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>278</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Advance Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>323</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Accured Sick Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>368</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Advance Sick Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>409</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Purpose:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>142</ae>
+ <ae>410</ae>
+ </ae>
+ </itemlocation>
+ <value>Medical/dental/optical Examination of requesting employee</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>45</ae>
+ <ae>1</ae>
+ </size>
+ </label>
+ <label sid="LABEL22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>535</ae>
+ <ae>410</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>46</ae>
+ <ae>24</ae>
+ </ae>
+ </itemlocation>
+ <value>Other</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>142</ae>
+ <ae>435</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>439</ae>
+ <ae>42</ae>
+ </ae>
+ </itemlocation>
+ <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>204</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Compensatory Time Off</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>535</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>180</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Other Paid Absence</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>556</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>158</ae>
+ <ae>24</ae>
+ </ae>
+ </itemlocation>
+ <value>(Specify in Remarks)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>593</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Leave Without Pay</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>676</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>215</ae>
+ <ae>46</ae>
+ </ae>
+ </itemlocation>
+ <value>5. FAMILY AND
+ MEDICAL LEAVE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>677</ae>
+ <ae>183</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>214</ae>
+ <ae>126</ae>
+ </ae>
+ </itemlocation>
+ <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL30">
+ <value>I hereby invoke my</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>700</ae>
+ <ae>322</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>191</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL31">
+ <value>entitlement Family and</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>342</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>216</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL32">
+ <value>Medical Leave for:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>364</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>215</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL33">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>403</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>181</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>Birth/Adoption/Foster Care</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL34">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>426</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>182</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL35">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>483</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>184</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>Serious Health Condition of Self</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL36">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>537</ae>
+ </ae>
+ </itemlocation>
+ <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>26</ae>
+ <ae>5</ae>
+ </size>
+ </label>
+ <label sid="LABEL37">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>630</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>6. REMARKS:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL38">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>747</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>170</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>7. CERTIFICATION:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL39">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>178</ae>
+ <ae>747</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>715</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL40">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>767</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>873</ae>
+ <ae>66</ae>
+ </ae>
+ </itemlocation>
+ <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL41">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>841</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>230</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>EMPLOYEE SIGNATURE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL42">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>597</ae>
+ <ae>841</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>58</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>DATE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL43">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>877</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>335</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>8. OFFICAL ACTION ON REQUEST:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL44">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>41</ae>
+ <ae>897</ae>
+ </ae>
+ </itemlocation>
+ <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>53</ae>
+ <ae>1</ae>
+ </size>
+ </label>
+ <label sid="LABEL45">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>388</ae>
+ <ae>875</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>APPROVED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL46">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>638</ae>
+ <ae>875</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>DISAPPROVED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL47">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>941</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>112</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>SIGNATURE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL48">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>597</ae>
+ <ae>940</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>58</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>DATE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL49">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>970</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>PRIVACY ACT STATEMENT</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL50">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>996</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>873</ae>
+ <ae>134</ae>
+ </ae>
+ </itemlocation>
+ <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management.
+
+Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL51">
+ <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>7</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>18</ae>
+ <ae>1140</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>875</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL52">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>18</ae>
+ <ae>1168</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>422</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>NSN 7540-000-753-5067
+PREVIOUS EDITION MAY BE USED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL53">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>438</ae>
+ <ae>1168</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>454</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>STANDARD FORM 71 (Rev. 12-97)
+PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <justify>right</justify>
+ </label>
+ <line sid="LINE1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>82</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>218</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>263</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>311</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>354</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>398</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>530</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>578</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>626</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>743</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>867</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>967</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>1164</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1133</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>51</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>892</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1133</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>266</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>349</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>220</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>430</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>266</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>220</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>265</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>673</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>494</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>349</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE30">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE31">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>591</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <field sid="FIELD1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>58</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>489</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>John Q. Public</value>
+ </field>
+ <field sid="FIELD2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>537</ae>
+ <ae>58</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>123</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>123456789</value>
+ </field>
+ <field sid="FIELD3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>109</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>872</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>PureEdge Solutions Inc.</value>
+ </field>
+ <check sid="CHECK1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>191</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>277</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>322</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>79</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>367</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>121</ae>
+ <ae>412</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>121</ae>
+ <ae>438</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>519</ae>
+ <ae>412</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>495</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD30">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD31">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD32">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD33">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD34">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD35">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD36">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD37">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD38">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>591</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD39">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD40">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD41">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD42">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD43">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>680</ae>
+ <ae>326</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <check sid="CHECK13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>404</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value></value>
+ </check>
+ <check sid="CHECK14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>428</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value></value>
+ </check>
+ <check sid="CHECK15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>485</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value></value>
+ </check>
+ <field sid="FIELD44">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>42</ae>
+ <ae>657</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>846</ae>
+ <ae>57</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK10.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </format>
+ <value></value>
+ </field>
+ <field sid="FIELD45">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>42</ae>
+ <ae>712</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>846</ae>
+ <ae>31</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK8.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </format>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK8.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <value></value>
+ </field>
+ <button sid="BUTTON1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>250</ae>
+ <ae>839</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>346</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <type>signature</type>
+ <signature>SIGNATURE1</signature>
+ <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer>
+ <signoptions content="array">
+ <ae>omit</ae>
+ <ae>triggeritem</ae>
+ </signoptions>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <borderwidth>0</borderwidth>
+ <signitemrefs content="array">
+ <ae>omit</ae>
+ <ae>PAGE1.CHECK16</ae>
+ <ae>PAGE1.CHECK17</ae>
+ <ae>PAGE1.FIELD47</ae>
+ <ae>PAGE1.BUTTON2</ae>
+ <ae>SIGNATURE2</ae>
+ <ae>PAGE1.FIELD48</ae>
+ </signitemrefs>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <value content="compute">
+ <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval>
+ <compute>
+ signer
+ </compute>
+ </value>
+ </button>
+
+ <field sid="FIELD46">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>655</ae>
+ <ae>840</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>155</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <editstate>readonly</editstate>
+ <value content="compute">
+ <cval>05-08-02</cval>
+ <compute>
+ (BUTTON1.value != "") ? "*" : ""
+ </compute>
+ </value>
+ <format content="array">
+ <ae>date</ae>
+ <ae>optional</ae>
+ <presentation>MM-DD-YY</presentation>
+ </format>
+ </field>
+
+
+
+
+
+ <spacer sid="vfd_spacer">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>960</ae>
+ <ae>1260</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </spacer>
+ </page>
+</XFDL> \ No newline at end of file
diff --git a/tests/merlin-xpath-filter2-three/sign-xfdl.tmpl b/tests/merlin-xpath-filter2-three/sign-xfdl.tmpl
new file mode 100644
index 00000000..b3ed7685
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-xfdl.tmpl
@@ -0,0 +1,4153 @@
+<?xml version="1.0"?>
+<XFDL version="4.0.1">
+ <vfd_title>SF71</vfd_title>
+ <vfd_author>Thomas Mohr</vfd_author>
+ <vfd_revision>4/6/98</vfd_revision>
+ <vfd_date>4/6/98</vfd_date>
+ <saveformat>application/x-xfdl</saveformat>
+ <transmitformat>application/x-xfdl</transmitformat>
+ <formid content="array">
+ <version>1.0.0</version>
+ </formid>
+ <page sid="PAGE1">
+ <vfd_pagesize>letter</vfd_pagesize>
+ <vfd_pagedpi>120</vfd_pagedpi>
+ <vfd_printsize>8.0;10.5</vfd_printsize>
+ <label>PAGE1</label>
+ <bgcolor content="array">
+ <ae>235</ae>
+ <ae>235</ae>
+ <ae>235</ae>
+ </bgcolor>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <label sid="LABEL1">
+ <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>14</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ <size content="array">
+ <ae>61</ae>
+ <ae>1</ae>
+ </size>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>3</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>874</ae>
+ <ae>34</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>79</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>1. NAME</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>100</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>218</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>(Last, First, Middle Initial)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>385</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>85</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>170</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>3. ORGANIZATION</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>248</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>4. TYPE OF LEAVE/ABSENCE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>32</ae>
+ <ae>155</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>236</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>(Check appropriate box(es) below.)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>270</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>From:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>163</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Date</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>352</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>To:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>From:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>430</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>163</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Time</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>513</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>To:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>134</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>46</ae>
+ </ae>
+ </itemlocation>
+ <value>Total
+Hours</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>186</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Accrued Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>232</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Restored Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>278</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Advance Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>323</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Accured Sick Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>368</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Advance Sick Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>409</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Purpose:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>142</ae>
+ <ae>410</ae>
+ </ae>
+ </itemlocation>
+ <value>Medical/dental/optical Examination of requesting employee</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>45</ae>
+ <ae>1</ae>
+ </size>
+ </label>
+ <label sid="LABEL22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>535</ae>
+ <ae>410</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>46</ae>
+ <ae>24</ae>
+ </ae>
+ </itemlocation>
+ <value>Other</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>142</ae>
+ <ae>435</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>439</ae>
+ <ae>42</ae>
+ </ae>
+ </itemlocation>
+ <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>204</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Compensatory Time Off</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>535</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>180</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Other Paid Absence</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>556</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>158</ae>
+ <ae>24</ae>
+ </ae>
+ </itemlocation>
+ <value>(Specify in Remarks)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>593</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Leave Without Pay</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>676</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>215</ae>
+ <ae>46</ae>
+ </ae>
+ </itemlocation>
+ <value>5. FAMILY AND
+ MEDICAL LEAVE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>677</ae>
+ <ae>183</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>214</ae>
+ <ae>126</ae>
+ </ae>
+ </itemlocation>
+ <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL30">
+ <value>I hereby invoke my</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>700</ae>
+ <ae>322</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>191</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL31">
+ <value>entitlement Family and</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>342</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>216</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL32">
+ <value>Medical Leave for:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>364</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>215</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL33">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>403</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>181</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>Birth/Adoption/Foster Care</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL34">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>426</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>182</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL35">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>483</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>184</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>Serious Health Condition of Self</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL36">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>537</ae>
+ </ae>
+ </itemlocation>
+ <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>26</ae>
+ <ae>5</ae>
+ </size>
+ </label>
+ <label sid="LABEL37">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>630</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>6. REMARKS:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL38">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>747</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>170</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>7. CERTIFICATION:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL39">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>178</ae>
+ <ae>747</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>715</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL40">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>767</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>873</ae>
+ <ae>66</ae>
+ </ae>
+ </itemlocation>
+ <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL41">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>841</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>230</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>EMPLOYEE SIGNATURE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL42">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>597</ae>
+ <ae>841</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>58</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>DATE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL43">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>877</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>335</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>8. OFFICAL ACTION ON REQUEST:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL44">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>41</ae>
+ <ae>897</ae>
+ </ae>
+ </itemlocation>
+ <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>53</ae>
+ <ae>1</ae>
+ </size>
+ </label>
+ <label sid="LABEL45">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>388</ae>
+ <ae>875</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>APPROVED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL46">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>638</ae>
+ <ae>875</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>DISAPPROVED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL47">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>941</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>112</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>SIGNATURE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL48">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>597</ae>
+ <ae>940</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>58</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>DATE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL49">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>970</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>PRIVACY ACT STATEMENT</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL50">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>996</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>873</ae>
+ <ae>134</ae>
+ </ae>
+ </itemlocation>
+ <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management.
+
+Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL51">
+ <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>7</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>18</ae>
+ <ae>1140</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>875</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL52">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>18</ae>
+ <ae>1168</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>422</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>NSN 7540-000-753-5067
+PREVIOUS EDITION MAY BE USED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL53">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>438</ae>
+ <ae>1168</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>454</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>STANDARD FORM 71 (Rev. 12-97)
+PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <justify>right</justify>
+ </label>
+ <line sid="LINE1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>82</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>218</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>263</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>311</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>354</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>398</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>530</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>578</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>626</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>743</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>867</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>967</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>1164</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1133</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>51</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>892</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1133</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>266</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>349</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>220</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>430</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>266</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>220</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>265</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>673</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>494</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>349</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE30">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE31">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>591</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <field sid="FIELD1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>58</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>489</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>John Q. Public</value>
+ </field>
+ <field sid="FIELD2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>537</ae>
+ <ae>58</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>123</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>123456789</value>
+ </field>
+ <field sid="FIELD3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>109</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>872</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>PureEdge Solutions Inc.</value>
+ </field>
+ <check sid="CHECK1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>191</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>277</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>322</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>79</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>367</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>121</ae>
+ <ae>412</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>121</ae>
+ <ae>438</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>519</ae>
+ <ae>412</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>495</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD30">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD31">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD32">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD33">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD34">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD35">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD36">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD37">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD38">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>591</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <field sid="FIELD39">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD40">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </field>
+ <field sid="FIELD41">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD42">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <field sid="FIELD43">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value></value>
+ </field>
+ <check sid="CHECK12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>680</ae>
+ <ae>326</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value></value>
+ </check>
+ <check sid="CHECK13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>404</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value></value>
+ </check>
+ <check sid="CHECK14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>428</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value></value>
+ </check>
+ <check sid="CHECK15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>485</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval></cval>
+ <compute>
+ ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value></value>
+ </check>
+ <field sid="FIELD44">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>42</ae>
+ <ae>657</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>846</ae>
+ <ae>57</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK10.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </format>
+ <value></value>
+ </field>
+ <field sid="FIELD45">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>42</ae>
+ <ae>712</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>846</ae>
+ <ae>31</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK8.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </format>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK8.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <value></value>
+ </field>
+ <button sid="BUTTON1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>250</ae>
+ <ae>839</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>346</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <type>signature</type>
+ <signature>SIGNATURE1</signature>
+ <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer>
+ <signoptions content="array">
+ <ae>omit</ae>
+ <ae>triggeritem</ae>
+ </signoptions>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <borderwidth>0</borderwidth>
+ <signitemrefs content="array">
+ <ae>omit</ae>
+ <ae>PAGE1.CHECK16</ae>
+ <ae>PAGE1.CHECK17</ae>
+ <ae>PAGE1.FIELD47</ae>
+ <ae>PAGE1.BUTTON2</ae>
+ <ae>SIGNATURE2</ae>
+ <ae>PAGE1.FIELD48</ae>
+ </signitemrefs>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <value content="compute">
+ <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval>
+ <compute>
+ signer
+ </compute>
+ </value>
+ </button>
+ <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#hmac-sha1"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract">
+ /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or @sid="CHECK17" or @sid="FIELD47" or @sid="BUTTON2" or @sid="FIELD48"] |
+ /XFDL/page/triggeritem[not(@sid)]
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue />
+ </Reference>
+ </SignedInfo>
+ <SignatureValue />
+ <KeyInfo>
+ <KeyValue />
+ </KeyInfo>
+ </Signature>
+ <field sid="FIELD46">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>655</ae>
+ <ae>840</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>155</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <editstate>readonly</editstate>
+ <value content="compute">
+ <cval>05-08-02</cval>
+ <compute>
+ (BUTTON1.value != "") ? "*" : ""
+ </compute>
+ </value>
+ <format content="array">
+ <ae>date</ae>
+ <ae>optional</ae>
+ <presentation>MM-DD-YY</presentation>
+ </format>
+ </field>
+ <check sid="CHECK16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>362</ae>
+ <ae>873</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <radio_behaviour content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK17.value == "on") ? set("value", "off") : ""
+ </compute>
+ </radio_behaviour>
+ <value></value>
+ </check>
+ <check sid="CHECK17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>604</ae>
+ <ae>873</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <radio_behaviour content="compute">
+ <cval></cval>
+ <compute>
+ (CHECK16.value == "on") ? set("value", "off") : ""
+ </compute>
+ </radio_behaviour>
+ <value></value>
+ </check>
+ <field sid="FIELD47">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>41</ae>
+ <ae>917</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>770</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <Format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK17.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </Format>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK17.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <borderwidth>0</borderwidth>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <value></value>
+ </field>
+ <button sid="BUTTON2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>132</ae>
+ <ae>939</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>466</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <type>signature</type>
+ <signature>SIGNATURE2</signature>
+ <signer></signer>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <signoptions content="array">
+ <ae>omit</ae>
+ <ae>triggeritem</ae>
+ </signoptions>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <value content="compute">
+ <cval></cval>
+ <compute>
+ signer
+ </compute>
+ </value>
+ <borderwidth>0</borderwidth>
+ </button>
+ <field sid="FIELD48">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>656</ae>
+ <ae>940</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>155</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <editstate>readonly</editstate>
+ <value content="compute">
+ <cval></cval>
+ <compute>
+ (BUTTON2.value != "") ? "*" : ""
+ </compute>
+ </value>
+ <format content="array">
+ <ae>date</ae>
+ <ae>optional</ae>
+ <presentation>MM-DD-YY</presentation>
+ </format>
+ </field>
+ <spacer sid="vfd_spacer">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>960</ae>
+ <ae>1260</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </spacer>
+ </page>
+</XFDL>
diff --git a/tests/merlin-xpath-filter2-three/sign-xfdl.xml b/tests/merlin-xpath-filter2-three/sign-xfdl.xml
new file mode 100644
index 00000000..897460ba
--- /dev/null
+++ b/tests/merlin-xpath-filter2-three/sign-xfdl.xml
@@ -0,0 +1,4225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XFDL version="4.0.1">
+ <vfd_title>SF71</vfd_title>
+ <vfd_author>Thomas Mohr</vfd_author>
+ <vfd_revision>4/6/98</vfd_revision>
+ <vfd_date>4/6/98</vfd_date>
+ <saveformat>application/x-xfdl</saveformat>
+ <transmitformat>application/x-xfdl</transmitformat>
+ <formid content="array">
+ <version>1.0.0</version>
+ </formid>
+ <page sid="PAGE1">
+ <vfd_pagesize>letter</vfd_pagesize>
+ <vfd_pagedpi>120</vfd_pagedpi>
+ <vfd_printsize>8.0;10.5</vfd_printsize>
+ <label>PAGE1</label>
+ <bgcolor content="array">
+ <ae>235</ae>
+ <ae>235</ae>
+ <ae>235</ae>
+ </bgcolor>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <label sid="LABEL1">
+ <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>14</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ <size content="array">
+ <ae>61</ae>
+ <ae>1</ae>
+ </size>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>3</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>874</ae>
+ <ae>34</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>79</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>1. NAME</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>100</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>218</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>(Last, First, Middle Initial)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>35</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>385</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>85</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>170</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>3. ORGANIZATION</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>248</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>4. TYPE OF LEAVE/ABSENCE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>32</ae>
+ <ae>155</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>236</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>(Check appropriate box(es) below.)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>270</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>From:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>163</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Date</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>352</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>To:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>From:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>430</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>163</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Time</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>513</ae>
+ <ae>158</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>48</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>To:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>134</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>46</ae>
+ </ae>
+ </itemlocation>
+ <value>Total
+Hours</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>186</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Accrued Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>232</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Restored Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>278</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Advance Annual Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>323</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Accured Sick Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>368</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>205</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Advance Sick Leave</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>409</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Purpose:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>142</ae>
+ <ae>410</ae>
+ </ae>
+ </itemlocation>
+ <value>Medical/dental/optical Examination of requesting employee</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>45</ae>
+ <ae>1</ae>
+ </size>
+ </label>
+ <label sid="LABEL22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>535</ae>
+ <ae>410</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>46</ae>
+ <ae>24</ae>
+ </ae>
+ </itemlocation>
+ <value>Other</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>142</ae>
+ <ae>435</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>439</ae>
+ <ae>42</ae>
+ </ae>
+ </itemlocation>
+ <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>204</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Compensatory Time Off</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>535</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>180</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Other Paid Absence</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>556</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>158</ae>
+ <ae>24</ae>
+ </ae>
+ </itemlocation>
+ <value>(Specify in Remarks)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>9</ae>
+ <ae>plain</ae>
+ <ae>italic</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>64</ae>
+ <ae>593</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>Leave Without Pay</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>676</ae>
+ <ae>135</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>215</ae>
+ <ae>46</ae>
+ </ae>
+ </itemlocation>
+ <value>5. FAMILY AND
+ MEDICAL LEAVE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>677</ae>
+ <ae>183</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>214</ae>
+ <ae>126</ae>
+ </ae>
+ </itemlocation>
+ <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL30">
+ <value>I hereby invoke my</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>700</ae>
+ <ae>322</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>191</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL31">
+ <value>entitlement Family and</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>342</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>216</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL32">
+ <value>Medical Leave for:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>364</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>215</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL33">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>403</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>181</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>Birth/Adoption/Foster Care</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL34">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>426</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>182</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL35">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>708</ae>
+ <ae>483</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>184</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ <value>Serious Health Condition of Self</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL36">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>675</ae>
+ <ae>537</ae>
+ </ae>
+ </itemlocation>
+ <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>26</ae>
+ <ae>5</ae>
+ </size>
+ </label>
+ <label sid="LABEL37">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>630</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>6. REMARKS:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL38">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>747</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>170</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>7. CERTIFICATION:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL39">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>178</ae>
+ <ae>747</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>715</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL40">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>767</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>873</ae>
+ <ae>66</ae>
+ </ae>
+ </itemlocation>
+ <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL41">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>841</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>230</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>EMPLOYEE SIGNATURE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL42">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>597</ae>
+ <ae>841</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>58</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>DATE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL43">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>877</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>335</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>8. OFFICAL ACTION ON REQUEST:</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL44">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>41</ae>
+ <ae>897</ae>
+ </ae>
+ </itemlocation>
+ <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <size content="array">
+ <ae>53</ae>
+ <ae>1</ae>
+ </size>
+ </label>
+ <label sid="LABEL45">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>388</ae>
+ <ae>875</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>APPROVED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL46">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>638</ae>
+ <ae>875</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>192</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>DISAPPROVED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL47">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>941</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>112</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>SIGNATURE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL48">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>597</ae>
+ <ae>940</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>58</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <value>DATE</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>11</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL49">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>970</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>26</ae>
+ </ae>
+ </itemlocation>
+ <value>PRIVACY ACT STATEMENT</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>10</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <justify>center</justify>
+ </label>
+ <label sid="LABEL50">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>996</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>873</ae>
+ <ae>134</ae>
+ </ae>
+ </itemlocation>
+ <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management.
+
+Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL51">
+ <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>7</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>18</ae>
+ <ae>1140</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>875</ae>
+ <ae>22</ae>
+ </ae>
+ </itemlocation>
+ </label>
+ <label sid="LABEL52">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>18</ae>
+ <ae>1168</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>422</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>NSN 7540-000-753-5067
+PREVIOUS EDITION MAY BE USED</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ </label>
+ <label sid="LABEL53">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>438</ae>
+ <ae>1168</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>454</ae>
+ <ae>38</ae>
+ </ae>
+ </itemlocation>
+ <value>STANDARD FORM 71 (Rev. 12-97)
+PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <justify>right</justify>
+ </label>
+ <line sid="LINE1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>82</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>218</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>263</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>311</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>354</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>398</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>406</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>530</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>578</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>657</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>626</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>743</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>867</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>967</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>1164</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>876</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>17</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1133</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>51</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>892</ae>
+ <ae>32</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1133</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>266</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>349</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>220</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>430</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>266</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>179</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>220</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>265</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>673</ae>
+ <ae>133</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>494</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>268</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>349</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE30">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>510</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <line sid="LINE31">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>591</ae>
+ <ae>484</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>143</ae>
+ </ae>
+ </itemlocation>
+ </line>
+ <field sid="FIELD1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>20</ae>
+ <ae>58</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>489</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>John Q. Public</value>
+ </field>
+ <field sid="FIELD2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>537</ae>
+ <ae>58</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>123</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>123456789</value>
+ </field>
+ <field sid="FIELD3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>19</ae>
+ <ae>109</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>872</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <value>PureEdge Solutions Inc.</value>
+ </field>
+ <check sid="CHECK1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>191</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>188</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK1.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK1.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK1.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>231</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK2.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK2.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK2.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK3">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>277</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD18">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>276</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK3.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK3.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK3.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK4">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>322</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD19">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD20">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD21">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>79</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD22">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD23">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>321</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK4.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK4.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK4.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK5">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>367</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD24">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD25">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD26">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>431</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD27">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD28">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>593</ae>
+ <ae>366</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK5.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK5.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK5.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK6">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>121</ae>
+ <ae>412</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval />
+ <compute>
+ ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK7">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>121</ae>
+ <ae>438</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval />
+ <compute>
+ ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK8">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>519</ae>
+ <ae>412</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value>off</value>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK5.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval />
+ <compute>
+ ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ </check>
+ <check sid="CHECK9">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>495</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD29">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD30">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD31">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD32">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD33">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>498</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK9.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK9.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK9.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK10">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD34">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD35">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD36">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD37">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD38">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>543</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK10.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK10.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK10.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK11">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>28</ae>
+ <ae>591</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <field sid="FIELD39">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>269</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD40">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>350</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>date</ae>
+ <ae>case_insensitive</ae>
+ <ae>optional</ae>
+ <template content="array">
+ <ae>##-##-##</ae>
+ </template>
+ <presentation>MM-DD-YY</presentation>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <fontinfo content="array">
+ <ae>Courier</ae>
+ <ae>8</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </field>
+ <field sid="FIELD41">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>432</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>78</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD42">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>511</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>80</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <justify>center</justify>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>time</ae>
+ <ae>short</ae>
+ <ae>optional</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <field sid="FIELD43">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>592</ae>
+ <ae>590</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>81</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK11.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <check_off content="compute">
+ <cval />
+ <compute>
+ (CHECK11.value == "off") ? set("value", "") : ""
+ </compute>
+ </check_off>
+ <format content="array">
+ <ae>float</ae>
+ <ae>optional</ae>
+ <range content="array">
+ <ae>0</ae>
+ <ae>9999.9999</ae>
+ </range>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ ((CHECK11.value == "on") ? "mandatory" : "optional")
+ </compute>
+ </ae>
+ </format>
+ <borderwidth>0</borderwidth>
+ <value />
+ </field>
+ <check sid="CHECK12">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>680</ae>
+ <ae>326</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <value />
+ </check>
+ <check sid="CHECK13">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>404</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval />
+ <compute>
+ ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value />
+ </check>
+ <check sid="CHECK14">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>428</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval />
+ <compute>
+ ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value />
+ </check>
+ <check sid="CHECK15">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>689</ae>
+ <ae>485</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>15</ae>
+ <ae>14</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>10</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <active content="compute">
+ <cval>off</cval>
+ <compute>
+ (CHECK12.value == "on") ? "on" : "off"
+ </compute>
+ </active>
+ <editstate content="compute">
+ <cval>readwrite</cval>
+ <compute>
+ (value == "on") ? "readonly" : "readwrite"
+ </compute>
+ </editstate>
+ <radio_check content="compute">
+ <cval />
+ <compute>
+ ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : ""
+ </compute>
+ </radio_check>
+ <value />
+ </check>
+ <field sid="FIELD44">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>42</ae>
+ <ae>657</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>846</ae>
+ <ae>57</ae>
+ </ae>
+ </itemlocation>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <borderwidth>0</borderwidth>
+ <format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK10.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </format>
+ <value />
+ </field>
+ <field sid="FIELD45">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>42</ae>
+ <ae>712</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>846</ae>
+ <ae>31</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK8.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </format>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK8.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <value />
+ </field>
+ <button sid="BUTTON1">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>250</ae>
+ <ae>839</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>346</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <type>signature</type>
+ <signature>SIGNATURE1</signature>
+ <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer>
+ <signoptions content="array">
+ <ae>omit</ae>
+ <ae>triggeritem</ae>
+ </signoptions>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <borderwidth>0</borderwidth>
+ <signitemrefs content="array">
+ <ae>omit</ae>
+ <ae>PAGE1.CHECK16</ae>
+ <ae>PAGE1.CHECK17</ae>
+ <ae>PAGE1.FIELD47</ae>
+ <ae>PAGE1.BUTTON2</ae>
+ <ae>SIGNATURE2</ae>
+ <ae>PAGE1.FIELD48</ae>
+ </signitemrefs>
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <value content="compute">
+ <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval>
+ <compute>
+ signer
+ </compute>
+ </value>
+ </button>
+ <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/2000/09/xmldsig#enveloped-signature" />
+ <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
+ <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract">
+ /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or @sid="CHECK17" or @sid="FIELD47" or @sid="BUTTON2" or @sid="FIELD48"] |
+ /XFDL/page/triggeritem[not(@sid)]
+ </XPath>
+ </Transform>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <DigestValue>xtHvgrYCYiWUtvgbaA6yx4fY4hI=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ UCx213C5lb0LhhsAHEO+L5Pbkq8sBhh/yXJuL4zDZMyASF/cn6eoDA==
+ </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>
+ <field sid="FIELD46">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>655</ae>
+ <ae>840</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>155</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <editstate>readonly</editstate>
+ <value content="compute">
+ <cval>05-08-02</cval>
+ <compute>
+ (BUTTON1.value != "") ? "*" : ""
+ </compute>
+ </value>
+ <format content="array">
+ <ae>date</ae>
+ <ae>optional</ae>
+ <presentation>MM-DD-YY</presentation>
+ </format>
+ </field>
+ <check sid="CHECK16">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>362</ae>
+ <ae>873</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <radio_behaviour content="compute">
+ <cval />
+ <compute>
+ (CHECK17.value == "on") ? set("value", "off") : ""
+ </compute>
+ </radio_behaviour>
+ <value />
+ </check>
+ <check sid="CHECK17">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>604</ae>
+ <ae>873</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>22</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <fontinfo content="array">
+ <ae>Helvetica</ae>
+ <ae>18</ae>
+ <ae>plain</ae>
+ </fontinfo>
+ <radio_behaviour content="compute">
+ <cval />
+ <compute>
+ (CHECK16.value == "on") ? set("value", "off") : ""
+ </compute>
+ </radio_behaviour>
+ <value />
+ </check>
+ <field sid="FIELD47">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>41</ae>
+ <ae>917</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>770</ae>
+ <ae>23</ae>
+ </ae>
+ </itemlocation>
+ <Format content="array">
+ <ae>string</ae>
+ <ae content="compute">
+ <cval>optional</cval>
+ <compute>
+ (CHECK17.value == "on") ? "mandatory" : "optional"
+ </compute>
+ </ae>
+ </Format>
+ <editstate content="compute">
+ <cval>readonly</cval>
+ <compute>
+ (CHECK17.value == "on") ? "readwrite" : "readonly"
+ </compute>
+ </editstate>
+ <borderwidth>0</borderwidth>
+ <scrollhoriz>wordwrap</scrollhoriz>
+ <scrollvert>fixed</scrollvert>
+ <value />
+ </field>
+ <button sid="BUTTON2">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>132</ae>
+ <ae>939</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>466</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <type>signature</type>
+ <signature>SIGNATURE2</signature>
+ <signer />
+ <format content="array">
+ <ae>string</ae>
+ <ae>mandatory</ae>
+ </format>
+ <signoptions content="array">
+ <ae>omit</ae>
+ <ae>triggeritem</ae>
+ </signoptions>
+ <fontinfo content="array">
+ <ae>Times</ae>
+ <ae>8</ae>
+ <ae>bold</ae>
+ </fontinfo>
+ <value content="compute">
+ <cval />
+ <compute>
+ signer
+ </compute>
+ </value>
+ <borderwidth>0</borderwidth>
+ </button>
+ <field sid="FIELD48">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>656</ae>
+ <ae>940</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>155</ae>
+ <ae>27</ae>
+ </ae>
+ </itemlocation>
+ <borderwidth>0</borderwidth>
+ <editstate>readonly</editstate>
+ <value content="compute">
+ <cval />
+ <compute>
+ (BUTTON2.value != "") ? "*" : ""
+ </compute>
+ </value>
+ <format content="array">
+ <ae>date</ae>
+ <ae>optional</ae>
+ <presentation>MM-DD-YY</presentation>
+ </format>
+ </field>
+ <spacer sid="vfd_spacer">
+ <itemlocation content="array">
+ <ae content="array">
+ <ae>absolute</ae>
+ <ae>960</ae>
+ <ae>1260</ae>
+ </ae>
+ <ae content="array">
+ <ae>extent</ae>
+ <ae>1</ae>
+ <ae>1</ae>
+ </ae>
+ </itemlocation>
+ </spacer>
+ </page>
+</XFDL>
diff --git a/tests/nss.supp b/tests/nss.supp
new file mode 100644
index 00000000..8287f219
--- /dev/null
+++ b/tests/nss.supp
@@ -0,0 +1,220 @@
+##----------------------------------------------------------------------##
+#
+# Errors to suppress by default with NSS
+#
+# Format of this file is:
+# {
+# name_of_suppression
+# kind: one of Param Value1 Value2 Value4 Value8
+# Free Addr1 Addr2 Addr4 Addr8
+# Cond (previously known as Value0)
+# (if Param: name of system call param, if Free: name of free-ing fn)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+
+##----------------------------------------------------------------------##
+{
+ NSS memcmp/prng_RandomUpdate
+ Memcheck:Cond
+ fun:memcmp
+ fun:prng_RandomUpdate
+}
+
+{
+ NSS alg_fips*/prng_RandomUpdate
+ Memcheck:Cond
+ fun:alg_fips*
+ fun:prng_RandomUpdate
+}
+
+{
+ NSS sec_asn1d_parse_leaf/SEC_ASN1*
+ Memcheck:Cond
+ fun:sec_asn1d*
+ fun:SEC_ASN1*
+}
+
+{
+ NSS DES_Do1Block
+ Memcheck:Value4
+ fun:DES_Do1Block
+ fun:DES_EDE*
+}
+
+{
+ NSS *mp*
+ Memcheck:Cond
+ fun:*
+ fun:*mp_*
+}
+
+{
+ NSS *mp*
+ Memcheck:Cond
+ fun:*mp*
+ fun:*
+}
+
+{
+ NSS *mp*
+ Memcheck:Value4
+ fun:*
+ fun:*mp*
+}
+
+{
+ NSS *mp*
+ Memcheck:Value4
+ fun:*mp*
+ fun:*dsa*
+}
+
+{
+ NSS *alg_fips*
+ Memcheck:Cond
+ fun:*alg_fips*
+ fun:*
+}
+
+{
+ NSS memcmp/prng
+ Memcheck:Value4
+ fun:memcmp
+ fun:*prng*
+}
+
+{
+ NSS *alg_fips*
+ Memcheck:Value4
+ fun:*alg_fips*
+ fun:*prng*
+}
+
+{
+ NSS *DSA_Generate*
+ Memcheck:Value4
+ fun:*DSA_Generate*
+ fun:*DSA*
+}
+
+{
+ NSS *DSA_Generate*
+ Memcheck:Cond
+ fun:*DSA_Generate*
+ fun:*DSA*
+}
+
+{
+ NSS *memset/SECITEM*
+ Memcheck:Value4
+ fun:*mem*
+ fun:*SECITEM*
+}
+
+{
+ NSS *FreeArena*
+ Memcheck:Cond
+ fun:*Arena*
+ fun:*Arena*
+}
+
+{
+ NSS *memcpy/sec*
+ Memcheck:Cond
+ fun:*mem*
+ fun:*sec*
+}
+
+{
+ NSS *memcpy/sec*
+ Memcheck:Value4
+ fun:*mem*
+ fun:*sec*
+}
+
+{
+ NSS *sec*
+ Memcheck:Value4
+ fun:*sec*
+ fun:*
+}
+
+{
+ NSS *sec*
+ Memcheck:Cond
+ fun:*sec*
+ fun:*
+}
+
+
+{
+ NSS *PL_Hash*
+ Memcheck:Value4
+ fun:*PL_Hash*
+ fun:*
+}
+
+{
+ NSS *PL_Hash*
+ Memcheck:Cond
+ fun:*PL_Hash*
+ fun:*
+}
+
+{
+ NSS *SEC*
+ Memcheck:Value4
+ fun:*SEC*
+ fun:*
+}
+
+{
+ NSS *SEC*
+ Memcheck:Cond
+ fun:*SEC*
+ fun:*
+}
+
+{
+ NSS *PORT*
+ Memcheck:Value4
+ fun:*PORT*
+ fun:*
+}
+
+{
+ NSS *PORT*
+ Memcheck:Cond
+ fun:*PORT*
+ fun:*
+}
+
+{
+ NSS *DES*
+ Memcheck:Value4
+ fun:*DES*
+ fun:*
+}
+
+{
+ NSS *__GI__*
+ Addrcheck,Memcheck:Param
+ write(buf)
+ obj:*libc-2.2*so
+}
+
+{
+ NSS xmlSecBase64*
+ Memcheck:Value4
+ fun:xmlSecBase64*
+}
+
+{
+ NSS rijndael*
+ Memcheck:Value4
+ fun:rijndael*
+}
+
diff --git a/tests/nssdb/cert8.db b/tests/nssdb/cert8.db
new file mode 100644
index 00000000..ac40a332
--- /dev/null
+++ b/tests/nssdb/cert8.db
Binary files differ
diff --git a/tests/nssdb/key3.db b/tests/nssdb/key3.db
new file mode 100644
index 00000000..fcbd3e84
--- /dev/null
+++ b/tests/nssdb/key3.db
Binary files differ
diff --git a/tests/nssdb/secmod.db b/tests/nssdb/secmod.db
new file mode 100644
index 00000000..9a028078
--- /dev/null
+++ b/tests/nssdb/secmod.db
Binary files differ
diff --git a/tests/openssl.supp b/tests/openssl.supp
new file mode 100644
index 00000000..78f5b835
--- /dev/null
+++ b/tests/openssl.supp
@@ -0,0 +1,63 @@
+##----------------------------------------------------------------------##
+#
+# Errors to suppress by default with OpenSSL
+#
+# Format of this file is:
+# {
+# name_of_suppression
+# kind: one of Param Value1 Value2 Value4 Value8
+# Free Addr1 Addr2 Addr4 Addr8
+# Cond (previously known as Value0)
+# (if Param: name of system call param, if Free: name of free-ing fn)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+
+##----------------------------------------------------------------------##
+{
+ OpenSSL BN_*(Cond)
+ Memcheck:Cond
+ fun:BN_*
+}
+
+{
+ OpenSSL BN_*(Value4)
+ Memcheck:Value4
+ fun:BN_*
+}
+
+{
+ OpenSSL bn_*(Cond)
+ Memcheck:Cond
+ fun:bn_*
+}
+
+{
+ OpenSSL bn_*(Value4)
+ Memcheck:Value4
+ fun:bn_*
+}
+
+{
+ OpenSSL AES_encrypt(Value4)
+ Memcheck:Value4
+ fun:AES_encrypt
+ fun:AES_cbc_encrypt
+}
+
+{
+ OpenSSL DES_encrypt*(Value4)
+ Memcheck:Value4
+ fun:DES_encrypt2
+ fun:DES_encrypt3
+}
+
+{
+ OpenSSL RSA_padding_add_PKCS1_type_2(Cond)
+ Memcheck:Cond
+ fun:RSA_padding_add_PKCS1_type_2
+ fun:RSA_eay_public_encrypt
+}
+
diff --git a/tests/phaos-xmldsig-three/README.txt b/tests/phaos-xmldsig-three/README.txt
new file mode 100644
index 00000000..9703fcf0
--- /dev/null
+++ b/tests/phaos-xmldsig-three/README.txt
@@ -0,0 +1,248 @@
+Sample XML Signatures Produced Using the Phaos XML Toolkit
+
+November 26, 2002
+
+
+Contents of phaos-xmldsig-three
+===============================
+
+ signature-rsa-enveloped.xml
+ ---------------------------
+ Contains an RSA enveloped signature.
+
+
+ signature-rsa-enveloping.xml
+ ----------------------------
+ Contains an RSA enveloping signature.
+
+
+ signature-rsa-detached.xml
+ --------------------------
+ Contains an RSA detached signature.
+
+
+ signature-dsa-enveloped.xml
+ ---------------------------
+ Contains a DSA enveloped signature.
+
+
+ signature-dsa-enveloping.xml
+ ----------------------------
+ Contains a DSA enveloping signature.
+
+
+ signature-dsa-detached.xml
+ --------------------------
+ Contains a DSA detached signature.
+
+
+ signature-hmac-md5-c14n-enveloping.xml
+ --------------------------------------
+ Contains an enveloping MD5 HMAC signature and uses XML Canonicalization
+ as the canonicalization method. The HMAC secret is the ASCII encoding of
+ the word "test".
+
+
+ signature-hmac-sha1-exclusive-c14n-enveloped.xml
+ ------------------------------------------------
+ Contains an enveloped SHA-1 HMAC signature and uses the Exclusive XML
+ Canonicalization canonicalization method. The HMAC secret is the ASCII
+ encoding of the word "test".
+
+
+ signature-hmac-sha1-exclusive-c14n-comments-detached.xml
+ --------------------------------------------------------
+ Contains a detached SHA-1 HMAC signature and uses the Exclusive XML
+ Canonicalization With Comments canonicalization method. The HMAC secret
+ is the ASCII encoding of the word "test".
+
+
+ signature-hmac-sha1-40-c14n-comments-detached.xml
+ -------------------------------------------------
+ Contains a detached 40-byte SHA-1 HMAC signature and uses the XML
+ Canonicalization With Comments canonicalization method. The HMAC secret is
+ the ASCII encoding of the word "test".
+
+
+ signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml
+ -----------------------------------------------------------
+ Contains a detached 40 byte SHA-1 HMAC signature and uses the Exclusive
+ XML Canonicalization With Comments canonicalization method. The HMAC secret
+ is the ASCII encoding of the word "test".
+
+
+ signature-dsa-detached-manifest.xml
+ -----------------------------------
+ Contains a detached DSA signature with a manifest.
+
+
+ signature-rsa-detached-manifest.xml
+ ----------------------------------
+ Contains a detached RSA signature with a manifest.
+
+
+ signature-rsa-detached-b64-transform.xml
+ ----------------------------------------
+ Contains a detached RSA signature with a Base64 decode transform.
+
+
+ signature-rsa-detached-xpath-transform.xml
+ ------------------------------------------
+ Contains a detached RSA signature with an XPath transform.
+
+
+ signature-rsa-xpath-transform-enveloped.xml
+ ------------------------------------------
+ Contains an RSA signature with an XPath transform that produces the
+ same result as the enveloped signature algorithm.
+
+
+ signature-rsa-detached-xslt-transform.xml
+ ------------------------------------------
+ Contains a detached RSA signature with an XSLT transformation.
+
+
+ signature-rsa-detached-x509-data.xml
+ ------------------------------------
+ Contains a detached RSA signature with several X509Data subelements.
+
+
+ signature-rsa-detached-x509-data-subject-name.xml
+ ------------------------------------
+ Contains a detached RSA signature with an X509SubjectName that
+ references the subject name of the certificate stored in
+ certs/rsa-client-cert.der.
+
+
+ signature-rsa-detached-x509-data-issuer-serial.xml
+ ------------------------------------
+ Contains a detached RSA signature with an X509IssuerSerial that
+ references the issuer and serial number of the certificate stored in
+ certs/rsa-client-cert.der.
+
+
+ signature-rsa-detached-x509-data-ski.xml
+ ------------------------------------
+ Contains a detached RSA signature with an X509SKI that
+ references the Subject Key Identifier of the certificate stored in
+ certs/rsa-client-cert.der.
+
+
+ signature-rsa-detached-x509-data-client-cert.xml
+ ------------------------------------
+ Contains a detached RSA signature with an X509Certificate that
+ represents the certificate stored in certs/rsa-client-cert.der.
+
+
+ signature-rsa-detached-x509-data-cert-chain.xml
+ ------------------------------------
+ Contains a detached RSA signature with two X509Certificate
+ elements that represent the certificates stored in
+ certs/rsa-client-cert.der and certs/rsa-ca-cert.der.
+
+
+ signature-rsa-detached-xslt-transform-retrieval-method.xml
+ ------------------------------------
+ Contains a detached RSA signature with an XSLT transform and a KeyInfo
+ element that refers to an external X.509 certificate. The certificate
+ is located in certs/rsa-client-cert.der.
+
+
+ signature-big.xml
+ -----------------
+ Contains a larger detached RSA signature that contains a manifest and many
+ references that test various transformation algorithms, URI reference syntax
+ formats, etc. The KeyInfo contains a KeyName whose value is the subject
+ name of the certificate stored in certs/rsa-client-cert.der.
+
+
+ signature-rsa-detached-xslt-transform-bad-retrieval-method.xml
+ ---------------------------------------------------------------
+ Contains a detached RSA signature with an XSLT transform and a KeyInfo
+ element that refers to an INCORRECT external X.509 certificate. (The correct
+ X.509 certificate is located in certs/rsa-client-cert.der.) Verification
+ should FAIL.
+
+
+ signature-rsa-enveloped-bad-digest-val.xml
+ ------------------------------------------
+ Contains an enveloped RSA signature that contains a reference with an INCORRECT
+ digest value. Verification should FAIL.
+
+
+ signature-rsa-enveloped-bad-sig.xml
+ -----------------------------------
+ Contains an enveloped RSA signature that contains a reference that was added
+ after the signature value was computed. Verification should FAIL.
+
+
+ document.xml
+ ------------
+ An XML document that is referenced by some of the signature examples.
+
+
+ document-stylesheet.xml
+ -----------------------
+ The same as document.xml with the addition of an xsl-stylesheet processing
+ instruction.
+
+
+ document.xsl
+ ------------
+ An XSL stylesheet referenced by several of the signature examples and
+ document-stylesheet.xml.
+
+
+ document.b64
+ ------------
+ A Base64 encoded XML document.
+
+
+ README.txt
+ ----------
+ This file.
+
+
+
+Contents of phaos-xmldsig-three/certs
+=====================================
+
+ rsa-cert.der
+ ------------
+ An RSA end entity certificate issued by the CA certificate contained in
+ rsa-ca-cert.der.
+
+ enc-rsa-key.der
+ ---------------
+ The RSA private key that matches rsa-cert.der, password-encrypted using
+ the PKCS#8 format. The password is "test".
+
+ dsa-cert.der
+ ------------
+ An DSA end entity certificate issued by the CA certificate contained in
+ dsa-ca-cert.der.
+
+ enc-dsa-key.der
+ ---------------
+ The DSA private key that matches dsa-cert.der, password-encrypted using
+ the PKCS#8 format. The password is "test".
+
+ rsa-ca-cert.der
+ ---------------
+ An RSA self-signed CA certificate.
+
+ dsa-ca-cert.der
+ ---------------
+ A DSA self-signed CA certificate.
+
+ crl.der
+ -------
+ A sample CRL that revokes rsa-cert.der.
+
+
+
+Joe Morgan
+Software Engineer
+Phaos Technology
+jmorgan@phaos.com
+http://www.phaos.com/
diff --git a/tests/phaos-xmldsig-three/certs/crl.der b/tests/phaos-xmldsig-three/certs/crl.der
new file mode 100644
index 00000000..c80e2729
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/crl.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/certs/dsa-ca-cert.der b/tests/phaos-xmldsig-three/certs/dsa-ca-cert.der
new file mode 100644
index 00000000..50d738cb
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/dsa-ca-cert.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/certs/dsa-cert.der b/tests/phaos-xmldsig-three/certs/dsa-cert.der
new file mode 100644
index 00000000..461dbf02
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/dsa-cert.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/certs/enc-dsa-key.der b/tests/phaos-xmldsig-three/certs/enc-dsa-key.der
new file mode 100644
index 00000000..3cfb02a0
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/enc-dsa-key.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/certs/enc-rsa-key.der b/tests/phaos-xmldsig-three/certs/enc-rsa-key.der
new file mode 100644
index 00000000..0715b172
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/enc-rsa-key.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/certs/hmackey.bin b/tests/phaos-xmldsig-three/certs/hmackey.bin
new file mode 100644
index 00000000..30d74d25
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/hmackey.bin
@@ -0,0 +1 @@
+test \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/certs/rsa-ca-cert.der b/tests/phaos-xmldsig-three/certs/rsa-ca-cert.der
new file mode 100644
index 00000000..7bd9a2ca
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/rsa-ca-cert.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/certs/rsa-cert.der b/tests/phaos-xmldsig-three/certs/rsa-cert.der
new file mode 100644
index 00000000..a6c6e5f4
--- /dev/null
+++ b/tests/phaos-xmldsig-three/certs/rsa-cert.der
Binary files differ
diff --git a/tests/phaos-xmldsig-three/document-stylesheet.xml b/tests/phaos-xmldsig-three/document-stylesheet.xml
new file mode 100644
index 00000000..8f86944f
--- /dev/null
+++ b/tests/phaos-xmldsig-three/document-stylesheet.xml
@@ -0,0 +1,7 @@
+<?xml-stylesheet type="text/xsl" href="document.xsl"?>
+<player id="10012" bats="left" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+</player>
diff --git a/tests/phaos-xmldsig-three/document.b64 b/tests/phaos-xmldsig-three/document.b64
new file mode 100644
index 00000000..79649816
--- /dev/null
+++ b/tests/phaos-xmldsig-three/document.b64
@@ -0,0 +1,4 @@
+PHBsYXllciBpZD0iMTAwMTIiIGJhdHM9ImxlZnQiIHRocm93cz0icmlnaHQiPg0K
+CTwhLS0gSGVyZSdzIGEgY29tbWVudCAtLT4NCgk8bmFtZT5BbGZvbnNvIFNvcmlh
+bm88L25hbWU+DQoJPHBvc2l0aW9uPjJCPC9wb3NpdGlvbj4NCgk8dGVhbT5OZXcg
+WW9yayBZYW5rZWVzPC90ZWFtPg0KPC9wbGF5ZXI+DQo=
diff --git a/tests/phaos-xmldsig-three/document.xml b/tests/phaos-xmldsig-three/document.xml
new file mode 100644
index 00000000..2421be1c
--- /dev/null
+++ b/tests/phaos-xmldsig-three/document.xml
@@ -0,0 +1,6 @@
+<player id="10012" bats="left" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+</player>
diff --git a/tests/phaos-xmldsig-three/document.xsl b/tests/phaos-xmldsig-three/document.xsl
new file mode 100644
index 00000000..7c3cd854
--- /dev/null
+++ b/tests/phaos-xmldsig-three/document.xsl
@@ -0,0 +1,45 @@
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" >
+
+<xsl:strip-space elements="player name position team"/>
+<xsl:output
+ method="xml"
+ indent="no"
+ encoding="iso-8859-1"
+/>
+
+<xsl:template match="player">
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="name"/>
+ </title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="player/name">
+ <h1>
+ <xsl:apply-templates/>
+ </h1>
+</xsl:template>
+
+<xsl:template match="player/position">
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="player/team">
+ <h3>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+
+
+</xsl:stylesheet>
diff --git a/tests/phaos-xmldsig-three/signature-big.xml b/tests/phaos-xmldsig-three/signature-big.xml
new file mode 100644
index 00000000..ff572d15
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-big.xml
@@ -0,0 +1,39 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-b64" URI="document.b64"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-xslt" URI="document-stylesheet.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:strip-space elements="player name position team"/>
+<xsl:output encoding="iso-8859-1" indent="no" method="xml"/>
+
+<xsl:template match="player">
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="name"/>
+ </title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="player/name">
+ <h1>
+ <xsl:apply-templates/>
+ </h1>
+</xsl:template>
+
+<xsl:template match="player/position">
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="player/team">
+ <h3>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+
+
+</xsl:stylesheet></dsig:Transform><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>2HiTcKdfZ9O83wthUFP8ISRdRXQ=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-xpath" URI="document.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">@*</dsig:XPath></dsig:Transform><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>TReY52bmpNnv+3gET3YhgJXTImk=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest-0"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>Zk5dsGelTgg61hMSPfKYRRYZvr8=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-object-0" Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-0"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>BGhr3V/fMiTscUgZVMEMmeQvQpI=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-key-info" URI="#key-info"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>k08/9AdPEuZyBRJhHKyjH1px3IQ=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-key-name" URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:ds="http://www.w3.org/2000/09/xmldsig#">ancestor-or-self::ds:KeyName</dsig:XPath></dsig:Transform><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>4ehoLl+KxYvqlwPGRaPcpxprLeA=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-xpointer-0" URI="#xpointer(id('reference-b64'))"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>CBCjDfHcpu7cWHr6zD0y/Y62fso=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-xpointer-1" URI="#xpointer(id('reference-object-0'))"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>RwemIyLY5WSPgXA3OZiZLhGCyTo=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>EUqZ5jMNvD/dHHi90X//yL7r7t6WpyY0fChIAaUPPXsbDHeNgzfsDe8AZYYD6klroeYJRuHXHtY1PdB5b9+XfwO3oduznLYVN3bmeLMvdYMWlw4SGYtbvyNZtovgA8qcEAQ29sQ+aA9pvCQgSKpTJF8DuYv6fKlktZtPyYh7HRk=</dsig:SignatureValue><dsig:KeyInfo Id="key-info"><dsig:KeyName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:KeyName></dsig:KeyInfo><dsig:Object Id="object-0"><dsig:Manifest Id="manifest-0"><dsig:Reference Id="reference-raw-x509-cert" Type="http://www.w3.org/2000/09/xmldsig#rawX509Certificate" URI="certs/rsa-cert.der"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>RtIlTB3BmyCRFTr7sRtOyPni0Ig=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-rfc3161" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-dsa-detached.xml b/tests/phaos-xmldsig-three/signature-dsa-detached.xml
new file mode 100644
index 00000000..81a394bf
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-dsa-detached.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><dsig:Reference URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>IEYfZwI0+/wn9rTbJdXaIVAvjJN1vvmDDbw4X4GY1Row9OMyiI7VqA==</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIDjzCCA02gAwIBAgIDHoSBMAkGByqGSM44BAMwfDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFjAUBgNVBAMTDVRlc3QgQ0EgKERTQSkwHhcNMDIwNDI5MTkxNzUyWhcNMTIwNDI2MTkxNzUyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxGjAYBgNVBAMTEVRlc3QgQ2xpZW50IChEU0EpMIIBtjCCASsGByqGSM44BAEwggEeAoGBAOZZarV6NhtYOtSfFhbD9NFPXJec+3ps5Mak63uAvKVf6nU/GEZG8a7xyuwXOwV3ce2m3D+OvONg3BGdO7u3rAs5VfY84kE1rIo/XepfDa2vUUTKs9+8A8dIVD0X5lh3hFRR6UJIFJS9ZWov1I7N+n24iJ11qEd31kJ+vr46j+UvAhUAvSPQz7ak24nBo5gwSMfEXkvEblcCgYAJTKoCgSREekqtuZWcDy3e+RIQzwaTeoeZM26fFV2YFVqK2o+d/oPtJfEtFA2+4nz4EAjvRT/6K7kRSScT5DO8fZs8/0H2leX2U0FXzzDOMIL4zeRAPb4GOmz410mROOGskzKCLwo8YINuZ9Kp/4XX6cEikMiArNbFuFQwd31V8gOBhAACgYAktkcKG0v06OFikPa1Wk3j5Sun0/RH/WOaRADe9jJxJ/oYO0YPIRKMK5aXawfgTAi3fImSE3gI/AaCuuSrwfVL5TtfvqdMRqhsCYSWcGsF4Xq5q1HDCYK9WbgMIqzVck143VCWxsuKR/1omC7OOPy6fPJhlF2MxyCOEu1WN5gALaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBRsW9jwXGyEQfGGTp1+6fy5Alr2qDAJBgcqhkjOOAQDAzEAMC4CFQCLHnvOkvMdxjw3sSYgdljtiEGPTAIVALEZRsqT2ldGoOE3dUgY3LEWenhN</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (DSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>2000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (DSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>bFvY8FxshEHxhk6dfun8uQJa9qg=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-dsa-enveloped.xml b/tests/phaos-xmldsig-three/signature-dsa-enveloped.xml
new file mode 100644
index 00000000..9bc8bf23
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-dsa-enveloped.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>Hmt1KjwoXdyyroB+KfcoUEaM5NcXhwB2CbIblJHwTxek1bF1ZMqvig==</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIDjzCCA02gAwIBAgIDHoSBMAkGByqGSM44BAMwfDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFjAUBgNVBAMTDVRlc3QgQ0EgKERTQSkwHhcNMDIwNDI5MTkxNzUyWhcNMTIwNDI2MTkxNzUyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxGjAYBgNVBAMTEVRlc3QgQ2xpZW50IChEU0EpMIIBtjCCASsGByqGSM44BAEwggEeAoGBAOZZarV6NhtYOtSfFhbD9NFPXJec+3ps5Mak63uAvKVf6nU/GEZG8a7xyuwXOwV3ce2m3D+OvONg3BGdO7u3rAs5VfY84kE1rIo/XepfDa2vUUTKs9+8A8dIVD0X5lh3hFRR6UJIFJS9ZWov1I7N+n24iJ11qEd31kJ+vr46j+UvAhUAvSPQz7ak24nBo5gwSMfEXkvEblcCgYAJTKoCgSREekqtuZWcDy3e+RIQzwaTeoeZM26fFV2YFVqK2o+d/oPtJfEtFA2+4nz4EAjvRT/6K7kRSScT5DO8fZs8/0H2leX2U0FXzzDOMIL4zeRAPb4GOmz410mROOGskzKCLwo8YINuZ9Kp/4XX6cEikMiArNbFuFQwd31V8gOBhAACgYAktkcKG0v06OFikPa1Wk3j5Sun0/RH/WOaRADe9jJxJ/oYO0YPIRKMK5aXawfgTAi3fImSE3gI/AaCuuSrwfVL5TtfvqdMRqhsCYSWcGsF4Xq5q1HDCYK9WbgMIqzVck143VCWxsuKR/1omC7OOPy6fPJhlF2MxyCOEu1WN5gALaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBRsW9jwXGyEQfGGTp1+6fy5Alr2qDAJBgcqhkjOOAQDAzEAMC4CFQCLHnvOkvMdxjw3sSYgdljtiEGPTAIVALEZRsqT2ldGoOE3dUgY3LEWenhN</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (DSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>2000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (DSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>bFvY8FxshEHxhk6dfun8uQJa9qg=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-dsa-enveloping.xml b/tests/phaos-xmldsig-three/signature-dsa-enveloping.xml
new file mode 100644
index 00000000..20e40fcf
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-dsa-enveloping.xml
@@ -0,0 +1,6 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#DSig.Object_FXUsJKYcZCtVFl80BxBacw22"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>rXdK89trp685VfNWmSyYrLGP+5Y=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>iqsxSGtOON/M37ZczTO5EZXQrNQSO0pIPQlLysCmfOLqAoHi2MBwvA==</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIDjzCCA02gAwIBAgIDHoSBMAkGByqGSM44BAMwfDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFjAUBgNVBAMTDVRlc3QgQ0EgKERTQSkwHhcNMDIwNDI5MTkxNzUyWhcNMTIwNDI2MTkxNzUyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxGjAYBgNVBAMTEVRlc3QgQ2xpZW50IChEU0EpMIIBtjCCASsGByqGSM44BAEwggEeAoGBAOZZarV6NhtYOtSfFhbD9NFPXJec+3ps5Mak63uAvKVf6nU/GEZG8a7xyuwXOwV3ce2m3D+OvONg3BGdO7u3rAs5VfY84kE1rIo/XepfDa2vUUTKs9+8A8dIVD0X5lh3hFRR6UJIFJS9ZWov1I7N+n24iJ11qEd31kJ+vr46j+UvAhUAvSPQz7ak24nBo5gwSMfEXkvEblcCgYAJTKoCgSREekqtuZWcDy3e+RIQzwaTeoeZM26fFV2YFVqK2o+d/oPtJfEtFA2+4nz4EAjvRT/6K7kRSScT5DO8fZs8/0H2leX2U0FXzzDOMIL4zeRAPb4GOmz410mROOGskzKCLwo8YINuZ9Kp/4XX6cEikMiArNbFuFQwd31V8gOBhAACgYAktkcKG0v06OFikPa1Wk3j5Sun0/RH/WOaRADe9jJxJ/oYO0YPIRKMK5aXawfgTAi3fImSE3gI/AaCuuSrwfVL5TtfvqdMRqhsCYSWcGsF4Xq5q1HDCYK9WbgMIqzVck143VCWxsuKR/1omC7OOPy6fPJhlF2MxyCOEu1WN5gALaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBRsW9jwXGyEQfGGTp1+6fy5Alr2qDAJBgcqhkjOOAQDAzEAMC4CFQCLHnvOkvMdxjw3sSYgdljtiEGPTAIVALEZRsqT2ldGoOE3dUgY3LEWenhN</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (DSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>2000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (DSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>bFvY8FxshEHxhk6dfun8uQJa9qg=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="DSig.Object_FXUsJKYcZCtVFl80BxBacw22" MimeType="text/xml"><player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+</player></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-dsa-manifest.xml b/tests/phaos-xmldsig-three/signature-dsa-manifest.xml
new file mode 100644
index 00000000..291d949a
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-dsa-manifest.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>k0jMfEzvBG2Uh9H0MCqLn3OqkFVUwKIyl6VWlQbk91JzDgzMhtEyrg==</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:DSAKeyValue><dsig:P>5llqtXo2G1g61J8WFsP00U9cl5z7emzkxqTre4C8pV/qdT8YRkbxrvHK7Bc7BXdx7abcP46842DcEZ07u7esCzlV9jziQTWsij9d6l8Nra9RRMqz37wDx0hUPRfmWHeEVFHpQkgUlL1lai/Ujs36fbiInXWoR3fWQn6+vjqP5S8=</dsig:P><dsig:Q>vSPQz7ak24nBo5gwSMfEXkvEblc=</dsig:Q><dsig:G>CUyqAoEkRHpKrbmVnA8t3vkSEM8Gk3qHmTNunxVdmBVaitqPnf6D7SXxLRQNvuJ8+BAI70U/+iu5EUknE+QzvH2bPP9B9pXl9lNBV88wzjCC+M3kQD2+Bjps+NdJkTjhrJMygi8KPGCDbmfSqf+F1+nBIpDIgKzWxbhUMHd9VfI=</dsig:G><dsig:Y>JLZHChtL9OjhYpD2tVpN4+Urp9P0R/1jmkQA3vYycSf6GDtGDyESjCuWl2sH4EwIt3yJkhN4CPwGgrrkq8H1S+U7X76nTEaobAmElnBrBeF6uatRwwmCvVm4DCKs1XJNeN1QlsbLikf9aJguzjj8unzyYZRdjMcgjhLtVjeYAC0=</dsig:Y><dsig:J>ATfG1k4XSpDlWczkblMTpUkvazbCh6NH0ImOzLyjXlhRpihqtb/HBaCGWs3JzAiafW75tk57/9+vj6drV/vl44l14K5piP7VnDSADNCkBq9gCN/wM3u8w7cb8gpgTqC68I2yHzVVh4umjOrrgg==</dsig:J></dsig:DSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-hmac-md5-c14n-enveloping.xml b/tests/phaos-xmldsig-three/signature-hmac-md5-c14n-enveloping.xml
new file mode 100644
index 00000000..f7a1f1f1
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-hmac-md5-c14n-enveloping.xml
@@ -0,0 +1,6 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-md5"/><dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-paOGfpowMpVEz7RkFL6iWA22"><dsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/><dsig:DigestValue>tQ7wVagV/v8GTSZnYYYw3g==</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>BsR9wW+N76Dg+QYMpwN5kA==</dsig:SignatureValue><dsig:Object Id="object-paOGfpowMpVEz7RkFL6iWA22" MimeType="text/xml"><player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+</player></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-hmac-sha1-40-c14n-comments-detached.xml b/tests/phaos-xmldsig-three/signature-hmac-sha1-40-c14n-comments-detached.xml
new file mode 100644
index 00000000..5427ba38
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-hmac-sha1-40-c14n-comments-detached.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"><dsig:HMACOutputLength>80</dsig:HMACOutputLength></dsig:SignatureMethod><dsig:Reference URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>e/Cz41h/IJocTg==</dsig:SignatureValue></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml b/tests/phaos-xmldsig-three/signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml
new file mode 100644
index 00000000..8a9fabfc
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"><dsig:HMACOutputLength>80</dsig:HMACOutputLength></dsig:SignatureMethod><dsig:Reference URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>iuQK6TvAjMciIw==</dsig:SignatureValue></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-comments-detached.xml b/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-comments-detached.xml
new file mode 100644
index 00000000..05238c71
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-comments-detached.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><dsig:Reference URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>kF7hLqyaxP0KeS7N3VereUYo3XE=</dsig:SignatureValue></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-enveloped.xml b/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-enveloped.xml
new file mode 100644
index 00000000..0ad5e852
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-enveloped.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>KOKmDJ7emm1ESMBujg88B8g/Rd8=</dsig:SignatureValue></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-detached-b64-transform.xml b/tests/phaos-xmldsig-three/signature-rsa-detached-b64-transform.xml
new file mode 100644
index 00000000..b744c9b6
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-detached-b64-transform.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>9BGp06kfYkpbY8LXwb6YS+UJz5A=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>GbZsFzJ3pu+nmV22+gvH3DjUjw7uLQdCxr83GjtrNuBpnV3y6nqp1S5Tu7TQeRQjc7YUAXBwcq74ur4BBzqKVF3waB0zP99HH6u165g811s05lKLdw4WY3WdfA67mvDSbDCYvb6ENot7uQcEnDTyIrrsfekZTvqCX/bHwb7di34=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>gIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZU=</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.b64"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-detached-xpath-transform.xml b/tests/phaos-xmldsig-three/signature-rsa-detached-xpath-transform.xml
new file mode 100644
index 00000000..b9d032b2
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-detached-xpath-transform.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>8EQLOiDYEmJDGDVTgNAcWNxr2Hg=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>dVvxMcQMshKcCJuEaqPf4gK2yQdZrEEflYIWKZ5vZ5Hxm2q98sifPFdbEH4+juo0wTbu2fqbY4U9pOGWbkZRerOh/iCtDU+pNqwrzXvmPhRIb9Ncwo7sRuy70j4jewNFhyku0PKbKuVmikZugWr+u3nS2f6CTsEp1/JzF4bwLA4=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>gIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZU=</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">@*</dsig:XPath></dsig:Transform><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>TReY52bmpNnv+3gET3YhgJXTImk=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method.xml b/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method.xml
new file mode 100644
index 00000000..5013275e
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>fbye4Xm//RPUTsLd1dwJPo0gPZYX6gVYCEB/gz2348EARNk/nCCch1fFfpuqAGMKg4ayVC0yWkUyE5V4QB33jaGlh9wuNQSjxs6TIvFwSsT+0ioDgVgFv0gVeasbyNL4rFEHuAWL8QKwDT9L6b2wUvJC90DmpBs9GMR2jTZIWlM=</dsig:SignatureValue><dsig:KeyInfo><dsig:RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#rawX509Certificate" URI="certs/dsa-ca-cert.der"/></dsig:KeyInfo></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method.xml b/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method.xml
new file mode 100644
index 00000000..cee62b4d
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method.xml
@@ -0,0 +1,39 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>afPdOzRB6PgYpVX2GECgTBf8P30=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>ffXjlLiu+EuGKfMLhvhZb6m3ULwd1zJ7BBe48oHrGxGsEdQWLt18AyOYMFHlhRi0i2DPurR6jPJGKWhwD6uRM1c6Rb/eDlZ7FNeqI0Bzv8xA0QEZ1nLAVJBC4LAKZp3Ha+7hs+l9rKuCk9ZiSO1UDMppEd8zoTucqCiAKTOWMd8=</dsig:SignatureValue><dsig:KeyInfo><dsig:RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#rawX509Certificate" URI="certs/rsa-cert.der"/></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document-stylesheet.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:strip-space elements="player name position team"/>
+<xsl:output encoding="iso-8859-1" indent="no" method="xml"/>
+
+<xsl:template match="player">
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="name"/>
+ </title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="player/name">
+ <h1>
+ <xsl:apply-templates/>
+ </h1>
+</xsl:template>
+
+<xsl:template match="player/position">
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="player/team">
+ <h3>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+
+
+</xsl:stylesheet></dsig:Transform><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>2HiTcKdfZ9O83wthUFP8ISRdRXQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform.xml b/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform.xml
new file mode 100644
index 00000000..bcbc6ee6
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform.xml
@@ -0,0 +1,39 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>afPdOzRB6PgYpVX2GECgTBf8P30=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>ffXjlLiu+EuGKfMLhvhZb6m3ULwd1zJ7BBe48oHrGxGsEdQWLt18AyOYMFHlhRi0i2DPurR6jPJGKWhwD6uRM1c6Rb/eDlZ7FNeqI0Bzv8xA0QEZ1nLAVJBC4LAKZp3Ha+7hs+l9rKuCk9ZiSO1UDMppEd8zoTucqCiAKTOWMd8=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>gIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZU=</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document-stylesheet.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:strip-space elements="player name position team"/>
+<xsl:output encoding="iso-8859-1" indent="no" method="xml"/>
+
+<xsl:template match="player">
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="name"/>
+ </title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="player/name">
+ <h1>
+ <xsl:apply-templates/>
+ </h1>
+</xsl:template>
+
+<xsl:template match="player/position">
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="player/team">
+ <h3>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+
+
+</xsl:stylesheet></dsig:Transform><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>2HiTcKdfZ9O83wthUFP8ISRdRXQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-detached.xml b/tests/phaos-xmldsig-three/signature-rsa-detached.xml
new file mode 100644
index 00000000..22e28f6e
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-detached.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>clDfKMq12I9JQp01RSzDcBro/+H8rTgaD9kgUCgvA8dEF55EessFUP6RC+KHZoNSJVGcnSKJa6Rtdi3mwS7b3zBo4pExiMLHgyi1UMViklX+MC75oU6tSDs3PP8r6BKmZqj0FNcjOh7wgJzey8nyv8UrTnQniSvZK62JYKz73sY=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val.xml b/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val.xml
new file mode 100644
index 00000000..f9bf744a
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nM52V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>fbye4Xm//RPUTsLd1dwJPo0gPZYX6gVYCEB/gz2348EARNk/nCCch1fFfpuqAGMKg4ayVC0yWkUyE5V4QB33jaGlh9wuNQSjxs6TIvFwSsT+0ioDgVgFv0gVeasbyNL4rFEHuAWL8QKwDT9L6b2wUvJC90DmpBs9GMR2jTZIWlM=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-sig.xml b/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-sig.xml
new file mode 100644
index 00000000..799795bc
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-sig.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="ref-EZnNy6QCskkDpv7kwcMl9w22" URI=""><dsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"/></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>fbye4Xm//RPUTsLd1dwJPo0gPZYX6gVYCEB/gz2348EARNk/nCCch1fFfpuqAGMKg4ayVC0yWkUyE5V4QB33jaGlh9wuNQSjxs6TIvFwSsT+0ioDgVgFv0gVeasbyNL4rFEHuAWL8QKwDT9L6b2wUvJC90DmpBs9GMR2jTZIWlM=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-enveloped.xml b/tests/phaos-xmldsig-three/signature-rsa-enveloped.xml
new file mode 100644
index 00000000..093ada4c
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-enveloped.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>fbye4Xm//RPUTsLd1dwJPo0gPZYX6gVYCEB/gz2348EARNk/nCCch1fFfpuqAGMKg4ayVC0yWkUyE5V4QB33jaGlh9wuNQSjxs6TIvFwSsT+0ioDgVgFv0gVeasbyNL4rFEHuAWL8QKwDT9L6b2wUvJC90DmpBs9GMR2jTZIWlM=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-enveloping.xml b/tests/phaos-xmldsig-three/signature-rsa-enveloping.xml
new file mode 100644
index 00000000..d8448988
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-enveloping.xml
@@ -0,0 +1,6 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#DSig.Object_oZgpbcerGtb0YWgPcBv8Fg22"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>OLdgv4vWS4DAsiZUr41BZgppB2Q=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>eiuD94jyedzuHvhICyQ8vkeHjyhiFf1dWQEikAaf+q2edJumgz2wECVA4g8v/97Sp8f5A/97ktVAknsRxmC7JHuwTzgaz9gKvqIbCpHZLAPxovI1wA8o+YzuH1lv4RtkMv3WYqwuGm3eisnEv464H9Sa2V6L0VUHNPk8MEwDUyo=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="DSig.Object_oZgpbcerGtb0YWgPcBv8Fg22" MimeType="text/xml"><player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+</player></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain.xml b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain.xml
new file mode 100644
index 00000000..e8ea5353
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509Certificate>MIICzjCCAjegAwIBAgIDAYagMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MDUyNFoXDTEwMTIzMTA1MDAwMFowfDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFjAUBgNVBAMTDVRlc3QgQ0EgKFJTQSkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALO5BLdMI/8/geNgk2SgbklQImTtQDwhkcutAlw35rS/84Y+Ct1qBi5r8c6JRVb/oEqQSs9TBczpLnd+D7xiqJ6/JcB3R9MDg/pAVoJCrCY4oZNlkJSasYWKZo77zSuUphNEfJEVZ4SMtwxZQLHFailJHm4L30zjI2E0N2YHyi7/AgMBAAGjXjBcMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwfGADAZBgNVHREEEjAQgQ50ZWNoQHBoYW9zLmNvbTAdBgNVHQ4EFgQUMwlR0HC1hlo487v3Z47eghoDMMwwDQYJKoZIhvcNAQEEBQADgYEAY+elRel/6kG/o7xNmU9CrZM1EJMh3cHoedPOHt4yHP6crj6OYZMA+C7ifHX/wvGpcwZymMPqlr3cQ7B7/h88yCVJuANTe1BQtA6nZ4Cz6Bh9Mip3n8ycuXCDbxkUd0ALQYD6SS2+awVSHVGYRmFRd9vyW1nkg9EsScaqa7XG+6A=</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert.xml b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert.xml
new file mode 100644
index 00000000..0a1f0b4b
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial.xml b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial.xml
new file mode 100644
index 00000000..3b20b283
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial></dsig:X509Data></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski.xml b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski.xml
new file mode 100644
index 00000000..0554d866
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name.xml b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name.xml
new file mode 100644
index 00000000..470da217
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName></dsig:X509Data></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-manifest.xml b/tests/phaos-xmldsig-three/signature-rsa-manifest.xml
new file mode 100644
index 00000000..49c30005
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-manifest.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>gIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZU=</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped.xml b/tests/phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped.xml
new file mode 100644
index 00000000..417ee3a9
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped.xml
@@ -0,0 +1,6 @@
+<player bats="left" id="10012" throws="right">
+ <!-- Here's a comment -->
+ <name>Alfonso Soriano</name>
+ <position>2B</position>
+ <team>New York Yankees</team>
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">count(ancestor-or-self::dsig:Signature | here()/ancestor::dsig:Signature[1]) &gt; count(ancestor-or-self::dsig:Signature)</dsig:XPath></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>eMfbu79eYzYilIOVlOw4r/PgJAJm4wdFhBnqxPf2OYtwtv/zHzbwvhfVQG90cYlWAdW7zaki1Om1LdPxgAb+urxb8e5gma3nxK+u/jPJ9ykQimqiOpBIpbGYOv/xFDS1XDu4LY4BITe+ZyyvUpYSFGv5X//eJ9rUyC8TJy8SNEk=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI></dsig:X509Data></dsig:KeyInfo></dsig:Signature></player> \ No newline at end of file
diff --git a/tests/phaos-xmldsig-three/signature-rsa-~x509-data-crl.xml b/tests/phaos-xmldsig-three/signature-rsa-~x509-data-crl.xml
new file mode 100644
index 00000000..005401a1
--- /dev/null
+++ b/tests/phaos-xmldsig-three/signature-rsa-~x509-data-crl.xml
@@ -0,0 +1 @@
+<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-manifest" Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>NIYWGr1CiWC02cfck47Xf/UM9AA=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>E3tz123wD0lO8VwhVEBfFTsD5gc0Bplx6YtVuDM0cUJDHb5F+DiuxGugGqIt+CKUklSO2kSD7YmDeTnT+bXbbX+wokGQhKib+GhHQbYW8rckvF9KJ7Z+U1uKKGW3NyKN281Q301XDQYKrSwBK+ns4+PmVpNMB8Rfqp6jWJkX1aE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509SubjectName>CN=Test Client (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509SubjectName><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=Test CA (RSA),OU=Engineering,O=Phaos Technology,L=New York,ST=New York,C=US</dsig:X509IssuerName><dsig:X509SerialNumber>1000001</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SKI>E+fKwQsT5lS3mWmBkalUTp0JRW8=</dsig:X509SKI><dsig:X509Certificate>MIIC0DCCAjmgAwIBAgIDD0JBMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MTY0MFoXDTEyMDQyNjE5MTY0MFowgYAxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRowGAYDVQQDExFUZXN0IENsaWVudCAoUlNBKTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAgIb6nAB9oS/AI5jIj6WymvQhRxiMlE07G4abmMliYi5zWzvaFE2tnU+RZIBgtoXcgDEIU/vsLQut7nzCn9mHxC8JEaV4D4U91j64AyZakShqJw7qjJfqUxxPL0yJv2oFiouPDjGuJ9JPi0NrsZq+yfWfM54s4b9SNkcOIVMybZUCAwEAAaNbMFkwDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB9gAMBkGA1UdEQQSMBCBDnRlY2hAcGhhb3MuY29tMB0GA1UdDgQWBBQT58rBCxPmVLeZaYGRqVROnQlFbzANBgkqhkiG9w0BAQQFAAOBgQCxbCovFST25t+ryN1RipqozxJQcguKfeCwbfgBNobzcRvoW0kSIf7zi4mtQajDM0NfslFF51/dex5Rn64HmFFshSwSvQQMyf5Cfaqv2XQ60OXq6nAFG6WbHoge6RqfIez2MWDLoSB6plsjKtMmL3mcybBhROtX5GGuLx1NtfhNFQ==</dsig:X509Certificate><dsig:X509Certificate>MIICzjCCAjegAwIBAgIDAYagMA0GCSqGSIb3DQEBBAUAMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxGTAXBgNVBAoTEFBoYW9zIFRlY2hub2xvZ3kxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRYwFAYDVQQDEw1UZXN0IENBIChSU0EpMB4XDTAyMDQyOTE5MDUyNFoXDTEwMTIzMTA1MDAwMFowfDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFjAUBgNVBAMTDVRlc3QgQ0EgKFJTQSkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALO5BLdMI/8/geNgk2SgbklQImTtQDwhkcutAlw35rS/84Y+Ct1qBi5r8c6JRVb/oEqQSs9TBczpLnd+D7xiqJ6/JcB3R9MDg/pAVoJCrCY4oZNlkJSasYWKZo77zSuUphNEfJEVZ4SMtwxZQLHFailJHm4L30zjI2E0N2YHyi7/AgMBAAGjXjBcMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwfGADAZBgNVHREEEjAQgQ50ZWNoQHBoYW9zLmNvbTAdBgNVHQ4EFgQUMwlR0HC1hlo487v3Z47eghoDMMwwDQYJKoZIhvcNAQEEBQADgYEAY+elRel/6kG/o7xNmU9CrZM1EJMh3cHoedPOHt4yHP6crj6OYZMA+C7ifHX/wvGpcwZymMPqlr3cQ7B7/h88yCVJuANTe1BQtA6nZ4Cz6Bh9Mip3n8ycuXCDbxkUd0ALQYD6SS2+awVSHVGYRmFRd9vyW1nkg9EsScaqa7XG+6A=</dsig:X509Certificate><dsig:X509CRL>MIIBnjCCAQcCAQEwDQYJKoZIhvcNAQEEBQAwfDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEZMBcGA1UEChMQUGhhb3MgVGVjaG5vbG9neTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFjAUBgNVBAMTDVRlc3QgQ0EgKFJTQSkXDTAyMDQyOTE5MTkyOFoXDTEyMDQyNjE5MTkyOFowJDAiAgMPQkEXDTAyMDQyOTE5MTkyOFowDDAKBgNVHRUEAwoBAaAxMC8wDAYDVR0UBAUCAy3GwDAfBgNVHSMEGDAWgBQzCVHQcLWGWjjzu/dnjt6CGgMwzDANBgkqhkiG9w0BAQQFAAOBgQBAp2he5UWtQxjGt1M6cQnBtNFbG2EYfQOtXt0bWOl8vjRMcFFtCc0/eXr9TQ13F7E4E6mF6geHzjFQ/qYF5r5ytZCBusCD2DGem0HWNiWIj9FMKvhxcqCYE3FY1d79EMjbI9Du81NUFZgdQub0LbhXkEt53j1p7ff8bI1ng+vtFw==</dsig:X509CRL></dsig:X509Data></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference Id="reference-0" URI="document.xml"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>5KcCsBlhsIP4iMmHcaU2dXJPU8k=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-1" URI="http://www.ietf.org/rfc/rfc3161.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>eT5ZU9fkIwQ9b9XAYq+iIYnj0DQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/tests/testDSig.sh b/tests/testDSig.sh
new file mode 100755
index 00000000..2ef9bc73
--- /dev/null
+++ b/tests/testDSig.sh
@@ -0,0 +1,875 @@
+#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testDSig started for xmlsec-$crypto library ($timestamp)"
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+echo "--- log file is $logfile"
+echo "--- testDSig started for xmlsec-$crypto library ($timestamp)" >> $logfile
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+
+##########################################################################
+#
+# xmldsig2ed-tests
+#
+# http://www.w3.org/TR/xmldsig2ed-tests/
+#
+##########################################################################
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "defCan-1" \
+ "c14n11 sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "defCan-2" \
+ "c14n11 xslt xpath sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+#
+# differences in XSLT transform output, tbd
+#
+# execDSigTest $res_success \
+# "xmldsig2ed-tests" \
+# "defCan-3" \
+# "c14n11 xslt xpath sha1 hmac-sha1" \
+# "hmac" \
+# "--hmackey $topfolder/keys/hmackey.bin" \
+# "--hmackey $topfolder/keys/hmackey.bin" \
+# "--hmackey $topfolder/keys/hmackey.bin"
+#
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "xpointer-1-SUN" \
+ "c14n11 xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "xpointer-2-SUN" \
+ "c14n11 xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "xpointer-3-SUN" \
+ "c14n11 xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "xpointer-4-SUN" \
+ "c14n11 xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "xpointer-5-SUN" \
+ "c14n11 xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "xmldsig2ed-tests" \
+ "xpointer-6-SUN" \
+ "c14n11 xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+##########################################################################
+#
+# aleksey-xmldsig-01
+#
+##########################################################################
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-dsa-x509chain" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-rsa-x509chain" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-md5-hmac-md5" \
+ "md5 hmac-md5" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-md5-hmac-md5-64" \
+ "md5 hmac-md5" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160" \
+ "ripemd160 hmac-ripemd160" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64" \
+ "ripemd160 hmac-ripemd160" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/xpointer-hmac" \
+ "xpointer sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha1-hmac-sha1" \
+ "sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64" \
+ "sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha224-hmac-sha224" \
+ "sha224 hmac-sha224" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64" \
+ "sha224 hmac-sha224" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha256-hmac-sha256" \
+ "sha256 hmac-sha256" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64" \
+ "sha256 hmac-sha256" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha384-hmac-sha384" \
+ "sha384 hmac-sha384" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64" \
+ "sha384 hmac-sha384" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha512-hmac-sha512" \
+ "sha512 hmac-sha512" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64" \
+ "sha512 hmac-sha512" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-md5-rsa-md5" \
+ "md5 rsa-md5" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160" \
+ "ripemd160 rsa-ripemd160" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha1-rsa-sha1" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha224-rsa-sha224" \
+ "sha224 rsa-sha224" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey$priv_key_suffix.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha256-rsa-sha256" \
+ "sha256 rsa-sha256" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey$priv_key_suffix.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha384-rsa-sha384" \
+ "sha384 rsa-sha384" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/largersakey$priv_key_suffix.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha512-rsa-sha512" \
+ "sha512 rsa-sha512" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/largersakey$priv_key_suffix.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+#
+# To generate expired cert run the following command
+# > xmlsec1 sign --pkcs12 tests/keys/expiredkey.p12 --pwd secret --output out.xml ./tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl
+#
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-expired-cert" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509 --verification-time 2005-07-10+10:00:00"
+
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/dtd-hmac-91" \
+ "sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin --dtd-file $topfolder/aleksey-xmldsig-01/dtd-hmac-91.dtd" \
+ "--hmackey $topfolder/keys/hmackey.bin --dtd-file $topfolder/aleksey-xmldsig-01/dtd-hmac-91.dtd" \
+ "--hmackey $topfolder/keys/hmackey.bin --dtd-file $topfolder/aleksey-xmldsig-01/dtd-hmac-91.dtd"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/x509data-test" \
+ "xpath2 sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format" \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/x509data-sn-test" \
+ "xpath2 sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --untrusted-$cert_format $topfolder/keys/ca2cert.$cert_format --untrusted-$cert_format $topfolder/keys/rsacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --untrusted-$cert_format $topfolder/keys/ca2cert.$cert_format --untrusted-$cert_format $topfolder/keys/rsacert.$cert_format --enabled-key-data x509"
+
+##########################################################################
+#
+# merlin-xmldsig-twenty-three
+#
+##########################################################################
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-enveloped-dsa" \
+ "enveloped-signature sha1 dsa-sha1" \
+ "dsa" \
+ " " \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-enveloping-dsa" \
+ "sha1 dsa-sha1" \
+ "dsa" \
+ " " \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa" \
+ "base64 sha1 dsa-sha1" \
+ "dsa" \
+ " " \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40" \
+ "sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1" \
+ "sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin" \
+ "--hmackey $topfolder/keys/hmackey.bin"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-enveloping-rsa" \
+ "sha1 rsa-sha1" \
+ "rsa" \
+ " " \
+ "$priv_key_option $topfolder/keys/rsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-external-b64-dsa" \
+ "base64 sha1 dsa-sha1" \
+ "dsa" \
+ " " \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-external-dsa" \
+ "sha1 dsa-sha1" \
+ "dsa" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-keyname" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option:test-dsa $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ "$priv_key_option:test-dsa $topfolder/keys/dsakey.$priv_key_format --pwd secret"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-x509-crt" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret"\
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-x509-sn" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret"\
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-x509-is" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret"\
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-x509-ski" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret"\
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret"\
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --trusted-$cert_format $topfolder/keys/ca2cert.$cert_format"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmldsig-twenty-three/signature" \
+ "base64 xpath enveloped-signature c14n-with-comments sha1 dsa-sha1" \
+ "dsa x509" \
+ "" \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --untrusted-$cert_format $topfolder/keys/ca2cert.$cert_format"
+
+
+##########################################################################
+#
+# merlin-xmlenc-five
+#
+# While the main operation is signature (and this is why we have these
+# tests here instead of testEnc.sh), these tests check the encryption
+# key transport/wrapper algorightms
+#
+##########################################################################
+execDSigTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes" \
+ "ripemd160 hmac-ripemd160 kw-tripledes" \
+ "hmac des" \
+ "" \
+ "--session-key hmac-192 --keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128" \
+ "sha256 hmac-sha256 kw-aes128" \
+ "hmac aes" \
+ ""
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192" \
+ "sha384 hmac-sha384 kw-aes192" \
+ "hmac aes" \
+ ""
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256" \
+ "sha512 hmac-sha512 kw-aes256" \
+ "hmac aes" \
+ ""
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5" \
+ "sha1 hmac-sha256 rsa-1_5" \
+ "hmac rsa" \
+ ""
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p" \
+ "sha1 hmac-sha256 rsa-oaep-mgf1p" \
+ "hmac rsa" \
+ ""
+
+
+
+##########################################################################
+#
+# merlin-exc-c14n-one
+#
+##########################################################################
+execDSigTest $res_success \
+ "" \
+ "merlin-exc-c14n-one/exc-signature" \
+ "exc-c14n sha1 dsa-sha1" \
+ "dsa" \
+ " " \
+ "$priv_key_option $topfolder/keys/dsakey.$priv_key_format --pwd secret" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-exc-c14n-one/exc-signature" \
+ "exc-c14n sha1 dsa-sha1" \
+ "dsa" \
+ " "
+
+##########################################################################
+#
+# merlin-c14n-three
+#
+##########################################################################
+
+execDSigTest $res_success \
+ "" \
+ "merlin-c14n-three/signature" \
+ "c14n c14n-with-comments exc-c14n exc-c14n-with-comments xpath sha1 dsa-sha1" \
+ "dsa" \
+ " "
+
+##########################################################################
+#
+# merlin-xpath-filter2-three
+#
+##########################################################################
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xpath-filter2-three/sign-xfdl" \
+ "enveloped-signature xpath2 sha1 dsa-sha1" \
+ "dsa" \
+ " "
+
+execDSigTest $res_success \
+ "" \
+ "merlin-xpath-filter2-three/sign-spec" \
+ "enveloped-signature xpath2 sha1 dsa-sha1" \
+ "dsa" \
+ " "
+##########################################################################
+#
+# phaos-xmldsig-three
+#
+##########################################################################
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-big" \
+ "base64 xslt xpath sha1 rsa-sha1" \
+ "rsa x509" \
+ "--pubkey-cert-$cert_format certs/rsa-cert.$cert_format"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-dsa-detached" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "--trusted-$cert_format certs/dsa-ca-cert.$cert_format --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-dsa-enveloped" \
+ "enveloped-signature sha1 dsa-sha1" \
+ "dsa x509" \
+ "--trusted-$cert_format certs/dsa-ca-cert.$cert_format --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-dsa-enveloping" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "--trusted-$cert_format certs/dsa-ca-cert.$cert_format --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-dsa-manifest" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "--trusted-$cert_format certs/dsa-ca-cert.$cert_format --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-hmac-md5-c14n-enveloping" \
+ "md5 hmac-md5" \
+ "hmac" \
+ "--hmackey certs/hmackey.bin"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-hmac-sha1-40-c14n-comments-detached" \
+ "c14n-with-comments sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey certs/hmackey.bin"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-hmac-sha1-40-exclusive-c14n-comments-detached" \
+ "exc-c14n-with-comments sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey certs/hmackey.bin"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-hmac-sha1-exclusive-c14n-comments-detached" \
+ "exc-c14n-with-comments sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey certs/hmackey.bin"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-hmac-sha1-exclusive-c14n-enveloped" \
+ "enveloped-signature exc-c14n sha1 hmac-sha1" \
+ "hmac" \
+ "--hmackey certs/hmackey.bin"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-detached-b64-transform" \
+ "base64 sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-detached" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-detached-xpath-transform" \
+ "xpath sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-detached-xslt-transform-retrieval-method" \
+ "xslt sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-detached-xslt-transform" \
+ "xslt sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-enveloped" \
+ "enveloped-signature sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-enveloping" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest-x509-data-cert-chain" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest-x509-data-cert" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest-x509-data-issuer-serial" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --untrusted-$cert_format certs/rsa-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest-x509-data-ski" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --untrusted-$cert_format certs/rsa-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest-x509-data-subject-name" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --untrusted-$cert_format certs/rsa-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+execDSigTest $res_success \
+ "phaos-xmldsig-three" \
+ "signature-rsa-xpath-transform-enveloped" \
+ "enveloped-signature xpath sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format --X509-skip-strict-checks --verification-time 2009-01-01+10:00:00"
+
+
+##########################################################################
+#
+# test dynamic signature
+#
+##########################################################################
+echo "Dynamic signature template"
+printf " Create new signature "
+echo "$xmlsec_app sign-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
+$VALGRIND $xmlsec_app sign-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile >> $logfile 2>> $logfile
+printRes $res_success $?
+printf " Verify new signature "
+echo "$xmlsec_app verify --keys-file $keysfile $tmpfile" >> $logfile
+$VALGRIND $xmlsec_app verify $xmlsec_params --keys-file $keysfile $tmpfile >> $logfile 2>> $logfile
+printRes $res_success $?
+
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- These tests CAN FAIL (extra OS config required) ----------"
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloped-gost" \
+ "enveloped-signature gostr34102001-gostr3411 gostr3411" \
+ "gost" \
+ "--trusted-$cert_format $topfolder/keys/gost2001ca.$cert_format --untrusted-$cert_format $topfolder/keys/ca2cert.$cert_format --enabled-key-data x509" \
+ "" \
+ ""
+
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Negative Testing ----------"
+execDSigTest $res_fail \
+ "" \
+ "merlin-xmldsig-twenty-three/signature-x509-crt-crl" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--X509-skip-strict-checks --trusted-$cert_format $topfolder/merlin-xmldsig-twenty-three/certs/ca.$cert_format"
+
+execDSigTest $res_fail \
+ "" \
+ "aleksey-xmldsig-01/enveloping-expired-cert" \
+ "sha1 dsa-sha1" \
+ "dsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_fail \
+ "" \
+ "aleksey-xmldsig-01/dtd-hmac-91" \
+ "sha1 hmac-sha1" \
+ "hmac" \
+ "--enabled-reference-uris empty --hmackey $topfolder/keys/hmackey.bin --dtd-file $topfolder/aleksey-xmldsig-01/dtd-hmac-91.dtd"
+
+execDSigTest $res_fail \
+ "phaos-xmldsig-three" \
+ "signature-rsa-detached-xslt-transform-bad-retrieval-method" \
+ "xslt sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format"
+
+execDSigTest $res_fail \
+ "phaos-xmldsig-three" \
+ "signature-rsa-enveloped-bad-digest-val" \
+ "enveloped-signature sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format"
+
+execDSigTest $res_fail \
+ "phaos-xmldsig-three" \
+ "signature-rsa-enveloped-bad-sig" \
+ "enveloped-signature sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format"
+
+execDSigTest $res_fail \
+ "phaos-xmldsig-three" \
+ "signature-rsa-manifest-x509-data-crl" \
+ "sha1 rsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format certs/rsa-ca-cert.$cert_format"
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testDSig finished" >> $logfile
+echo "--- testDSig finished"
+echo "--- detailed log is written to $logfile"
+
diff --git a/tests/testEnc.sh b/tests/testEnc.sh
new file mode 100755
index 00000000..54d1ca81
--- /dev/null
+++ b/tests/testEnc.sh
@@ -0,0 +1,411 @@
+#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testEnc started for xmlsec-$crypto library ($timestamp)"
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+echo "--- log file is $logfile"
+echo "--- testEnc started for xmlsec-$crypto library ($timestamp)" >> $logfile
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+
+##########################################################################
+#
+# aleksey-xmlenc-01
+#
+##########################################################################
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname" \
+ "tripledes-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname.data" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname2" \
+ "tripledes-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname2.data" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes128cbc-keyname" \
+ "aes128-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-aes128cbc-keyname.data" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes192cbc-keyname" \
+ "aes192-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-aes192cbc-keyname.data" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes192cbc-keyname-ref" \
+ "aes192-cbc" \
+ "--keys-file $topfolder/keys/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes256cbc-keyname" \
+ "aes256-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-aes256cbc-keyname.data" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname-content" \
+ "tripledes-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --xml-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data --node-id Test" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname-element" \
+ "tripledes-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --xml-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data --node-id Test" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname-element-root" \
+ "tripledes-cbc" \
+ "--keys-file $topfolder/keys/keys.xml" \
+ "--keys-file $keysfile --xml-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data --node-id Test" \
+ "--keys-file $keysfile"
+
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-aes192-keyname" \
+ "tripledes-cbc kw-aes192" \
+ "--keys-file $topfolder/keys/keys.xml --enabled-key-data key-name,enc-key" \
+ "--keys-file $keysfile --session-key des-192 --binary-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data" \
+ "--keys-file $keysfile"
+
+##########################################################################
+#
+# merlin-xmlenc-five
+#
+##########################################################################
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-aes128-cbc" \
+ "aes128-cbc" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-aes128-cbc.data" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-content-tripledes-cbc" \
+ "tripledes-cbc" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --enabled-key-data key-name --xml-data $topfolder/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data --node-id Payment" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-content-aes256-cbc-prop" \
+ "aes256-cbc" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --enabled-key-data key-name --xml-data $topfolder/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data --node-id Payment" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-aes192-cbc-ref" \
+ "aes192-cbc" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5" \
+ "aes128-cbc rsa-1_5" \
+ "$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-128 $priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --xml-data $topfolder/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data --node-id Purchase --pwd secret" \
+ "$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p" \
+ "tripledes-cbc rsa-oaep-mgf1p" \
+ "$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key des-192 $priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data --pwd secret" \
+ "$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes" \
+ "aes256-cbc kw-tripledes" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-256 --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192" \
+ "aes128-cbc kw-aes192" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-128 --node-name urn:example:po:PaymentInfo --xml-data $topfolder/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256" \
+ "aes192-cbc kw-aes256" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-192 --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128" \
+ "tripledes-cbc kw-aes128" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key des-192 --node-name urn:example:po:PaymentInfo --xml-data $topfolder/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256" \
+ "aes256-cbc kw-aes256" \
+ "--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
+
+
+#merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml
+
+#merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml
+#merlin-xmlenc-five/decryption-transform-except.xml
+#merlin-xmlenc-five/decryption-transform.xml
+
+#merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml
+#merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml
+#merlin-xmlenc-five/encsig-hmac-sha256-dh.xml
+#merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml
+
+##########################################################################
+#
+# 01-phaos-xmlenc-3
+#
+##########################################################################
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5" \
+ "tripledes-cbc rsa-1_5" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1" \
+ "tripledes-cbc rsa-oaep-mgf1p" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5" \
+ "aes128-cbc rsa-1_5" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1" \
+ "aes128-cbc rsa-oaep-mgf1p" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1" \
+ "aes192-cbc rsa-oaep-mgf1p" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5" \
+ "aes192-cbc rsa-1_5" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5" \
+ "aes256-cbc rsa-1_5" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key aes-256 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1" \
+ "aes256-cbc rsa-oaep-mgf1p" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
+ "--session-key aes-256 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
+ "$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-3des-kw-3des" \
+ "tripledes-cbc kw-tripledes" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes128-kw-3des" \
+ "aes128-cbc kw-tripledes" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kw-aes128" \
+ "aes128-cbc kw-aes128" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kw-aes256" \
+ "aes128-cbc kw-aes256" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-3des-kw-aes192" \
+ "tripledes-cbc kw-aes192" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes192-kw-aes256" \
+ "aes192-cbc kw-aes256" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes192-kw-aes192" \
+ "aes192-cbc kw-aes192" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes256-kw-aes256" \
+ "aes256-cbc kw-aes256" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-256 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-3des-kw-aes256" \
+ "tripledes-cbc kw-aes256" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-aes128-kw-aes192" \
+ "aes128-cbc kw-aes192" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
+ "--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data --node-name http://example.org/paymentv2:CreditCard" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+#01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml
+#01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml
+#01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml
+#01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml
+
+#01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml
+#01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml
+
+##########################################################################
+#
+# test dynamicencryption
+#
+##########################################################################
+echo "Dynamic encryption template"
+printf " Encrypt template "
+echo "$xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
+$VALGRIND $xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile >> $logfile 2>> $logfile
+printRes $res_success $?
+printf " Decrypt document "
+echo "$xmlsec_app decrypt $xmlsec_params $keysfile $tmpfile" >> $logfile
+$VALGRIND $xmlsec_app decrypt $xmlsec_params --keys-file $keysfile $tmpfile >> $logfile 2>> $logfile
+printRes $res_success $?
+
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Negative Testing: Following tests MUST FAIL ----------"
+echo "--- detailed log is written to $logfile"
+execEncTest $res_fail \
+ "" \
+ "01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des" \
+ "" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
+
+execEncTest $res_fail \
+ "" \
+ "aleksey-xmlenc-01/enc-aes192cbc-keyname-ref" \
+ "" \
+ "--keys-file $topfolder/keys/keys.xml --enabled-cipher-reference-uris empty"
+
+execEncTest $res_fail \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5" \
+ "" \
+ "--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-retrieval-method-uris empty"
+
+rm -rf $tmpfile
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testEnc finished" >> $logfile
+echo "--- testEnc finished"
+echo "--- detailed log is written to $logfile"
+
diff --git a/tests/testKeys.sh b/tests/testKeys.sh
new file mode 100755
index 00000000..1bf7dc23
--- /dev/null
+++ b/tests/testKeys.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testKeys started for xmlsec-$crypto library ($timestamp) ---"
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+echo "--- log file is $logfile"
+echo "--- testKeys started for xmlsec-$crypto library ($timestamp) ---" >> $logfile
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
+
+# cleanup crypto config folder
+mkdir -p $crypto_config
+rm -rf $crypto_config/*
+
+# remove old keys file and copy NSS DB files if needed
+rm -rf $keysfile
+if [ "z$crypto" = "znss" ] ; then
+ cp -f $nssdbfolder/*.db $crypto_config
+fi
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+execKeysTest $res_success \
+ "hmac" \
+ "test-hmac-sha1" \
+ "hmac-192"
+
+execKeysTest $res_success \
+ "rsa " \
+ "test-rsa " \
+ "rsa-1024"
+
+execKeysTest $res_success \
+ "dsa " \
+ "test-dsa " \
+ "dsa-1024"
+
+execKeysTest $res_success \
+ "des " \
+ "test-des " \
+ "des-192 "
+
+execKeysTest $res_success \
+ "aes " \
+ "test-aes128 " \
+ "aes-128 "
+
+execKeysTest $res_success \
+ "aes " \
+ "test-aes192 " \
+ "aes-192 "
+
+execKeysTest $res_success \
+ "aes " \
+ "test-aes256 " \
+ "aes-256 "
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testKeys finished ---" >> $logfile
+echo "--- testKeys finished ---"
+echo "--- detailed log is written to $logfile ---"
diff --git a/tests/testRes.sh b/tests/testRes.sh
new file mode 100755
index 00000000..5514f72d
--- /dev/null
+++ b/tests/testRes.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+if [ "z$TMPFOLDER" = "z" ] ; then
+ TMPFOLDER=/tmp
+fi
+
+logfiles='$TMPFOLDER/test*.log'
+
+echo "-------------------- MEMORY USAGE --------------------"
+grep 'in use' $logfiles | \
+ sed 's/==.*==//' | \
+ sort -u
+
+echo "-------------------- ERRORS --------------------"
+grep 'ERROR SUMMARY' $logfiles | \
+ sed 's/==.*==//' | \
+ sed 's/(suppressed: .*//' | \
+ sort -u
+
+ \ No newline at end of file
diff --git a/tests/testXKMS.sh b/tests/testXKMS.sh
new file mode 100755
index 00000000..be972dd1
--- /dev/null
+++ b/tests/testXKMS.sh
@@ -0,0 +1,129 @@
+#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testXKMS started for xmlsec-$crypto library ($timestamp)"
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+echo "--- log file is $logfile"
+echo "--- testXKMS started for xmlsec-$crypto library ($timestamp)" >> $logfile
+echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-example-1" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-example-1" \
+ "" \
+ "bad-service" \
+ "--xkms-service http://www.example.com/xkms-bad-service"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-example-2" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/validate-example-1" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-opaque-client-data" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/compound-example-1" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/status-request" \
+ "" \
+ "success" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/bad-request-name" \
+ "" \
+ "not-supported" \
+ "--xkms-service http://www.example.com/xkms"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap12-locate-example-1" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap11-locate-example-1" \
+ "" \
+ "unsupported" \
+ "--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap12-bad-request-name" \
+ "" \
+ "msg-invalid" \
+ "--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap11-locate-example-1" \
+ "" \
+ "no-match" \
+ "--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap12-locate-example-1" \
+ "" \
+ "unsupported" \
+ "--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap11-bad-request-name" \
+ "" \
+ "msg-invalid" \
+ "--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Negative Testing ----------"
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testXKMS finished" >> $logfile
+echo "--- testXKMS finished"
+echo "--- detailed log is written to $logfile"
+
diff --git a/tests/testrun.sh b/tests/testrun.sh
new file mode 100755
index 00000000..c1f629b8
--- /dev/null
+++ b/tests/testrun.sh
@@ -0,0 +1,443 @@
+#!/bin/sh
+
+OS_ARCH=`uname -o`
+OS_KERNEL=`uname -s`
+
+#
+# Get command line params
+#
+testfile="$1"
+crypto="$2"
+topfolder="$3"
+xmlsec_app="$4"
+file_format="$5"
+timestamp=`date +%Y%m%d_%H%M%S`
+
+if [ "z$OS_ARCH" = "zCygwin" ] ; then
+ topfolder=`cygpath -wa "$topfolder"`
+ xmlsec_app=`cygpath -a "$xmlsec_app"`
+fi
+
+#
+# Prepare folders
+#
+if [ "z$TMPFOLDER" = "z" ] ; then
+ TMPFOLDER=/tmp
+fi
+testname=`basename $testfile`
+if [ "z$OS_ARCH" = "zCygwin" ] ; then
+ tmpfile=`cygpath -wa $TMPFOLDER/$testname.$timestamp-$$.tmp`
+ logfile=`cygpath -wa $TMPFOLDER/$testname.$timestamp-$$.log`
+else
+ tmpfile=$TMPFOLDER/$testname.$timestamp-$$.tmp
+ logfile=$TMPFOLDER/$testname.$timestamp-$$.log
+fi
+nssdbfolder=$topfolder/nssdb
+
+#
+# Valgrind
+#
+valgrind_suppression="--suppressions=$topfolder/openssl.supp --suppressions=$topfolder/nss.supp"
+valgrind_options="--leak-check=yes --show-reachable=yes --num-callers=32 -v"
+if [ -n "$DEBUG_MEMORY" ] ; then
+ export VALGRIND="valgrind $valgrind_options"
+ export REPEAT=3
+ xmlsec_params="$xmlsec_params --repeat $REPEAT"
+fi
+
+#
+# Setup crypto engine
+#
+crypto_config=$TMPFOLDER/xmlsec-crypto-config
+keysfile=$crypto_config/keys.xml
+if [ "z$XMLSEC_DEFAULT_CRYPTO" != "z" ] ; then
+ xmlsec_params="$xmlsec_params --crypto $XMLSEC_DEFAULT_CRYPTO"
+elif [ "z$crypto" != "z" ] ; then
+ xmlsec_params="$xmlsec_params --crypto $crypto"
+fi
+xmlsec_params="$xmlsec_params --crypto-config $crypto_config"
+
+#
+# Setup keys config
+#
+pub_key_format=$file_format
+cert_format=$file_format
+
+#
+# GCrypt/GnuTLS only supports DER format for now, others are good to go with PKCS12
+#
+if [ "z$crypto" != "zgcrypt" ] ; then
+ priv_key_option="--pkcs12"
+ priv_key_format="p12"
+else
+ priv_key_option="--privkey-der"
+ priv_key_format="der"
+ pub_key_format="der"
+fi
+
+# On Windows, one needs to specify Crypto Service Provider (CSP)
+# in the pkcs12 file to ensure it is loaded correctly to be used
+# with SHA2 algorithms. Worse, the CSP is different for XP and older
+# versions
+if test "z$OS_ARCH" = "zCygwin" || test "z$OS_ARCH" = "zMsys" ; then
+ # Samples:
+ # Cygwin : CYGWIN_NT-5.1
+ # Msys : MINGW32_NT-5.1
+ if expr "$OS_KERNEL" : '.*_NT-5\.1' > /dev/null; then
+ priv_key_suffix="-winxp"
+ else
+ priv_key_suffix="-win"
+ fi
+else
+ priv_key_suffix=""
+fi
+
+
+#
+# Misc
+#
+if [ -n "$PERF_TEST" ] ; then
+ xmlsec_params="$xmlsec_params --repeat $PERF_TEST"
+fi
+
+if test "z$OS_ARCH" = "zCygwin" || test "z$OS_ARCH" = "zMsys" ; then
+ diff_param=-uw
+else
+ diff_param=-u
+fi
+
+#
+# Check the command result and print it to stdout
+#
+res_success="success"
+res_fail="fail"
+printRes() {
+ expected_res="$1"
+ actual_res="$2"
+
+ # convert status to string
+ if [ $actual_res = 0 ]; then
+ actual_res=$res_success
+ else
+ actual_res=$res_fail
+ fi
+
+ # check
+ if [ "z$expected_res" = "z$actual_res" ] ; then
+ echo " OK"
+ else
+ echo " Fail"
+ fi
+
+ # memlog
+ if [ -f .memdump ] ; then
+ cat .memdump >> $logfile
+ fi
+}
+
+#
+# Keys Manager test function
+#
+execKeysTest() {
+ expected_res="$1"
+ req_key_data="$2"
+ key_name="$3"
+ alg_name="$4"
+
+ # prepare
+ rm -f $tmpfile
+ old_pwd=`pwd`
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ echo "Test: $alg_name ($expected_res)"
+
+ # check key data
+ if [ -n "$req_key_data" ] ; then
+ printf " Checking required key data "
+ echo "$xmlsec_app check-key-data $xmlsec_params $req_key_data" >> $logfile
+ $xmlsec_app check-key-data $xmlsec_params $req_key_data >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ return
+ fi
+ fi
+
+ # run tests
+ printf " Creating new key "
+ params="--gen-key:$key_name $alg_name"
+ if [ -f $keysfile ] ; then
+ params="$params --keys-file $keysfile"
+ fi
+ echo "$xmlsec_app keys $params $xmlsec_params $keysfile" >> $logfile
+ $VALGRIND $xmlsec_app keys $params $xmlsec_params $keysfile >> $logfile 2>> $logfile
+ printRes $expected_res $?
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile
+}
+
+#
+# DSig test function
+#
+execDSigTest() {
+ expected_res="$1"
+ folder="$2"
+ filename="$3"
+ req_transforms="$4"
+ req_key_data="$5"
+ params1="$6"
+ params2="$7"
+ params3="$8"
+
+ # prepare
+ rm -f $tmpfile
+ old_pwd=`pwd`
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ if [ -n "$folder" ] ; then
+ cd $topfolder/$folder
+ full_file=$filename
+ echo $folder/$filename
+ echo "Test: $folder/$filename in folder " `pwd` " ($expected_res)" >> $logfile
+ else
+ full_file=$topfolder/$filename
+ echo $filename
+ echo "Test: $folder/$filename ($expected_res)" >> $logfile
+ fi
+
+ # check transforms
+ if [ -n "$req_transforms" ] ; then
+ printf " Checking required transforms "
+ echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
+ $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ cd $old_pwd
+ return
+ fi
+ fi
+
+ # check key data
+ if [ -n "$req_key_data" ] ; then
+ printf " Checking required key data "
+ echo "$xmlsec_app check-key-data $xmlsec_params $req_key_data" >> $logfile
+ $xmlsec_app check-key-data $xmlsec_params $req_key_data >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo "Skip"
+ return
+ fi
+ fi
+
+ # run tests
+ if [ -n "$params1" ] ; then
+ printf " Verify existing signature "
+ echo "$xmlsec_app verify $xmlsec_params $params1 $full_file.xml" >> $logfile
+ $VALGRIND $xmlsec_app verify $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
+ printf " Create new signature "
+ echo "$xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
+ $VALGRIND $xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
+ printf " Verify new signature "
+ echo "$xmlsec_app verify $xmlsec_params $params3 $tmpfile" >> $logfile
+ $VALGRIND $xmlsec_app verify $xmlsec_params $params3 $tmpfile >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile
+}
+
+#
+# Enc test function
+#
+execEncTest() {
+ expected_res="$1"
+ folder="$2"
+ filename="$3"
+ req_transforms="$4"
+ params1="$5"
+ params2="$6"
+ params3="$7"
+
+ # prepare
+ rm -f $tmpfile $tmpfile.2
+ old_pwd=`pwd`
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ if [ -n "$folder" ] ; then
+ cd $topfolder/$folder
+ full_file=$filename
+ echo $folder/$filename
+ echo "Test: $folder/$filename in folder " `pwd` " ($expected_res)" >> $logfile
+ else
+ full_file=$topfolder/$filename
+ echo $filename
+ echo "Test: $folder/$filename ($expected_res)" >> $logfile
+ fi
+
+ # check transforms
+ if [ -n "$req_transforms" ] ; then
+ printf " Checking required transforms "
+ echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
+ $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ return
+ fi
+ fi
+
+ # run tests
+ if [ -n "$params1" ] ; then
+ rm -f $tmpfile
+ printf " Decrypt existing document "
+ echo "$xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml" >> $logfile
+ $VALGRIND $xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml > $tmpfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ diff $diff_param $full_file.data $tmpfile >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ else
+ printRes $expected_res $res
+ fi
+ fi
+
+ if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
+ rm -f $tmpfile
+ printf " Encrypt document "
+ echo "$xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
+ $VALGRIND $xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
+ rm -f $tmpfile.2
+ printf " Decrypt new document "
+ echo "$xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile" >> $logfile
+ $VALGRIND $xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ diff $diff_param $full_file.data $tmpfile.2 >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ else
+ printRes $expected_res $res
+ fi
+ fi
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile $tmpfile.2
+}
+
+execXkmsServerRequestTest() {
+ expected_res="$1"
+ folder="$2"
+ filename="$3"
+ req_transforms="$4"
+ response="$5"
+ params1="$6"
+
+ # prepare
+ rm -f $tmpfile $tmpfile.2 tmpfile.3
+ old_pwd=`pwd`
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ if [ -n "$folder" ] ; then
+ cd $topfolder/$folder
+ full_file=$filename
+ full_resfile=$filename-$response
+ echo "$folder/$filename ($response)"
+ echo "Test: $folder/$filename in folder " `pwd` " $response ($expected_res)" >> $logfile
+ else
+ full_file=$topfolder/$filename
+ full_resfile=$topfolder/$filename-$response
+ echo "$filename ($response)"
+ echo "Test: $folder/$filename $response ($expected_res)" >> $logfile
+ fi
+
+ # check transforms
+ if [ -n "$req_transforms" ] ; then
+ printf " Checking required transforms "
+ echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
+ $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ return
+ fi
+ fi
+
+ # run tests
+ if [ -n "$params1" ] ; then
+ printf " Processing xkms request "
+ echo "$xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $params1 $full_file.xml" >> $logfile
+ $VALGRIND $xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ # cleanup Id attribute because it is generated every time
+ sed 's/ Id="[^\"]*"/ Id=""/g' $full_resfile > $tmpfile.2
+ sed 's/ Id="[^\"]*"/ Id=""/g' $tmpfile > $tmpfile.3
+ diff $tmpfile.2 $tmpfile.3 >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ else
+ printRes $expected_res $res
+ fi
+ fi
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile $tmpfile.2 tmpfile.3
+}
+
+
+# prepare
+rm -rf $tmpfile $tmpfile.2 tmpfile.3
+
+# run tests
+source "$testfile"
+
+# cleanup
+rm -rf $tmpfile $tmpfile.2 tmpfile.3
+
diff --git a/tests/xmldsig2ed-tests/c14n11/xml-base-input.xml b/tests/xmldsig2ed-tests/c14n11/xml-base-input.xml
new file mode 100644
index 00000000..68adb249
--- /dev/null
+++ b/tests/xmldsig2ed-tests/c14n11/xml-base-input.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
+ <ietf:e1 xml:base="/xmlbase1/">
+ <ietf:e11 xml:base="/xmlbase11/">
+ <ietf:e111 xml:base="/xmlbase111/"/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <ietf:e121 xml:base="/xmlbase121/"/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2>
+ <ietf:e21 xml:base="/xmlbase21/"/>
+ </ietf:e2>
+ <ietf:e3>
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlBaseDoc1>
diff --git a/tests/xmldsig2ed-tests/defCan-1.tmpl b/tests/xmldsig2ed-tests/defCan-1.tmpl
new file mode 100644
index 00000000..a825ea83
--- /dev/null
+++ b/tests/xmldsig2ed-tests/defCan-1.tmpl
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="c14n11/xml-base-input.xml"><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e2)</XPath></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/defCan-1.xml b/tests/xmldsig2ed-tests/defCan-1.xml
new file mode 100644
index 00000000..2bf98ae7
--- /dev/null
+++ b/tests/xmldsig2ed-tests/defCan-1.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="c14n11/xml-base-input.xml"><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e2)</XPath></Transform><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>t7d2cL8Ink8A5i3cS9/bu9MBBU8=</DigestValue></Reference></SignedInfo><SignatureValue>LR4s+Nxoq3VZO1NiCLoiovfCpK4=</SignatureValue></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/defCan-2.tmpl b/tests/xmldsig2ed-tests/defCan-2.tmpl
new file mode 100644
index 00000000..dedf7398
--- /dev/null
+++ b/tests/xmldsig2ed-tests/defCan-2.tmpl
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="c14n11/xml-base-input.xml"><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">ancestor-or-self::ietf:e21</XPath></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template></xsl:stylesheet></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">1</XPath></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/defCan-2.xml b/tests/xmldsig2ed-tests/defCan-2.xml
new file mode 100644
index 00000000..21a1d342
--- /dev/null
+++ b/tests/xmldsig2ed-tests/defCan-2.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="c14n11/xml-base-input.xml"><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">ancestor-or-self::ietf:e21</XPath></Transform><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template></xsl:stylesheet></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">1</XPath></Transform><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>fL7Igzs0LL7lKHJzAJIKYCphYBo=</DigestValue></Reference></SignedInfo><SignatureValue>bKQLywY51VZwjutUX/CUMsVs6RE=</SignatureValue></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/defCan-3.tmpl b/tests/xmldsig2ed-tests/defCan-3.tmpl
new file mode 100644
index 00000000..2a0e819a
--- /dev/null
+++ b/tests/xmldsig2ed-tests/defCan-3.tmpl
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="c14n11/xml-base-input.xml"><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">ancestor-or-self::ietf:e3</XPath></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template></xsl:stylesheet></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">1</XPath></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template></xsl:stylesheet></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/defCan-3.xml b/tests/xmldsig2ed-tests/defCan-3.xml
new file mode 100644
index 00000000..73b1b83a
--- /dev/null
+++ b/tests/xmldsig2ed-tests/defCan-3.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="c14n11/xml-base-input.xml"><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">ancestor-or-self::ietf:e21</XPath></Transform><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template></xsl:stylesheet></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath xmlns:ietf="http://www.ietf.org">1</XPath></Transform><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template></xsl:stylesheet></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>hqabUu4fEZp7GK5JRyFC26W5JBk=</DigestValue></Reference></SignedInfo><SignatureValue>9+wp0W9xwL5X3kSttxABZ7p/kU0=</SignatureValue></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/xpointer-1-SUN.xml b/tests/xmldsig2ed-tests/xpointer-1-SUN.xml
new file mode 100644
index 00000000..2b07faa4
--- /dev/null
+++ b/tests/xmldsig2ed-tests/xpointer-1-SUN.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?><ietf:c14n11XmlPointerDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <!-- This is a xml document for checking behaviour of tools with regards to comments when using scheme-based xpointers in the ds:Reference's URI attribute -->
+ <ietf:e1 xml:id="e1ID">
+ <!-- This is a comment for ietf:e1 element -->
+ <ietf:e11>
+ <!-- This is a comment for ietf:e11 element -->
+ <ietf:e111/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <!-- This is a comment for ietf:e12 element -->
+ <ietf:e121/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 xml:id="e2ID">
+ <!-- This is a comment for ietf:e2 element -->
+ <ietf:e21/>
+ </ietf:e2>
+ <ietf:e3 xml:id="e3ID">
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="#xpointer(/)"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>/IZyGLL72rXhisXRkB617TxJrL8=</DigestValue></Reference></SignedInfo><SignatureValue>E4gxKwllVjvvlUQFe9p/ssO7Yxw=</SignatureValue></Signature></ietf:c14n11XmlPointerDoc1> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/xpointer-2-SUN.xml b/tests/xmldsig2ed-tests/xpointer-2-SUN.xml
new file mode 100644
index 00000000..c1a32305
--- /dev/null
+++ b/tests/xmldsig2ed-tests/xpointer-2-SUN.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="#xpointer(id('e1ID'))"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>XhSsDpWTt+ti0kcU9XYpleRDHfQ=</DigestValue></Reference></SignedInfo><SignatureValue>brEpICVA4lg7eQwz7i/rlBmYXiU=</SignatureValue><Object><ietf:c14n11XmlPointerDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <!-- This is a xml document for checking behaviour of tools with regards to comments when using scheme-based xpointers in the ds:Reference's URI attribute -->
+ <ietf:e1 xml:id="e1ID">
+ <!-- This is a comment for ietf:e1 element -->
+ <ietf:e11>
+ <!-- This is a comment for ietf:e11 element -->
+ <ietf:e111/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <!-- This is a comment for ietf:e12 element -->
+ <ietf:e121/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 xml:id="e2ID">
+ <!-- This is a comment for ietf:e2 element -->
+ <ietf:e21/>
+ </ietf:e2>
+ <ietf:e3 xml:id="e3ID">
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlPointerDoc1></Object></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/xpointer-3-SUN.xml b/tests/xmldsig2ed-tests/xpointer-3-SUN.xml
new file mode 100644
index 00000000..e8451234
--- /dev/null
+++ b/tests/xmldsig2ed-tests/xpointer-3-SUN.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?><ietf:c14n11XmlPointerDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <!-- This is a xml document for checking behaviour of tools with regards to comments when using scheme-based xpointers in the ds:Reference's URI attribute -->
+ <ietf:e1 xml:id="e1ID">
+ <!-- This is a comment for ietf:e1 element -->
+ <ietf:e11>
+ <!-- This is a comment for ietf:e11 element -->
+ <ietf:e111/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <!-- This is a comment for ietf:e12 element -->
+ <ietf:e121/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 xml:id="e2ID">
+ <!-- This is a comment for ietf:e2 element -->
+ <ietf:e21/>
+ </ietf:e2>
+ <ietf:e3 xml:id="e3ID">
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>gaV5r7qC3Ve/t641+d3ykN8JFSc=</DigestValue></Reference></SignedInfo><SignatureValue>gS1QKSwAH/6eE3OFi/L9O0oKKig=</SignatureValue></Signature></ietf:c14n11XmlPointerDoc1> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/xpointer-4-SUN.xml b/tests/xmldsig2ed-tests/xpointer-4-SUN.xml
new file mode 100644
index 00000000..84c38838
--- /dev/null
+++ b/tests/xmldsig2ed-tests/xpointer-4-SUN.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="#e1ID"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>3K+K4MbR2EW7l/ry59XockKqt4g=</DigestValue></Reference></SignedInfo><SignatureValue>dgyjONUs9rBjW7PH25seGqcMNZY=</SignatureValue><Object><ietf:c14n11XmlPointerDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <!-- This is a xml document for checking behaviour of tools with regards to comments when using scheme-based xpointers in the ds:Reference's URI attribute -->
+ <ietf:e1 xml:id="e1ID">
+ <!-- This is a comment for ietf:e1 element -->
+ <ietf:e11>
+ <!-- This is a comment for ietf:e11 element -->
+ <ietf:e111/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <!-- This is a comment for ietf:e12 element -->
+ <ietf:e121/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 xml:id="e2ID">
+ <!-- This is a comment for ietf:e2 element -->
+ <ietf:e21/>
+ </ietf:e2>
+ <ietf:e3 xml:id="e3ID">
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlPointerDoc1></Object></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/xpointer-5-SUN.xml b/tests/xmldsig2ed-tests/xpointer-5-SUN.xml
new file mode 100644
index 00000000..401eff60
--- /dev/null
+++ b/tests/xmldsig2ed-tests/xpointer-5-SUN.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="#xpointer(id('e1ID'))"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>XhSsDpWTt+ti0kcU9XYpleRDHfQ=</DigestValue></Reference><Reference URI="#xpointer(id('e2ID'))"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>abyA1j4yzf1IgQLWwDwKuU9l8Ik=</DigestValue></Reference><Reference URI="#xpointer(id('e3ID'))"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>RUUBiUeFf8uRqTlpCyutkXDqnJ4=</DigestValue></Reference></SignedInfo><SignatureValue>sG+0pHk9TB6v7jES9RZUIVKMFos=</SignatureValue><Object><ietf:c14n11XmlPointerDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <!-- This is a xml document for checking behaviour of tools with regards to comments when using scheme-based xpointers in the ds:Reference's URI attribute -->
+ <ietf:e1 xml:id="e1ID">
+ <!-- This is a comment for ietf:e1 element -->
+ <ietf:e11>
+ <!-- This is a comment for ietf:e11 element -->
+ <ietf:e111/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <!-- This is a comment for ietf:e12 element -->
+ <ietf:e121/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 xml:id="e2ID">
+ <!-- This is a comment for ietf:e2 element -->
+ <ietf:e21/>
+ </ietf:e2>
+ <ietf:e3 xml:id="e3ID">
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlPointerDoc1></Object></Signature> \ No newline at end of file
diff --git a/tests/xmldsig2ed-tests/xpointer-6-SUN.xml b/tests/xmldsig2ed-tests/xpointer-6-SUN.xml
new file mode 100644
index 00000000..2f13aab3
--- /dev/null
+++ b/tests/xmldsig2ed-tests/xpointer-6-SUN.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><Reference URI="#e1ID"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>3K+K4MbR2EW7l/ry59XockKqt4g=</DigestValue></Reference><Reference URI="#e2ID"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>hnKFjGFr/jwLCCTckZpaclOwe28=</DigestValue></Reference><Reference URI="#e3ID"><Transforms><Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11#WithComments"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>RUUBiUeFf8uRqTlpCyutkXDqnJ4=</DigestValue></Reference></SignedInfo><SignatureValue>XzEJQ+whhHUYlqiCEt8XFxC8wpk=</SignatureValue><Object><ietf:c14n11XmlPointerDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
+ <!-- This is a xml document for checking behaviour of tools with regards to comments when using scheme-based xpointers in the ds:Reference's URI attribute -->
+ <ietf:e1 xml:id="e1ID">
+ <!-- This is a comment for ietf:e1 element -->
+ <ietf:e11>
+ <!-- This is a comment for ietf:e11 element -->
+ <ietf:e111/>
+ </ietf:e11>
+ <ietf:e12 at="2">
+ <!-- This is a comment for ietf:e12 element -->
+ <ietf:e121/>
+ </ietf:e12>
+ </ietf:e1>
+ <ietf:e2 xml:id="e2ID">
+ <!-- This is a comment for ietf:e2 element -->
+ <ietf:e21/>
+ </ietf:e2>
+ <ietf:e3 xml:id="e3ID">
+ <ietf:e31 at="3"/>
+ </ietf:e3>
+</ietf:c14n11XmlPointerDoc1></Object></Signature> \ No newline at end of file