コード例 #1
0
def generate_token_from_bytes(header: bytes, payload: bytes) -> Text:
    """Generates tokens from bytes with valid MACs."""
    unsigned_compact = (_jwt_format._base64_encode(header) + b'.' +
                        _jwt_format._base64_encode(payload))
    mac_value = MAC.compute_mac(unsigned_compact)
    return (unsigned_compact + b'.' +
            _jwt_format.encode_signature(mac_value)).decode('utf8')
コード例 #2
0
 def test_base64_encode_decode_header_fixed_data(self):
     # Example from https://tools.ietf.org/html/rfc7519#section-3.1
     header = bytes([
         123, 34, 116, 121, 112, 34, 58, 34, 74, 87, 84, 34, 44, 13, 10, 32,
         34, 97, 108, 103, 34, 58, 34, 72, 83, 50, 53, 54, 34, 125
     ])
     encoded_header = b'eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9'
     self.assertEqual(_jwt_format._base64_encode(header), encoded_header)
     self.assertEqual(_jwt_format._base64_decode(encoded_header), header)
コード例 #3
0
 def test_base64_encode_decode_payload_fixed_data(self):
   # Example from https://tools.ietf.org/html/rfc7519#section-3.1
   payload = bytes([
       123, 34, 105, 115, 115, 34, 58, 34, 106, 111, 101, 34, 44, 13, 10, 32,
       34, 101, 120, 112, 34, 58, 49, 51, 48, 48, 56, 49, 57, 51, 56, 48, 44,
       13, 10, 32, 34, 104, 116, 116, 112, 58, 47, 47, 101, 120, 97, 109, 112,
       108, 101, 46, 99, 111, 109, 47, 105, 115, 95, 114, 111, 111, 116, 34,
       58, 116, 114, 117, 101, 125
   ])
   encoded_payload = (b'eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0'
                      b'dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ')
   self.assertEqual(_jwt_format._base64_encode(payload), encoded_payload)
   self.assertEqual(_jwt_format._base64_decode(encoded_payload), payload)
コード例 #4
0
 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)
コード例 #5
0
 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')
コード例 #6
0
 def test_split_signed_compact_with_invalid_utf8_in_header(self):
     encoded_header = _jwt_format._base64_encode(
         b'{"alg":"RS256", "bad":"\xc2"}')
     token = (encoded_header + b'.e30.YWJj').decode('utf8')
     with self.assertRaises(_jwt_error.JwtInvalidError):
         _jwt_format.split_signed_compact(token)
コード例 #7
0
 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)