aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorelie <elie>2012-05-10 20:34:55 +0000
committerelie <elie>2012-05-10 20:34:55 +0000
commit7d61adf8cdc6c5063a50e3a010bb4aa13a4a8988 (patch)
tree27d09f9f01ba702d4d8f025a7ee3d170f94a506a /tools
parent09f00267136f7a614e4fa3aac777099c4e267e3e (diff)
downloadpyasn1-modules-7d61adf8cdc6c5063a50e3a010bb4aa13a4a8988.tar.gz
cmpdump.py added
Diffstat (limited to 'tools')
-rw-r--r--tools/cmpdump.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/cmpdump.py b/tools/cmpdump.py
new file mode 100644
index 0000000..3abde51
--- /dev/null
+++ b/tools/cmpdump.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+# Read ASN.1/PEM CMP message on stdin, parse into
+# plain text, then build substrate from it
+from pyasn1.codec.der import decoder, encoder
+from pyasn1_modules import rfc4210, pem
+import sys
+
+if len(sys.argv) != 1:
+ print("""Usage:
+$ cat cmp.pem | %s""" % sys.argv[0])
+ sys.exit(-1)
+
+pkiMessage = rfc4210.PKIMessage()
+
+substrate = pem.readBase64FromFile(sys.stdin)
+if not substrate:
+ sys.exit(0)
+
+pkiMsg, rest = decoder.decode(substrate, asn1Spec=pkiMessage)
+
+print(pkiMsg.prettyPrint())
+
+assert encoder.encode(pkiMsg, defMode=False) == substrate or \
+ encoder.encode(pkiMsg, defMode=True) == substrate, \
+ 'CMP message recode fails'