From 14c6611ce6b4903c4000fafb9fd380cc431a11ce Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Mon, 25 Jun 2007 19:30:57 +0000 Subject: Checkpoint svn path=/scripts/PLAN; revision=684 --- scripts/encode-test.py | 161 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100755 scripts/encode-test.py (limited to 'scripts/encode-test.py') diff --git a/scripts/encode-test.py b/scripts/encode-test.py new file mode 100755 index 00000000..08f78d82 --- /dev/null +++ b/scripts/encode-test.py @@ -0,0 +1,161 @@ +# $Id$ + +import os + +def run(func, arg, *cmd): + i, o = func(cmd) + i.write(arg) + i.close() + value = o.read() + o.close() + return value + +def encode(xml, cer, key): + return run(os.popen2, xml, "openssl", "smime", "-sign", "-nodetach", "-outform", "PEM", "-signer", cer, "-inkey", key) + +def decode(cms, dir): + return run(os.popen2, cms, "openssl", "smime", "-verify", "-inform", "PEM", "-CApath", dir) + +def relaxng(xml, rng): + return run(os.popen4, xml, "xmllint", "--noout", "--relaxng", rng, "-") + +def main(): + dir = "biz-certs" + cer = "biz-certs/Alice-EE.cer" + key = "biz-certs/Alice-EE.key" + rng = "up-down-medium-schema.rng" + + for x in xml: + print x + e = encode(x, cer, key) + print e + d = decode(e, dir) + print d + v = relaxng(d, rng) + print v + print "=====\n" + +# Ugly inline stuff here for initial testing + +xml = [ +''' + + 2001 + 17 + [Readable text] + +''', +''' + + + deadbeef + + +''', +''' + + + + deadbeef + + deadbeef + + +''', +''' + +''', +''' + + + + deadbeef + + + deadbeef + + +''', +''' + + + +''', +''' + + + +''' +] + +main() -- cgit v1.2.3