def test_pjwt_unpack_jwe(): keys = KEYS() keys.append(RSAKey(use="enc", key=rsa, kid="some-key-id")) pj = PopJWT("https://server.example.com", "https://client.example.org", sub='12345678') jwk = { "kty": "oct", "alg": "HS256", "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE" } jwe = JWE(json.dumps(jwk), alg="RSA-OAEP", enc="A256CBC-HS512") _jwe = jwe.encrypt(keys=keys.keys(), kid="some-key-id") pjwt = pj.pack_jwe(jwe=_jwe) s = pjwt.to_json() _jwt = PopJWT(jwe=jwe, keys=keys).unpack(s) assert _eq(_jwt.keys(), ['iss', 'aud', 'exp', 'cnf', 'sub', 'iat']) assert _eq(_jwt['cnf'].keys(), ['jwk', 'jwe']) assert _jwt['cnf']['jwk'] == jwk
def test_pjwt_with_jwe_jwk(): keys = KEYS() keys.append(RSAKey(use="enc", key=rsa, kid="some-key-id")) jwe = JWE(alg="RSA-OAEP", enc="A256CBC-HS512") pj = PopJWT("https://server.example.com", "https://client.example.org", sub='12345678', jwe=jwe, keys=keys) jwk = { "kty": "oct", "alg": "HS256", "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE" } pjwt = pj.pack_jwe(jwk=jwk, kid='some-key-id') s = pjwt.to_json() de_pjwt = PJWT().from_json(s) assert _eq(de_pjwt.keys(), ['iss', 'aud', 'exp', 'cnf', 'sub', 'iat']) assert list(de_pjwt['cnf'].keys()) == ['jwe'] _jwe = de_pjwt['cnf']['jwe'] msg = jwe.decrypt(_jwe, keys.keys()) assert msg assert json.loads(msg.decode('utf8')) == jwk
def test_pjwt_unpack_jwe(): keys = KEYS() keys.append(RSAKey(use="enc", key=rsa, kid="some-key-id")) pj = PopJWT("https://server.example.com", "https://client.example.org", sub="12345678") jwk = { "kty": "oct", "alg": "HS256", "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE", } jwe = JWE(json.dumps(jwk), alg="RSA-OAEP", enc="A256CBC-HS512") _jwe = jwe.encrypt(keys=keys.keys(), kid="some-key-id") pjwt = pj.pack_jwe(jwe=_jwe) s = pjwt.to_json() _jwt = PopJWT(jwe=jwe, keys=keys).unpack(s) assert _eq(_jwt.keys(), ["iss", "aud", "exp", "cnf", "sub", "iat"]) assert _eq(_jwt["cnf"].keys(), ["jwk", "jwe"]) assert _jwt["cnf"]["jwk"] == jwk
def test_pjwt_with_jwe_jwk(): keys = KEYS() keys.append(RSAKey(use="enc", key=rsa, kid="some-key-id")) jwe = JWE(alg="RSA-OAEP", enc="A256CBC-HS512") pj = PopJWT( "https://server.example.com", "https://client.example.org", sub="12345678", jwe=jwe, keys=keys, ) jwk = { "kty": "oct", "alg": "HS256", "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE", } pjwt = pj.pack_jwe(jwk=jwk, kid="some-key-id") s = pjwt.to_json() de_pjwt = PJWT().from_json(s) assert _eq(de_pjwt.keys(), ["iss", "aud", "exp", "cnf", "sub", "iat"]) assert list(de_pjwt["cnf"].keys()) == ["jwe"] _jwe = de_pjwt["cnf"]["jwe"] msg = jwe.decrypt(_jwe, keys.keys()) assert msg assert json.loads(msg.decode("utf8")) == jwk
def test_pjwt_unpack_jwe(): keys = KEYS() keys.append(RSAKey(use="enc", key=rsa, kid="some-key-id")) pj = PopJWT("https://server.example.com", "https://client.example.org", sub='12345678') jwk = {"kty": "oct", "alg": "HS256", "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE"} jwe = JWE(json.dumps(jwk), alg="RSA-OAEP", enc="A256CBC-HS512") _jwe = jwe.encrypt(keys=keys.keys(), kid="some-key-id") pjwt = pj.pack_jwe(jwe=_jwe) s = pjwt.to_json() _jwt = PopJWT(jwe=jwe, keys=keys).unpack(s) assert _eq(_jwt.keys(), ['iss', 'aud', 'exp', 'cnf', 'sub', 'iat']) assert _eq(_jwt['cnf'].keys(), ['jwk', 'jwe']) assert _jwt['cnf']['jwk'] == jwk
def test_pjwt_with_jwe_jwk(): keys = KEYS() keys.append(RSAKey(use="enc", key=rsa, kid="some-key-id")) jwe = JWE(alg="RSA-OAEP", enc="A256CBC-HS512") pj = PopJWT("https://server.example.com", "https://client.example.org", sub='12345678', jwe=jwe, keys=keys) jwk = {"kty": "oct", "alg": "HS256", "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE"} pjwt = pj.pack_jwe(jwk=jwk, kid='some-key-id') s = pjwt.to_json() de_pjwt = PJWT().from_json(s) assert _eq(de_pjwt.keys(), ['iss', 'aud', 'exp', 'cnf', 'sub', 'iat']) assert list(de_pjwt['cnf'].keys()) == ['jwe'] _jwe = de_pjwt['cnf']['jwe'] msg = jwe.decrypt(_jwe, keys.keys()) assert msg assert json.loads(msg.decode('utf8')) == jwk