Recent commits to derivepassphrase.git (171674c46f598ae2509663d92029d4cb4a1cf51e) https://git.schokokeks.org/derivepassphrase.git/tree/171674c46f598ae2509663d92029d4cb4a1cf51e Recent commits feed provided by GitList. Add hypothesis-based test for service name dependence of derived passphrases As part of a larger quality assurance effort, explicitly test that derived passphrases depend on the service name. The obvious counterpart, that derived passphrases depend on the master passphrase, it not quite so straightforward, and will be tackled in a later commit. https://git.schokokeks.org/derivepassphrase.git/commit/171674c46f598ae2509663d92029d4cb4a1cf51e software@the13thletter.info (Marco Ricci) Mon, 27 Jan 2025 15:23:35 +0100 171674c46f598ae2509663d92029d4cb4a1cf51e Add hypothesis-based service name type tests for the "vault" module Check that equivalent service name strings, byte strings and byte arrays all derive the same passphrases. https://git.schokokeks.org/derivepassphrase.git/commit/b0038660e3efed0577ad5c08523d69a70a13bfeb software@the13thletter.info (Marco Ricci) Mon, 27 Jan 2025 00:35:36 +0100 b0038660e3efed0577ad5c08523d69a70a13bfeb Signal failed assumptions instead of passing tests in the "vault" module One hypothesis-enabled test function of the "vault" module tests that the constructor accepts a given set of settings. While the generator attempts to yield only satisfiable settings, there are certain settings that cannot derive a passphrase for one service name, but can derive one for other names. In these cases, the specific generated characters and occurrence limitations together disallow all otherwise eligible candidates for the next character. Tests with such configurations should actually be skipped, but hypothesis-based tests need different skip handling than normal pytest-based tests. Previously we would "fake" skipping by silently returning early, which suggests that the test actually *passed*. Now, we use `hypothesis.assume` to signal to hypothesis to generate a different datum instead. https://git.schokokeks.org/derivepassphrase.git/commit/3450dc6b4e2ca1c160fb5341e24ba49f6a3de18c software@the13thletter.info (Marco Ricci) Sun, 26 Jan 2025 23:42:36 +0100 3450dc6b4e2ca1c160fb5341e24ba49f6a3de18c Document hypothesis examples for "vault" tests the proper way Use `hypothesis.example(...).via(...)` instead of source code comments. https://git.schokokeks.org/derivepassphrase.git/commit/fe0c9ed2905b4cecf92062921c3035b0a29ddf29 software@the13thletter.info (Marco Ricci) Sun, 26 Jan 2025 23:40:15 +0100 fe0c9ed2905b4cecf92062921c3035b0a29ddf29 Rearrange hypothesis tests in the `vault` module Just like in 9db6c6591de054433ae98d59f7930364e7d03286 for the `ssh_agent` tests, arrange the `vault` hypothesis tests so that they lie next to the respective non-hypothesis test, if any. Also rename and/or renumber them as necessary. https://git.schokokeks.org/derivepassphrase.git/commit/e3b9a55dcbd793977d8e3373bd24892f04199b2c software@the13thletter.info (Marco Ricci) Sun, 26 Jan 2025 20:10:35 +0100 e3b9a55dcbd793977d8e3373bd24892f04199b2c Rearrange hypothesis tests in the `ssh_agent` module Arrange the hypothesis tests so that they lie next to the respective non-hypothesis test, if any, instead of bundling them all in the same testing class. By doing this, related tests are closer to each other, if possible. Use the hypothesis mark instead of the testing class if filtering is required. Additionally, since the helper functions `as_ssh_string`, `canonicalize1` and `canonicalize2` now are visible in and assigned to a broader context, give them proper docstrings. https://git.schokokeks.org/derivepassphrase.git/commit/1291fcbc59d4a4ea9e8c60fb5502f51854b09861 software@the13thletter.info (Marco Ricci) Sun, 26 Jan 2025 16:34:47 +0100 1291fcbc59d4a4ea9e8c60fb5502f51854b09861 Add more hypothesis tests for the `ssh_agent` module Add more hypothesis tests for SSH string encoding and decoding, based on David R. MacIver's articles. Also document the explicit examples in the proper way. https://git.schokokeks.org/derivepassphrase.git/commit/7c5ca4b3edb7babde9c8dd1a5e6eebd5cbe52638 software@the13thletter.info (Marco Ricci) Sun, 26 Jan 2025 16:21:45 +0100 7c5ca4b3edb7babde9c8dd1a5e6eebd5cbe52638 Fix improper `re` escape pattern in `ssh_agent` tests https://git.schokokeks.org/derivepassphrase.git/commit/d2fc4003bd5b81a3a6063007c5e42a5aa1bfc884 software@the13thletter.info (Marco Ricci) Sun, 26 Jan 2025 16:17:09 +0100 d2fc4003bd5b81a3a6063007c5e42a5aa1bfc884 Add hypothesis tests for the `exporter` module Add hypothesis tests for vault key discovery and for registring vault configuration data export handlers, each via their own parameter object and corresponding hypothesis strategy, and convert all existing explicit parametrized tests to hypothesis examples. https://git.schokokeks.org/derivepassphrase.git/commit/6367e1a267c8eb3ab1696a02be42ff929d5ea7ce software@the13thletter.info (Marco Ricci) Sat, 25 Jan 2025 23:29:34 +0100 6367e1a267c8eb3ab1696a02be42ff929d5ea7ce Add hypothesis tests for the `sequin` module Add hypothesis tests for big endian number parsing, the sequin constructor, the generation and the bit shifting steps, each via their own parameter object and corresponding hypothesis strategy, and convert all existing explicit parametrized tests to hypothesis examples. (The strategy may be trivial, however.) Besides the existing helper function `bitseq`, we add a new `bits` helper function, and add hypothesis tests for both of these helper functions as well. https://git.schokokeks.org/derivepassphrase.git/commit/f797b3c6e22947c9df1f79bf156934338b876d10 software@the13thletter.info (Marco Ricci) Sat, 25 Jan 2025 23:28:10 +0100 f797b3c6e22947c9df1f79bf156934338b876d10