def generate_root(bits=2048, expires=24*60*60, keyid=None, priv_path=None, pub_path=None): """For generating test root ceritifcates""" if keyid is None: keyid = ISSUER_URL if priv_path is None: priv_path = ROOT_PRIV_PATH if pub_path is None: pub_path = ROOT_PUB_PATH def NoOp(): pass rsaObj = M2Crypto.RSA.gen_key(bits, 0x10001, NoOp) # Create the JWK from the pubkey juke = dict(jwk=[ dict(alg="RSA", use='sig', kid=keyid, exp=jwt.base64url_encode(rsaObj.pub()[0][4:]), mod=jwt.base64url_encode(rsaObj.pub()[1][4:])) ]) with open(priv_path, 'w') as f: f.write(rsaObj.as_pem(None)) with open(pub_path, 'w') as f: f.write(json.dumps(juke)) return True
def generate_root(bits=2048, expires=24 * 60 * 60, keyid=None, priv_path=None, pub_path=None): """For generating test root ceritifcates""" if keyid is None: keyid = ISSUER_URL if priv_path is None: priv_path = ROOT_PRIV_PATH if pub_path is None: pub_path = ROOT_PUB_PATH def NoOp(): pass rsaObj = M2Crypto.RSA.gen_key(bits, 0x10001, NoOp) # Create the JWK from the pubkey juke = dict(jwk=[ dict(alg="RSA", use='sig', kid=keyid, exp=jwt.base64url_encode(rsaObj.pub()[0][4:]), mod=jwt.base64url_encode(rsaObj.pub()[1][4:])) ]) with open(priv_path, 'w') as f: f.write(rsaObj.as_pem(None)) with open(pub_path, 'w') as f: f.write(json.dumps(juke)) return True
def jwkify(pub, keyid): if isinstance(pub, M2Crypto.RSA.RSA) \ or isinstance(pub, M2Crypto.RSA.RSA_pub): pub = pub.pub() elif type(pub) != tuple: raise ValueError("jwkify expects an RSA object or a tuple") return dict(jwk=[ { "alg": "RSA", "kid": keyid, "exp": jwt.base64url_encode(pub[0][4:]), "mod": jwt.base64url_encode(pub[1][4:]) } ])
def jwkify(pub, keyid): if isinstance(pub, M2Crypto.RSA.RSA) \ or isinstance(pub, M2Crypto.RSA.RSA_pub): pub = pub.pub() elif type(pub) != tuple: raise ValueError("jwkify expects an RSA object or a tuple") return dict(jwk=[{ "alg": "RSA", "kid": keyid, "exp": jwt.base64url_encode(pub[0][4:]), "mod": jwt.base64url_encode(pub[1][4:]) }])