|
21 | 21 | from cryptojwt.jwe.exception import NoSuitableEncryptionKey
|
22 | 22 | from cryptojwt.jwe.exception import UnsupportedBitLength
|
23 | 23 | from cryptojwt.jwe.exception import WrongEncryptionAlgorithm
|
| 24 | +from cryptojwt.jwe.fernet import FernetEncrypter |
24 | 25 | from cryptojwt.jwe.jwe import JWE
|
25 | 26 | from cryptojwt.jwe.jwe import factory
|
26 | 27 | from cryptojwt.jwe.jwe_ec import JWE_EC
|
@@ -138,7 +139,8 @@ def test_jwe_09_a1():
|
138 | 139 |
|
139 | 140 | b64_ejek = (
|
140 | 141 | b"ApfOLCaDbqs_JXPYy2I937v_xmrzj"
|
141 |
| - b"-Iss1mG6NAHmeJViM6j2l0MHvfseIdHVyU2BIoGVu9ohvkkWiRq5DL2jYZTPA9TAdwq3FUIVyoH-Pedf6elHIVFi2KGDEspYMtQARMMSBcS7pslx6flh1Cfh3GBKysztVMEhZ_maFkm4PYVCsJsvq6Ct3fg2CJPOs0X1DHuxZKoIGIqcbeK4XEO5a0h5TAuJObKdfO0dKwfNSSbpu5sFrpRFwV2FTTYoqF4zI46N9-_hMIznlEpftRXhScEJuZ9HG8C8CHB1WRZ_J48PleqdhF4o7fB5J1wFqUXBtbtuGJ_A2Xe6AEhrlzCOw" |
| 142 | + b"-Iss1mG6NAHmeJViM6j2l0MHvfseIdHVyU2BIoGVu9ohvkkWiRq5DL2jYZTPA9TAdwq3FUIVyoH" |
| 143 | + b"-Pedf6elHIVFi2KGDEspYMtQARMMSBcS7pslx6flh1Cfh3GBKysztVMEhZ_maFkm4PYVCsJsvq6Ct3fg2CJPOs0X1DHuxZKoIGIqcbeK4XEO5a0h5TAuJObKdfO0dKwfNSSbpu5sFrpRFwV2FTTYoqF4zI46N9-_hMIznlEpftRXhScEJuZ9HG8C8CHB1WRZ_J48PleqdhF4o7fB5J1wFqUXBtbtuGJ_A2Xe6AEhrlzCOw" |
142 | 144 | )
|
143 | 145 |
|
144 | 146 | iv = intarr2bytes([227, 197, 117, 252, 2, 219, 233, 68, 180, 225, 77, 219])
|
@@ -243,7 +245,8 @@ def test_jwe_09_a1():
|
243 | 245 | [
|
244 | 246 | b"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ",
|
245 | 247 | b"ApfOLCaDbqs_JXPYy2I937v_xmrzj"
|
246 |
| - b"-Iss1mG6NAHmeJViM6j2l0MHvfseIdHVyU2BIoGVu9ohvkkWiRq5DL2jYZTPA9TAdwq3FUIVyoH-Pedf6elHIVFi2KGDEspYMtQARMMSBcS7pslx6flh1Cfh3GBKysztVMEhZ_maFkm4PYVCsJsvq6Ct3fg2CJPOs0X1DHuxZKoIGIqcbeK4XEO5a0h5TAuJObKdfO0dKwfNSSbpu5sFrpRFwV2FTTYoqF4zI46N9-_hMIznlEpftRXhScEJuZ9HG8C8CHB1WRZ_J48PleqdhF4o7fB5J1wFqUXBtbtuGJ_A2Xe6AEhrlzCOw", |
| 248 | + b"-Iss1mG6NAHmeJViM6j2l0MHvfseIdHVyU2BIoGVu9ohvkkWiRq5DL2jYZTPA9TAdwq3FUIVyoH" |
| 249 | + b"-Pedf6elHIVFi2KGDEspYMtQARMMSBcS7pslx6flh1Cfh3GBKysztVMEhZ_maFkm4PYVCsJsvq6Ct3fg2CJPOs0X1DHuxZKoIGIqcbeK4XEO5a0h5TAuJObKdfO0dKwfNSSbpu5sFrpRFwV2FTTYoqF4zI46N9-_hMIznlEpftRXhScEJuZ9HG8C8CHB1WRZ_J48PleqdhF4o7fB5J1wFqUXBtbtuGJ_A2Xe6AEhrlzCOw", |
247 | 250 | b"48V1_ALb6US04U3b",
|
248 | 251 | b"5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A",
|
249 | 252 | b"ghEgxninkHEAMp4xZtB2mA",
|
@@ -643,3 +646,38 @@ def test_invalid():
|
643 | 646 | decrypter = JWE(plain, alg="A128KW", enc="A128CBC-HS256")
|
644 | 647 | with pytest.raises(BadSyntax):
|
645 | 648 | decrypter.decrypt("a.b.c.d.e", keys=[encryption_key])
|
| 649 | + |
| 650 | + |
| 651 | +def test_fernet(): |
| 652 | + encryption_key = SYMKey(use="enc", key="DukeofHazardpass", kid="some-key-id") |
| 653 | + |
| 654 | + encrypter = FernetEncrypter(encryption_key.key) |
| 655 | + _token = encrypter.encrypt(plain) |
| 656 | + |
| 657 | + decrypter = encrypter |
| 658 | + resp = decrypter.decrypt(_token) |
| 659 | + assert resp == plain |
| 660 | + |
| 661 | + |
| 662 | +def test_fernet_sha512(): |
| 663 | + encryption_key = SYMKey(use="enc", key="DukeofHazardpass", kid="some-key-id") |
| 664 | + |
| 665 | + encrypter = FernetEncrypter(encryption_key.key, hash_alg="SHA512") |
| 666 | + _token = encrypter.encrypt(plain) |
| 667 | + |
| 668 | + decrypter = encrypter |
| 669 | + resp = decrypter.decrypt(_token) |
| 670 | + assert resp == plain |
| 671 | + |
| 672 | + |
| 673 | +def test_fernet_blake2s(): |
| 674 | + encryption_key = SYMKey(use="enc", key="DukeofHazardpass", kid="some-key-id") |
| 675 | + |
| 676 | + encrypter = FernetEncrypter( |
| 677 | + encryption_key.key, hash_alg="BLAKE2s", digest_size=32, iterations=1000 |
| 678 | + ) |
| 679 | + _token = encrypter.encrypt(plain) |
| 680 | + |
| 681 | + decrypter = encrypter |
| 682 | + resp = decrypter.decrypt(_token) |
| 683 | + assert resp == plain |
0 commit comments