diff options
author | elie <elie> | 2012-05-10 20:34:55 +0000 |
---|---|---|
committer | elie <elie> | 2012-05-10 20:34:55 +0000 |
commit | 7d61adf8cdc6c5063a50e3a010bb4aa13a4a8988 (patch) | |
tree | 27d09f9f01ba702d4d8f025a7ee3d170f94a506a /tools | |
parent | 09f00267136f7a614e4fa3aac777099c4e267e3e (diff) | |
download | pyasn1-modules-7d61adf8cdc6c5063a50e3a010bb4aa13a4a8988.tar.gz |
cmpdump.py added
Diffstat (limited to 'tools')
-rw-r--r-- | tools/cmpdump.py | 25 |
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' |