1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Files
quay/tools/generatekeypair.py
2019-12-02 12:23:08 -05:00

35 lines
1.0 KiB
Python

import argparse
import json
from Crypto.PublicKey import RSA
from jwkest.jwk import RSAKey
from util.security.fingerprint import canonical_kid
def generate_key_pair(filename, kid=None):
private_key = RSA.generate(2048)
jwk = RSAKey(key=private_key.publickey()).serialize()
if kid is None:
kid = canonical_kid(jwk)
print("Writing public key to %s.jwk" % filename)
with open("%s.jwk" % filename, mode="w") as f:
f.truncate(0)
f.write(json.dumps(jwk))
print("Writing key ID to %s.kid" % filename)
with open("%s.kid" % filename, mode="w") as f:
f.truncate(0)
f.write(kid)
print("Writing private key to %s.pem" % filename)
with open("%s.pem" % filename, mode="w") as f:
f.truncate(0)
f.write(private_key.exportKey())
parser = argparse.ArgumentParser(description="Generates a key pair into files")
parser.add_argument("filename", help="The filename prefix for the generated key files")
args = parser.parse_args()
generate_key_pair(args.filename)