diff options
author | elie <elie> | 2012-04-09 16:46:29 +0000 |
---|---|---|
committer | elie <elie> | 2012-04-09 16:46:29 +0000 |
commit | 4fe8c7ae42a90ce19425a335770e5198b5bcca56 (patch) | |
tree | 1941d52deccd4928213364df24a2a313bafec3db /tools/pkcs8dump.py | |
parent | 200a4a10fe23efa2e198644b1d93d5eae71ad6a0 (diff) | |
download | pyasn1-modules-4fe8c7ae42a90ce19425a335770e5198b5bcca56.tar.gz |
readPemFromFile() improved to select one of possible many PEM headers
Diffstat (limited to 'tools/pkcs8dump.py')
-rw-r--r-- | tools/pkcs8dump.py | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/tools/pkcs8dump.py b/tools/pkcs8dump.py index c3e4dc6..ed13875 100644 --- a/tools/pkcs8dump.py +++ b/tools/pkcs8dump.py @@ -1,7 +1,6 @@ # Read bunch of ASN.1/PEM plain/encrypted private keys in PKCS#8 # format on stdin, parse each into plain text, then build substrate from it from pyasn1.codec.der import decoder, encoder -from pyasn1 import error from pyasn1_modules import rfc5208, pem import sys @@ -10,26 +9,23 @@ if len(sys.argv) != 1: $ cat pkcs8key.pem | %s""" % (sys.argv[0], sys.argv[0])) sys.exit(-1) -keyTypePlain = rfc5208.PrivateKeyInfo() -keyTypeEncrypted = rfc5208.EncryptedPrivateKeyInfo() - cnt = 0 while 1: - substrate = pem.readPemFromFile( - sys.stdin, - ('-----BEGIN PRIVATE KEY-----', - '-----BEGIN ENCRYPTED PRIVATE KEY-----'), - ('-----END PRIVATE KEY-----', - '-----END ENCRYPTED PRIVATE KEY-----') - ) + idx, substrate = pem.readPemFromFile(sys.stdin, ('-----BEGIN PRIVATE KEY-----', '-----END PRIVATE KEY-----'), ('-----BEGIN ENCRYPTED PRIVATE KEY-----', '-----END ENCRYPTED PRIVATE KEY-----') ) if not substrate: break - try: - key, rest = decoder.decode(substrate, asn1Spec=keyTypeEncrypted) - except error.PyAsn1Error: - key, rest = decoder.decode(substrate, asn1Spec=keyTypePlain) + if idx == 0: + key, rest = decoder.decode( + substrate, asn1Spec=rfc5208.PrivateKeyInfo() + ) + elif idx == 1: + key, rest = decoder.decode( + substrate, asn1Spec=rfc5208.EncryptedPrivateKeyInfo() + ) + else: + break if rest: substrate = substrate[:-len(rest)] |