|
1 | 1 | import os |
2 | 2 |
|
3 | | -from cryptojwt.jwt import JWT |
| 3 | +from cryptojwt.jwt import JWT, pick_key |
4 | 4 | from cryptojwt.key_bundle import KeyBundle |
5 | | -from cryptojwt.key_jar import KeyJar |
| 5 | +from cryptojwt.key_jar import KeyJar, init_key_jar |
6 | 6 |
|
7 | 7 | __author__ = 'Roland Hedberg' |
8 | 8 |
|
@@ -164,3 +164,33 @@ def test_msg_cls(): |
164 | 164 | bob.msg_cls = DummyMsg |
165 | 165 | info = bob.unpack(_jwt) |
166 | 166 | assert isinstance(info, DummyMsg) |
| 167 | + |
| 168 | + |
| 169 | +KEY_DEFS = [ |
| 170 | + {"type": "RSA", "use": ["sig"]}, |
| 171 | + {"type": "RSA", "use": ["enc"]}, |
| 172 | + {"type": "EC", "crv": "P-256", "use": ["sig"]}, |
| 173 | + {"type": "EC", "crv": "P-384", "use": ["sig"]} |
| 174 | + ] |
| 175 | + |
| 176 | +kj = init_key_jar(key_defs=KEY_DEFS) |
| 177 | + |
| 178 | + |
| 179 | +def test_pick_key(): |
| 180 | + keys = kj.get_issuer_keys('') |
| 181 | + |
| 182 | + _k = pick_key(keys, 'sig', 'RS256') |
| 183 | + assert len(_k) == 1 |
| 184 | + |
| 185 | + _k = pick_key(keys, 'sig', 'ES256') |
| 186 | + assert len(_k) == 1 |
| 187 | + |
| 188 | + _k = pick_key(keys, 'sig', 'ES384') |
| 189 | + assert len(_k) == 1 |
| 190 | + |
| 191 | + _k = pick_key(keys, 'enc', "RSA-OAEP-256") |
| 192 | + assert len(_k) == 1 |
| 193 | + |
| 194 | + _k = pick_key(keys, 'enc', "ECDH-ES") |
| 195 | + assert len(_k) == 0 |
| 196 | + |
0 commit comments