def test_kspec(): _ckey = x509_rsa_loads(open(CERT).read()) _jwk = RSA_key(key=_ckey) _jwk.decomp() print _jwk assert _jwk.kty == "RSA" assert _jwk.e == JWK["keys"][0]["e"] assert _jwk.n == JWK["keys"][0]["n"]
def test_encrypt_decrypt_rsa_cbc(): _key = RSA_key(key=rsa) _key._keytype = "private" _jwe0 = JWE(plain, alg="RSA1_5", enc="A128CBC-HS256") jwt = _jwe0.encrypt([_key], "public") _jwe1 = JWE() msg = _jwe1.decrypt(jwt, [_key], "private") assert msg == plain
def test_x509_rsa_loads_2(): _ckey = x509_rsa_loads(open(CERT).read()) _jwk = RSA_key(key=_ckey) _jwk.decomp() print _jwk _n = long_to_mpi(base64_to_long(str(_jwk.n))) cn = jwe.hd2ia(hexlify(_ckey.n)) jn = jwe.hd2ia(hexlify(_n)) assert cn == jn
def keybundle_from_local_file(filename, typ, usage): if typ.upper() == "RSA": kb = KeyBundle() k = RSA_key() k.load(filename) k.use = usage[0] kb.append(k) for use in usage[1:]: _k = RSA_key() _k.use = use _k.key = k.key kb.append(_k) elif typ.lower() == "jwk": kb = KeyBundle(source=filename, fileformat="jwk", keyusage=usage) else: raise Exception("Unsupported key type") return kb