|
7 | 7 | import pytest
|
8 | 8 |
|
9 | 9 | from cryptography.exceptions import AlreadyFinalized, InvalidKey, _Reasons
|
10 |
| -from cryptography.hazmat.backends import default_backend |
11 | 10 | from cryptography.hazmat.primitives import hashes
|
12 | 11 | from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
13 | 12 |
|
|
16 | 15 |
|
17 | 16 |
|
18 | 17 | class TestPBKDF2HMAC(object):
|
19 |
| - def test_already_finalized(self): |
20 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, default_backend()) |
| 18 | + def test_already_finalized(self, backend): |
| 19 | + kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, backend) |
21 | 20 | kdf.derive(b"password")
|
22 | 21 | with pytest.raises(AlreadyFinalized):
|
23 | 22 | kdf.derive(b"password2")
|
24 | 23 |
|
25 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, default_backend()) |
| 24 | + kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, backend) |
26 | 25 | key = kdf.derive(b"password")
|
27 | 26 | with pytest.raises(AlreadyFinalized):
|
28 | 27 | kdf.verify(b"password", key)
|
29 | 28 |
|
30 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, default_backend()) |
| 29 | + kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, backend) |
31 | 30 | kdf.verify(b"password", key)
|
32 | 31 | with pytest.raises(AlreadyFinalized):
|
33 | 32 | kdf.verify(b"password", key)
|
34 | 33 |
|
35 |
| - def test_unsupported_algorithm(self): |
| 34 | + def test_unsupported_algorithm(self, backend): |
36 | 35 | with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_HASH):
|
37 |
| - PBKDF2HMAC( |
38 |
| - DummyHashAlgorithm(), 20, b"salt", 10, default_backend() |
39 |
| - ) |
| 36 | + PBKDF2HMAC(DummyHashAlgorithm(), 20, b"salt", 10, backend) |
40 | 37 |
|
41 |
| - def test_invalid_key(self): |
42 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, default_backend()) |
| 38 | + def test_invalid_key(self, backend): |
| 39 | + kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, backend) |
43 | 40 | key = kdf.derive(b"password")
|
44 | 41 |
|
45 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, default_backend()) |
| 42 | + kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, backend) |
46 | 43 | with pytest.raises(InvalidKey):
|
47 | 44 | kdf.verify(b"password2", key)
|
48 | 45 |
|
49 |
| - def test_unicode_error_with_salt(self): |
| 46 | + def test_unicode_error_with_salt(self, backend): |
50 | 47 | with pytest.raises(TypeError):
|
51 |
| - PBKDF2HMAC(hashes.SHA1(), 20, u"salt", 10, default_backend()) |
| 48 | + PBKDF2HMAC(hashes.SHA1(), 20, u"salt", 10, backend) |
52 | 49 |
|
53 |
| - def test_unicode_error_with_key_material(self): |
54 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, default_backend()) |
| 50 | + def test_unicode_error_with_key_material(self, backend): |
| 51 | + kdf = PBKDF2HMAC(hashes.SHA1(), 20, b"salt", 10, backend) |
55 | 52 | with pytest.raises(TypeError):
|
56 | 53 | kdf.derive(u"unicode here")
|
57 | 54 |
|
58 | 55 | def test_buffer_protocol(self, backend):
|
59 |
| - kdf = PBKDF2HMAC(hashes.SHA1(), 10, b"salt", 10, default_backend()) |
| 56 | + kdf = PBKDF2HMAC(hashes.SHA1(), 10, b"salt", 10, backend) |
60 | 57 | data = bytearray(b"data")
|
61 | 58 | assert kdf.derive(data) == b"\xe9n\xaa\x81\xbbt\xa4\xf6\x08\xce"
|
62 | 59 |
|
|
0 commit comments