def test_relay_state(self): key = SYMKey(key=rndstr(32), kid="1") key.serialize() payload = {"state": "STATE", "nonce": "NONCE"} _state = construct_state(payload, key) transformed = deconstruct_state(_state, [key]) assert transformed == payload
def test_jws_1(): msg = {"iss": "joe", "exp": 1300819380, "http://example.com/is_root": True} jwk = SYMKey(key=jwkest.intarr2bin(HMAC_KEY)) jwk.serialize() _jws = JWS(msg, cty="JWT", alg="HS256", jwk=json.dumps(jwk.to_dict())) res = _jws.sign_compact() _jws2 = JWS() _jws2.verify_compact(res) assert _jws2.msg == msg
def test_jws_1(): msg = {"iss": "joe", "exp": 1300819380, "http://example.com/is_root": True} key = SYMKey(key=jwkest.intarr2bin(HMAC_KEY)) _jws = JWS(msg, cty="JWT", alg="HS256", jwk=key.serialize()) res = _jws.sign_compact() _jws2 = JWS(alg="HS256") _jws2.verify_compact(res, keys=[key]) assert _jws2.msg == msg
def test_negative_transaction(self): state = "STATE" error_msg = "Error message test" logger = logging.getLogger() key = SYMKey(key=rndstr(32), kid="1") key.serialize() transaction_session = {"state": state, "nonce": "NONCE", "start_time": time.time(), "client_id": "client1", "redirect_uri": "https://example.com"} transaction_id = construct_state(transaction_session, key) environ = MagicMock() with pytest.raises(cherrypy.HTTPRedirect) as redirect: negative_transaction_response(transaction_id, transaction_session, environ, logger, error_msg, "test_idp_entity") response = urlparse.parse_qs(urlparse.urlparse(redirect.value.urls[0]).fragment) assert response["state"][0] == state assert response["error"][0] == "access_denied" assert response["error_description"][0] == error_msg