aboutsummaryrefslogtreecommitdiff
path: root/scripts/Old/encode-test.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-12-24 06:36:18 +0000
committerRob Austein <sra@hactrn.net>2007-12-24 06:36:18 +0000
commite62cfb013638b5e68218c0702e88c6c4dfeb06f9 (patch)
tree93b5b864915a92a03e805062cf3b5b6d7f8b1e27 /scripts/Old/encode-test.py
parent6923ec5709af6f4fa5ea8e6e9af9265f5b9e213f (diff)
Cleanup
svn path=/scripts/Old/check-hashes.sh; revision=1434
Diffstat (limited to 'scripts/Old/encode-test.py')
-rwxr-xr-xscripts/Old/encode-test.py161
1 files changed, 161 insertions, 0 deletions
diff --git a/scripts/Old/encode-test.py b/scripts/Old/encode-test.py
new file mode 100755
index 00000000..b4709866
--- /dev/null
+++ b/scripts/Old/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-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 = [
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="42"
+ type="error_response">
+ <status>2001</status>
+ <last_msg_processed>17</last_msg_processed>
+ <description xml:lang="en-US">[Readable text]</description>
+</message>
+''',
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="42" type="issue">
+ <request class_name="class name"
+ req_resource_set_as=""
+ req_resource_set_ipv4="10.0.0.44/32"
+ req_resource_set_ipv6="dead:beef::/32">
+ deadbeef
+ </request>
+</message>
+''',
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="1"
+ type="issue_response">
+ <class class_name="class name"
+ cert_url="url"
+ cert_ski="g(ski)"
+ resource_set_as="22,42,44444-5555555"
+ resource_set_ipv4="10.0.0.44-10.3.0.44,10.6.0.2/32"
+ resource_set_ipv6="dead:beef::/128">
+ <certificate cert_url="url"
+ cert_ski="g(ski)"
+ cert_aki="g(aki)"
+ cert_serial="1"
+ resource_set_as="14-17"
+ resource_set_ipv4="128.224.1.136/22"
+ resource_set_ipv6="0:0::/22"
+ req_resource_set_as=""
+ req_resource_set_ipv4="10.0.0.77/16,127.0.0.1/8"
+ req_resource_set_ipv6="dead:beef::/16"
+ status="match">
+ deadbeef
+ </certificate>
+ <issuer>deadbeef</issuer>
+ </class>
+</message>
+''',
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="42"
+ type="list"/>
+''',
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="42"
+ type="list_response">
+ <class class_name="class name"
+ cert_url="url"
+ cert_ski="g(ski)"
+ resource_set_as="1,2,4,6,16-32"
+ resource_set_ipv4="128.224.1.1-128.22.4.32"
+ resource_set_ipv6=""
+ suggested_sia_head="rsync://wombat.example/fnord/">
+ <certificate cert_url="url"
+ cert_ski="g(ski)"
+ cert_aki="g(aki)"
+ cert_serial="1"
+ resource_set_as=""
+ resource_set_ipv4=""
+ resource_set_ipv6=""
+ req_resource_set_as=""
+ req_resource_set_ipv4=""
+ req_resource_set_ipv6=""
+ status="match">
+ deadbeef
+ </certificate>
+ <!-- Repeated for each current certificate naming the client as subject -->
+ <issuer>deadbeef</issuer>
+ </class>
+</message>
+''',
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="42"
+ type="revoke">
+ <key class_name="class name"
+ ski="g(ski)"/>
+</message>
+''',
+'''<?xml version="1.0" encoding="UTF-8"?>
+<message xmlns="http://www.apnic.net/specs/rescerts/up-down/"
+ version="1"
+ sender="sender name"
+ recipient="recipient name"
+ msg_ref="42"
+ type="revoke_response">
+ <key class_name="class name"
+ ski="g(ski)"/>
+</message>
+'''
+]
+
+main()