|
367 | 367 | -----END PUBLIC KEY-----
|
368 | 368 | """
|
369 | 369 |
|
| 370 | +X25519PrivatePEM = b"""-----BEGIN PRIVATE KEY----- |
| 371 | +MC4CAQAwBQYDK2VuBCIEIBjAbPTtNY6CUuR5FG1+xb1u5nSRokrNaQYEsgu9O+hP |
| 372 | +-----END PRIVATE KEY----- |
| 373 | +""" |
| 374 | + |
| 375 | +X25519PublicPEM = b"""-----BEGIN PUBLIC KEY----- |
| 376 | +MCowBQYDK2VuAyEAW+m9ugi1psQFx6dtTl6J/XZ4JFP019S+oq4wyAoWPnQ= |
| 377 | +-----END PUBLIC KEY----- |
| 378 | +""" |
| 379 | + |
370 | 380 | ECPublicPEM = b"""-----BEGIN PUBLIC KEY-----
|
371 | 381 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhvGzt82WMJxqTuXCZxnvwrx4enQj
|
372 | 382 | 6xc+erlhbTq8gTMAJBzNRPbpuj4NOwTCwjohrtY0TAkthwTuixuojpGKmw==
|
|
381 | 391 | "y": "ACQczUT26bo-DTsEwsI6Ia7WNEwJLYcE7osbqI6Rips"
|
382 | 392 | }
|
383 | 393 |
|
| 394 | +X25519PublicJWK = { |
| 395 | + 'crv': 'X25519', |
| 396 | + 'kid': '9cgLEZD5VsaV9dUPNehs2pOwxtmH-EWHJY-pC74Wjak', |
| 397 | + 'kty': 'OKP', |
| 398 | + 'x': 'W-m9ugi1psQFx6dtTl6J_XZ4JFP019S-oq4wyAoWPnQ' |
| 399 | +} |
| 400 | + |
384 | 401 |
|
385 | 402 | class TestJWK(unittest.TestCase):
|
386 | 403 | def test_create_pubKeys(self):
|
@@ -570,6 +587,11 @@ def test_import_ec_from_pem(self):
|
570 | 587 | self.assertEqual(pub_ec.export_to_pem(), ECPublicPEM)
|
571 | 588 | self.assertEqual(json_decode(pub_ec.export()), ECPublicJWK)
|
572 | 589 |
|
| 590 | + def test_import_x25519_from_pem(self): |
| 591 | + pub_x25519 = jwk.JWK.from_pem(X25519PublicPEM) |
| 592 | + self.assertEqual(pub_x25519.export_to_pem(), X25519PublicPEM) |
| 593 | + self.assertEqual(json_decode(pub_x25519.export()), X25519PublicJWK) |
| 594 | + |
573 | 595 | def test_export_symmetric(self):
|
574 | 596 | key = jwk.JWK(**SymmetricKeys['keys'][0])
|
575 | 597 | self.assertTrue(key.is_symmetric)
|
|
0 commit comments