def test_decodeencode_header_rs256(self): # Example from https://tools.ietf.org/html/rfc7515#appendix-A.2 encoded_header = b'eyJhbGciOiJSUzI1NiJ9' json_header = _jwt_format.decode_header(encoded_header) self.assertEqual(json_header['alg'], 'RS256') self.assertEqual( _jwt_format.decode_header(_jwt_format.encode_header(json_header)), json_header)
def test_decodeencode_header_hs256(self): # Example from https://tools.ietf.org/html/rfc7515#appendix-A.1 encoded_header = b'eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9' json_header = _jwt_format.decode_header(encoded_header) self.assertEqual(json_header['alg'], 'HS256') self.assertEqual(json_header['typ'], 'JWT') self.assertEqual( _jwt_format.decode_header(_jwt_format.encode_header(json_header)), json_header)
def test_create_header_with_type(self): encoded_header = _jwt_format.create_header('HS256', 'typeHeader', None) json_header = _jwt_format.decode_header(encoded_header) self.assertEqual(json_header, '{"alg":"HS256","typ":"typeHeader"}') header = _json_util.json_loads(json_header) _jwt_format.validate_header(header, 'HS256') self.assertEqual(_jwt_format.get_type_header(header), 'typeHeader')
def test_create_header_with_type_and_kid(self): encoded_header = _jwt_format.create_header('HS256', 'typeHeader', 'GsapRA') json_header = _jwt_format.decode_header(encoded_header) self.assertEqual(json_header, '{"kid":"GsapRA","alg":"HS256","typ":"typeHeader"}') header = _jwt_format.json_loads(json_header) _jwt_format.validate_header(header, 'HS256') self.assertEqual(_jwt_format.get_type_header(header), 'typeHeader')
def test_decode_header_with_invalid_utf8(self): encoded_header = _jwt_format.base64_encode( b'{"alg":"RS256", "bad":"\xc2"}') with self.assertRaises(_jwt_error.JwtInvalidError): _jwt_format.decode_header(encoded_header)
def test_encode_decode_header(self): encoded_header = _jwt_format.encode_header('{ "alg": "RS256"} ') json_header = _jwt_format.decode_header(encoded_header) self.assertEqual(json_header, '{ "alg": "RS256"} ')
def test_create_verify_different_algorithms_fails(self): encoded_header = _jwt_format.create_header('HS256', None, None) json_header = _jwt_format.decode_header(encoded_header) header = _json_util.json_loads(json_header) with self.assertRaises(_jwt_error.JwtInvalidError): _jwt_format.validate_header(header, 'ES256')
def test_create_validate_header(self, algorithm): encoded_header = _jwt_format.create_header(algorithm, None, None) json_header = _jwt_format.decode_header(encoded_header) header = _json_util.json_loads(json_header) _jwt_format.validate_header(header, algorithm) self.assertIsNone(_jwt_format.get_type_header(header))
def testdecode_header_without_quotes(self): encoded_header = _jwt_format._base64_encode(b'{alg:"RS256"}') with self.assertRaises(_jwt_error.JwtInvalidError): _jwt_format.decode_header(encoded_header)
def testdecode_header(self): encoded_header = _jwt_format._base64_encode(b'{"alg":"RS256"}') json_header = _jwt_format.decode_header(encoded_header) self.assertEqual(json_header['alg'], 'RS256')
def test_create_validate_header(self, algorithm): encoded_header = _jwt_format.create_header(algorithm) header = _jwt_format.decode_header(encoded_header) _jwt_format.validate_header(header, algorithm)