mirror of
https://github.com/quay/quay.git
synced 2026-01-26 06:21:37 +03:00
35 lines
1.0 KiB
Python
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)
|