SPDX-License-Identifier: MIT

February 24, 2023 ยท View on GitHub

#!/usr/bin/python

SPDX-License-Identifier: MIT

import sys,json,base64,binascii with open(sys.argv[1]) as fp: pkey=json.load(fp)

def enc(data): missing_padding = 4 - len(data) % 4 if missing_padding: data += b'='* missing_padding return '0x'+binascii.hexlify(base64.b64decode(data,b'-_')).upper()

for k,v in pkey.items(): if k == 'kty': continue pkey[k] = enc(v.encode())

print "asn1=SEQUENCE:private_key\n[private_key]\nversion=INTEGER:0" print "n=INTEGER:{}".format(pkey[u'n']) print "e=INTEGER:{}".format(pkey[u'e']) print "d=INTEGER:{}".format(pkey[u'd']) print "p=INTEGER:{}".format(pkey[u'p']) print "q=INTEGER:{}".format(pkey[u'q']) print "dp=INTEGER:{}".format(pkey[u'dp']) print "dq=INTEGER:{}".format(pkey[u'dq']) print "qi=INTEGER:{}".format(pkey[u'qi'])