Decryption transform interop samples
merlin <[email protected]> Thu, 01 Aug 2002 17:31:45 +0100
| Newsgroups | gmane.ietf.xmldsig |
|---|---|
| Message-ID | <[email protected]> |
------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <24042.1028219505.1@yog-sothoth> The remaining decryption transform issues shouldn't have much effect on interop, so attached are some (hopefully functional) interop samples to kick things off. Joseph, I've also been asked if you could add http://www.baltimore.com/keytools/xml/ to your list of dsig/enc/... implementations/interop links. Merlin See the Readme.txt for details on the interop samples; this is a quick list. They're all basic AES-128, DSA and SHA-1. . decrypt-xml.xml XML-mode decryption transform . decrypt-xml-except.xml XML-mode decryption transform with exception . decrypt-xml-except-external.xml XML-mode decryption transform with exception in external document . decrypt-xml-except-xpointer.xml XML-mode decryption transform with XPointer exception (non-mandatory) . decrypt-xml-except-unresolvable-xpointer.xml XML-mode decryption transform with irrelevant but unresolvable exception . decrypt-xml-super.xml XML-mode decryption transform over super-encrypted data . decrypt-xml-super-except.xml XML-mode decryption transform with exception in super-encrypted data . decrypt-xml-empty-xmlns.xml XML-mode decryption transform demonstrating apex xmlns="" output . decrypt-xml-inherit-attr.xml XML-mode decryption transform demonstrating xml attribute inheritance . decrypt-xml-super-inherit-attr.xml XML-mode decryption transform demonstrating xml attribute inheritance in super-encrypted data . decrypt-xml-xpath.xml XML-mode decryption transform with XPath filter instead of exception . decrypt-xml-none.xml XML-mode decryption transform with no encrypted data . decrypt-xml-undecryptable.xml XML-mode decryption transform with undecryptable data; should fail . decrypt-xml-bad-type.xml XML-mode decryption transform with an unknown type; should fail . decrypt-binary.xml Binary-mode decryption transform . decrypt-binary-except.xml Binary-mode decryption transform with exception . decrypt-binary-multiple.xml Binary-mode decryption transform with multiple encrypted data . decrypt-binary-none.xml Binary-mode decryption transform with no encrypted data ------- =_aaaaaaaaaa0 Content-Type: application/x-tar-gz; name="merlin-decrypt-two.tar.gz" Content-ID: <24042.1028219505.2@yog-sothoth> Content-Description: merlin-decrypt-two.tar.gz Content-Transfer-Encoding: base64 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 ------- =_aaaaaaaaaa0--