Recent commits to derivepassphrase.git (490996f7d8d1d79323259aee66548dac2514db0f) https://git.schokokeks.org/derivepassphrase.git/tree/490996f7d8d1d79323259aee66548dac2514db0f Recent commits feed provided by GitList. Fix unloading SSH keys in the test suite In the `ssh_agent_client_with_test_keys_loaded` test fixture, fix the unloading of the SSH test keys during fixture teardown. Previously, the test keys were persisting in the agent due to a protocol violation in our request -- the payload should be wrapped in an extra layer of `SSHAgentClient.string` -- but the fixture either never unloaded keys in the first place (for isolated agents) or it misinterpreted the resulting error message as indicating that the key was no longer available in the agent anyway. To avoid making such silent errors in the future, we now always unload keys, even for isolated agents, so that these errors have as high a chance as possible of triggering non-silently. https://git.schokokeks.org/derivepassphrase.git/commit/490996f7d8d1d79323259aee66548dac2514db0f software@the13thletter.info (Marco Ricci) Sun, 22 Mar 2026 13:24:44 +0100 490996f7d8d1d79323259aee66548dac2514db0f Add more tests for the SSH agent socket provider internals Specifically, add tests for the low-level `WindowsNamedPipeHandle` class, and for the socket provider selection machinery built on top of it. These tests, happily enough, mostly stub out the operating system-specific parts anyway, so they can be run on all operating systems, not just The Annoying OS. The lone `TestGracefulFailureForSSHAuthSock` class now fits into this larger picture of testing SSH agent socket provider failures, and so is moved to that section. Also, an unrelated typo in the inline commentary of the heavy-duty CLI tests was spotted while preparing this, and swiftly corrected. https://git.schokokeks.org/derivepassphrase.git/commit/9093a9bb513cb904161936f8ea01972383bcede6 software@the13thletter.info (Marco Ricci) Sat, 21 Mar 2026 20:02:13 +0100 9093a9bb513cb904161936f8ea01972383bcede6 Overhaul the SSH key tutorial, also aligning it with the SSH key how-to On The Annoying OS, we add screenshots for the steps involving `pageant` and `puttygen`, because we cannot present a verbatim shell transcript. The instructions avoid giving motor instructions ("click on ...", "type ... in", etc.) as much as possible, both for consistency with the UNIX instructions and to focus on the higher-level operations instead. This also avoids doing users with motor impairments or unusual input device setups the disservice of giving them instructions they cannot follow. We add a definition for "key rotation", and further short commentary on key compartmentalization and locking the agent (or the key in the agent). We align the visual style of both this tutorial and the SSH key how-to by using the text framing approach from the latter to frame alternate blocks of content (e.g. operating system-specific instructions), either explicitly or implicitly, as needed. We ensure that this style is also used consistently in the how-to as well. Finally, we also add the `pageant` logo to the how-to, and image credits for the logo on both pages. https://git.schokokeks.org/derivepassphrase.git/commit/a8e01a9854df59178deb35c75fb9c918ddc564bd software@the13thletter.info (Marco Ricci) Sat, 14 Mar 2026 17:33:38 +0100 a8e01a9854df59178deb35c75fb9c918ddc564bd Add a tutorial for using SSH keys with `derivepassphrase vault` The tutorial builds on the previous tutorial for setting up `derivepassphrase vault` with a master passphrase, modifying the existing configuration to use a master SSH key instead. It covers SSH agent installation, key generation, and reconfiguring `derivepassphrase vault`. Both tutorials link to each other. The other tutorial (for setting up `derivepassphrase vault` with a master passphrase) now also contains a short note on shell prompts as well as operating system-specific instructions for the `pip` install method. For reproducibility, the new tutorial uses the standard Ed25519 SSH test key as the master SSH key. The test key is explicitly linked. The tutorial also includes a copy of the Pageant icon to help the reader identify the correct icon in The Annoying OS's task bar. https://git.schokokeks.org/derivepassphrase.git/commit/f9a8d370e5d2cb92d7c9f430543fe42a28bc5ff6 software@the13thletter.info (Marco Ricci) Sun, 08 Mar 2026 22:46:41 +0100 f9a8d370e5d2cb92d7c9f430543fe42a28bc5ff6 Update the copyright year to 2026 Also fix one instance where the declared license identifier still was the MIT license, making it unclear whether this file was licensed under a different license than the rest. (No, it was merely a typo.) https://git.schokokeks.org/derivepassphrase.git/commit/7eb5e54f22abbd9115bd27603f1a71bfda60425f software@the13thletter.info (Marco Ricci) Sun, 08 Feb 2026 21:25:06 +0100 7eb5e54f22abbd9115bd27603f1a71bfda60425f Fix a longstanding typo in the Markdown manpage examples Apparently, this is a copy-and-paste error from the PDF rendering of the manpage when it was originally converted to Markdown: while the PDF *looked* correct, the text layer was not, and so the pasted text was also out-of-order. https://git.schokokeks.org/derivepassphrase.git/commit/e76702af47917d27407300964d7db4e7eba08e63 software@the13thletter.info (Marco Ricci) Sun, 08 Feb 2026 21:01:20 +0100 e76702af47917d27407300964d7db4e7eba08e63 Update the manpages with respect to SSH agents Add a section on SSH agent socket providers, and documentation for the new `--ssh-agent-socket-provider` option and the new "The SSH agent socket provider %s is not in derivepassphrase's provider registry." error message. Also update the section on SSH key suitability, and remove the entry on Windows incompatibility from the Bugs section. https://git.schokokeks.org/derivepassphrase.git/commit/50bcd5e2848b599cef92229033efd0e57529a9ce software@the13thletter.info (Marco Ricci) Sun, 08 Feb 2026 19:38:24 +0100 50bcd5e2848b599cef92229033efd0e57529a9ce Fix minor formatting errors, linting errors, and typos https://git.schokokeks.org/derivepassphrase.git/commit/bbda81848f19467eac4364337e6993d347a5fe33 software@the13thletter.info (Marco Ricci) Sun, 08 Feb 2026 16:10:06 +0100 bbda81848f19467eac4364337e6993d347a5fe33 Add tests for explicit SSH agent socket provider selection Extend the vault CLI tests for basic SSH key usage to also cover the SSH agent socket provider choice case. We split up the monolithic `_test` helper function into separate `_setup_environment` and `_check_result` functions, so that we can share common setup code (including fixtures and parametrizations), but use different result testing code. We also extend the `_setup_environment` code to handle main user configuration mocking and SSH agent socket provider registry mocking as well, even if the basic key tests don't use this functionality. https://git.schokokeks.org/derivepassphrase.git/commit/dd95f72397ce3b78436fe211e8bf9d33a9cedecc software@the13thletter.info (Marco Ricci) Sun, 08 Feb 2026 16:02:18 +0100 dd95f72397ce3b78436fe211e8bf9d33a9cedecc Error out correctly when an invalid SSH agent socket provider is specified Issue the correct error message when an SSH agent socket provider is specified via command-line options or via user configuration, but the socket provider does not appear in the registry. Previously, due to a technicality, this would be treated the same as the `SSH_AUTH_SOCK` environment variable missing, and would issue the same error message. This is, of course, blatantly false, and has now been corrected. https://git.schokokeks.org/derivepassphrase.git/commit/546b916851c6fc96f84f3f2db42817bab4cc2db5 software@the13thletter.info (Marco Ricci) Sun, 08 Feb 2026 13:40:06 +0100 546b916851c6fc96f84f3f2db42817bab4cc2db5