()
| 1263 | |
| 1264 | |
| 1265 | def test_decryption_of_json_string(): |
| 1266 | jwe = JsonWebEncryption() |
| 1267 | |
| 1268 | alice_key = OKPKey.import_key( |
| 1269 | { |
| 1270 | "kty": "OKP", |
| 1271 | "crv": "X25519", |
| 1272 | "x": "Knbm_BcdQr7WIoz-uqit9M0wbcfEr6y-9UfIZ8QnBD4", |
| 1273 | "d": "i9KuFhSzEBsiv3PKVL5115OCdsqQai5nj_Flzfkw5jU", |
| 1274 | } |
| 1275 | ) |
| 1276 | bob_key = OKPKey.import_key( |
| 1277 | { |
| 1278 | "kty": "OKP", |
| 1279 | "crv": "X25519", |
| 1280 | "x": "BT7aR0ItXfeDAldeeOlXL_wXqp-j5FltT0vRSG16kRw", |
| 1281 | "d": "1gDirl_r_Y3-qUa3WXHgEXrrEHngWThU3c9zj9A2uBg", |
| 1282 | } |
| 1283 | ) |
| 1284 | charlie_key = OKPKey.import_key( |
| 1285 | { |
| 1286 | "kty": "OKP", |
| 1287 | "crv": "X25519", |
| 1288 | "x": "q-LsvU772uV_2sPJhfAIq-3vnKNVefNoIlvyvg1hrnE", |
| 1289 | "d": "Jcv8gklhMjC0b-lsk5onBbppWAx5ncNtbM63Jr9xBQE", |
| 1290 | } |
| 1291 | ) |
| 1292 | |
| 1293 | data = """ |
| 1294 | { |
| 1295 | "protected": "eyJhbGciOiJFQ0RILTFQVStBMTI4S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwiYXB1IjoiUVd4cFkyVSIsImFwdiI6IlFtOWlJR0Z1WkNCRGFHRnliR2xsIiwiZXBrIjp7Imt0eSI6Ik9LUCIsImNydiI6IlgyNTUxOSIsIngiOiJrOW9mX2NwQWFqeTBwb1c1Z2FpeFhHczluSGt3ZzFBRnFVQUZhMzlkeUJjIn19", |
| 1296 | "unprotected": { |
| 1297 | "jku": "https://provider.test/jwks" |
| 1298 | }, |
| 1299 | "recipients": [ |
| 1300 | { |
| 1301 | "header": { |
| 1302 | "kid": "bob-key-2" |
| 1303 | }, |
| 1304 | "encrypted_key": "pOMVA9_PtoRe7xXW1139NzzN1UhiFoio8lGto9cf0t8PyU-sjNXH8-LIRLycq8CHJQbDwvQeU1cSl55cQ0hGezJu2N9IY0QN" |
| 1305 | }, |
| 1306 | { |
| 1307 | "header": { |
| 1308 | "kid": "2021-05-06" |
| 1309 | }, |
| 1310 | "encrypted_key": "56GVudgRLIMEElQ7DpXsijJVRSWUSDNdbWkdV3g0GUNq6hcT_GkxwnxlPIWrTXCqRpVKQC8fe4z3PQ2YH2afvjQ28aiCTWFE" |
| 1311 | } |
| 1312 | ], |
| 1313 | "iv": "AAECAwQFBgcICQoLDA0ODw", |
| 1314 | "ciphertext": "Az2IWsISEMDJvyc5XRL-3-d-RgNBOGolCsxFFoUXFYw", |
| 1315 | "tag": "HLb4fTlm8spGmij3RyOs2gJ4DpHM4hhVRwdF_hGb3WQ" |
| 1316 | }""" |
| 1317 | |
| 1318 | rv_at_bob = jwe.deserialize_json(data, bob_key, sender_key=alice_key) |
| 1319 | |
| 1320 | assert rv_at_bob.keys() == {"header", "payload"} |
| 1321 | |
| 1322 | assert rv_at_bob["header"].keys() == {"protected", "unprotected", "recipients"} |
nothing calls this directly
no test coverage detected
searching dependent graphs…