MCPcopy Create free account
hub / github.com/mpdavis/python-jose / TestHMAC

Class TestHMAC

tests/test_jws.py:101–139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99
100
101class TestHMAC:
102 def testHMAC256(self, payload):
103 token = jws.sign(payload, "secret", algorithm=ALGORITHMS.HS256)
104 assert jws.verify(token, "secret", ALGORITHMS.HS256) == payload
105
106 def testHMAC384(self, payload):
107 token = jws.sign(payload, "secret", algorithm=ALGORITHMS.HS384)
108 assert jws.verify(token, "secret", ALGORITHMS.HS384) == payload
109
110 def testHMAC512(self, payload):
111 token = jws.sign(payload, "secret", algorithm=ALGORITHMS.HS512)
112 assert jws.verify(token, "secret", ALGORITHMS.HS512) == payload
113
114 def test_wrong_alg(self, payload):
115 token = jws.sign(payload, "secret", algorithm=ALGORITHMS.HS256)
116 with pytest.raises(JWSError):
117 jws.verify(token, "secret", ALGORITHMS.HS384)
118
119 def test_wrong_key(self, payload):
120 token = jws.sign(payload, "secret", algorithm=ALGORITHMS.HS256)
121 with pytest.raises(JWSError):
122 jws.verify(token, "another", ALGORITHMS.HS256)
123
124 def test_unsupported_alg(self, payload):
125 with pytest.raises(JWSError):
126 jws.sign(payload, "secret", algorithm="SOMETHING")
127
128 def test_add_headers(self, payload):
129 additional_headers = {"test": "header"}
130
131 expected_headers = {
132 "test": "header",
133 "alg": "HS256",
134 "typ": "JWT",
135 }
136
137 token = jws.sign(payload, "secret", headers=additional_headers)
138 header, payload, signing_input, signature = jws._load(token)
139 assert expected_headers == header
140
141
142rsa_private_key = """-----BEGIN RSA PRIVATE KEY-----

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…