def read_key(path, password=None): ## # Read RSA key from PEM file and return JWK object of it. ## try: from Service_Mockup.instance.settings import cert_password_path with open(cert_password_path, "r") as pw_file: password = pw_file.readline() except Exception as e: password = None pass if password is not None: # Remove trailing line end if it exists password = password.strip("\n") from jwcrypto import jwk from jwkest.jwk import RSAKey with open(path, "r") as f: pem_data = f.read() try: rsajwk = RSAKey(key=import_rsa_key(pem_data, passphrase=password), use='sig') except ValueError as e: while True: pw = input("Please enter password for PEM file: ") try: rsajwk = RSAKey(key=import_rsa_key(pem_data, passphrase=pw), use='sig') save_pw = bool( str(input("Should the password be saved?(True/False): ")). capitalize()) if save_pw: with open("./cert_pw", "w+") as pw_file: pw_file.write(pw) break except Exception as e: print(repr(e)) print( "Password may have been incorrect. Try again or terminate." ) jwssa = jwk.JWK(**rsajwk.to_dict()) return jwssa
def create_and_store_rsa_key_pair(name="pyoidc", path=".", size=1024): key = RSA.generate(size) keyfile = os.path.join(path, name) f = open("%s.key" % keyfile, "w") f.write(key.exportKey("PEM")) f.close() f = open("%s.pub" % keyfile, "w") f.write(key.publickey().exportKey("PEM")) f.close() rsa_key = RSAKey(key=key) rsa_key.serialize() # This will create JWK from the public RSA key jwk_spec = json.dumps(rsa_key.to_dict(), "enc") f = open(keyfile + ".jwk", "w") f.write(str(jwk_spec)) f.close() return key
import os import argparse from jwkest.jwk import RSAKey, rsa_load, dump_jwks __author__ = 'rolandh' parser = argparse.ArgumentParser() parser.add_argument('-n', dest="name", default="pyoidc", help="file names") parser.add_argument('-p', dest="path", default=".", help="Path to the directory for the files") parser.add_argument('-k', dest="key", help="Key file") args = parser.parse_args() key = rsa_load(args.key) rsa_key = RSAKey(key=key) rsa_key.serialize() # This will create JWK from the public RSA key jwk_spec = json.dumps(rsa_key.to_dict(), "enc") keyfile = os.path.join(args.path, args.name) _out = dump_jwks([{"key": key, "use": "enc"}]) f = open(keyfile + ".jwk", "w") f.write(_out) f.close()
import json import os import argparse from jwkest.jwk import RSAKey, rsa_load, dump_jwks __author__ = 'rolandh' parser = argparse.ArgumentParser() parser.add_argument('-n', dest="name", default="pyoidc", help="file names") parser.add_argument('-p', dest="path", default=".", help="Path to the directory for the files") parser.add_argument('-k', dest="key", help="Key file") args = parser.parse_args() key = rsa_load(args.key) rsa_key = RSAKey(key=key) rsa_key.serialize() # This will create JWK from the public RSA key jwk_spec = json.dumps(rsa_key.to_dict(), "enc") keyfile = os.path.join(args.path, args.name) _out = dump_jwks([{"key":key, "use":"enc"}]) f = open(keyfile + ".jwk", "w") f.write(_out) f.close()