Recent commits to derivepassphrase.git (11972bb4b1d161d9dc68a02144785a9ea403eef5) https://git.schokokeks.org/derivepassphrase.git/tree/11972bb4b1d161d9dc68a02144785a9ea403eef5 Recent commits feed provided by GitList. Release 1.0 of the SSH agent socket API https://git.schokokeks.org/derivepassphrase.git/commit/11972bb4b1d161d9dc68a02144785a9ea403eef5 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 20:17:57 +0200 11972bb4b1d161d9dc68a02144785a9ea403eef5 Add the SSH agent socket provider API to the documentation ...and fix some typos/omissions encountered during preview. https://git.schokokeks.org/derivepassphrase.git/commit/91a07da403bba49ad5d98f36ca0dc6a8680483f8 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 20:05:37 +0200 91a07da403bba49ad5d98f36ca0dc6a8680483f8 Build a full example SSH agent socket provider, and integration test it There is a three-part example project for how to write an SSH agent socket provider; the project is a full-fledged Python package in its own right. (One of the three variants is also presented in the README.) There is also a single integration test in the SSH agent socket provider API package that verifies that this example project can be installed (into an isolated virtual environment), and that it correctly exposes the three SSH agent socket providers. Preparing this example package alone and getting the test to pass has already uncovered several misconfigurations and misspecifications in both the API package and the example package. We also set up a separate, reduced pytest configuration for the SSH agent socket provider API package, because otherwise pytest determines the wrong root directory, and the example project package files cannot be correctly installed. We explicitly mention that we currently do not measure coverage, because the test runs inside a temporary virtual environment (which coverage measurement would have to account for, both when measuring and when looking up configuration) and because there are currently no code branches in the API package, so the coverage information is uninteresting if we already know the example project was installable. https://git.schokokeks.org/derivepassphrase.git/commit/0917c48c7e120853ea0eb8ba7a903da1fd00fe66 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 18:14:44 +0200 0917c48c7e120853ea0eb8ba7a903da1fd00fe66 Apply usability fixes to the SSH agent socket provider API The API definition actually requires the `typing-extensions` package, but we forgot to declare that in `pyproject.toml`. While it likely makes no typing difference, it is much better for runtime checks to have `SSHAgentSocketProvider` be a runtime-checkable protocol, instead of a string-valued type alias. Among other things, `isinstance(provider, SSHAgentSocketProvider)` fails if a string-valued type alias is used. https://git.schokokeks.org/derivepassphrase.git/commit/ffed19d11cd8428f4b51aa0fc7c1b86080c77794 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 17:33:11 +0200 ffed19d11cd8428f4b51aa0fc7c1b86080c77794 Adapt `derivepassphrase` to use `derivepassphrase-sshagentsocketprovider` Change all references to the SSH agent socket and socket provider types to the `derivepassphrase-sshagentsocketprovider` package. Include `derivepassphrase-sshagentsocketprovider` in the dependencies. https://git.schokokeks.org/derivepassphrase.git/commit/aca20aa6e000ca1c4028228558efa944c6372ef9 software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 12:26:14 +0200 aca20aa6e000ca1c4028228558efa944c6372ef9 Extract the SSH agent socket provider API to a separate PyPI package A new Python package `derivepassphrase-sshagentsocketprovider` contains the API definition and types necessary to write SSH agent socket providers, without depending on the rest of `derivepassphrase`. Because this is so intricately tied to `derivepassphrase`, the new package does not set up a separate repository, separate documentation or a separate wishlist. The tests directory is functionally empty, because there is nothing to test, from a unit test/code coverage perspective. The README merely contains a short usage example. https://git.schokokeks.org/derivepassphrase.git/commit/f1051c8415f0499cb94fad695712cc88ca19467c software@the13thletter.info (Marco Ricci) Sun, 30 Aug 2026 10:25:08 +0200 f1051c8415f0499cb94fad695712cc88ca19467c Fix project metadata errors - Correct trove classifiers and license specification in `pyproject.toml`. Remove outdated hatch configuration too. - Fix the copyright date in the license text. https://git.schokokeks.org/derivepassphrase.git/commit/cdff4526c549d7c63e459349a8adc6cd3eca2b20 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 23:04:14 +0200 cdff4526c549d7c63e459349a8adc6cd3eca2b20 Co-exist peacefully with the fakesshagent variant of the stubbed SSH agent `fakesshagent` is the name of the planned package into which our stubbed SSH agent will be extracted, and which `derivepassphrase` will depend on in the future. If we can load the stubbed SSH agent from that package, then deactivate our own stub agent, do not register it, and provide compatibility links for the rest of the test suite. We also mark it as conditionally not covered, using two new provisional coverage pragmas. https://git.schokokeks.org/derivepassphrase.git/commit/74e590b1b72b7a6e2594f2d155f787919ada61a0 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 20:24:09 +0200 74e590b1b72b7a6e2594f2d155f787919ada61a0 Restructure testing data and testing machinery tests for better coverage We restructure `tests.data.SUPPORTED_KEYS` and `tests.data.UNSUPPORTED_KEYS`, introducing a third category `tests.data.CONDITIONALLY_SUPPORTED_KEYS` that contains the DSA-class entries from the `UNSUPPORTED_KEYS` table, which are suitable for use with vault if the agent supports deterministic DSA signatures. We then test the stub SSH agent's sign operation against these conditionally supported keys as well, for the "with deterministic DSA" variant of the stub agent. This improves code coverage, because although such code paths were previously already exercised in other tests of the test suite, with this change, the `test_000_testing_machinery` module alone is sufficient to achieve full code coverage on the stub SSH agent, in all three variations. Since we plan to extract the stub SSH agent from derivepassphrase's test suite, the `test_000_testing_machinery` module alone contains all the necessary code to test the extracted stub SSH agent (and its test keys). https://git.schokokeks.org/derivepassphrase.git/commit/986509a3106caaec52888c75820b2406eee266c4 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 19:17:34 +0200 986509a3106caaec52888c75820b2406eee266c4 Fix typing and linting errors after tool upgrade https://git.schokokeks.org/derivepassphrase.git/commit/ac34e6c40a56671408768c19c0cd41eadde9bfc3 software@the13thletter.info (Marco Ricci) Sat, 29 Aug 2026 18:45:38 +0200 ac34e6c40a56671408768c19c0cd41eadde9bfc3