Marco Ricci commited on 2025-01-27 00:35:36
Zeige 1 geänderte Dateien mit 27 Einfügungen und 2 Löschungen.
Check that equivalent service name strings, byte strings and byte arrays all derive the same passphrases.
| ... | ... |
@@ -59,18 +59,43 @@ class TestVault: |
| 59 | 59 |
== b'n+oIz6sL>K*lTEWYRO%7' |
| 60 | 60 |
) |
| 61 | 61 |
|
| 62 |
- def test_202_reproducibility_and_bytes_service_name(self) -> None: |
|
| 62 |
+ def test_202a_reproducibility_and_bytes_service_name(self) -> None: |
|
| 63 | 63 |
"""Deriving a passphrase works equally for byte strings.""" |
| 64 | 64 |
assert Vault(phrase=self.phrase).generate(b'google') == Vault( |
| 65 | 65 |
phrase=self.phrase |
| 66 | 66 |
).generate('google')
|
| 67 | 67 |
|
| 68 |
- def test_203_reproducibility_and_bytearray_service_name(self) -> None: |
|
| 68 |
+ def test_202b_reproducibility_and_bytearray_service_name(self) -> None: |
|
| 69 | 69 |
"""Deriving a passphrase works equally for byte arrays.""" |
| 70 | 70 |
assert Vault(phrase=self.phrase).generate(b'google') == Vault( |
| 71 | 71 |
phrase=self.phrase |
| 72 | 72 |
).generate(bytearray(b'google')) |
| 73 | 73 |
|
| 74 |
+ @hypothesis.given( |
|
| 75 |
+ phrase=strategies.text( |
|
| 76 |
+ strategies.characters(min_codepoint=32, max_codepoint=126), |
|
| 77 |
+ min_size=1, |
|
| 78 |
+ max_size=32, |
|
| 79 |
+ ), |
|
| 80 |
+ service=strategies.text( |
|
| 81 |
+ strategies.characters(min_codepoint=32, max_codepoint=126), |
|
| 82 |
+ min_size=1, |
|
| 83 |
+ max_size=32, |
|
| 84 |
+ ), |
|
| 85 |
+ ) |
|
| 86 |
+ def test_202c_reproducibility_and_binary_service_name( |
|
| 87 |
+ self, |
|
| 88 |
+ phrase: str, |
|
| 89 |
+ service: str, |
|
| 90 |
+ ) -> None: |
|
| 91 |
+ """Deriving a passphrase works equally for byte arrays/strings.""" |
|
| 92 |
+ assert Vault(phrase=phrase).generate(service) == Vault( |
|
| 93 |
+ phrase=phrase |
|
| 94 |
+ ).generate(service.encode('utf-8'))
|
|
| 95 |
+ assert Vault(phrase=phrase).generate(service) == Vault( |
|
| 96 |
+ phrase=phrase |
|
| 97 |
+ ).generate(bytearray(service.encode('utf-8')))
|
|
| 98 |
+ |
|
| 74 | 99 |
def test_210_nonstandard_length(self) -> None: |
| 75 | 100 |
"""Deriving a passphrase adheres to imposed length limits.""" |
| 76 | 101 |
assert ( |
| 77 | 102 |