https://git.schokokeks.org/derivepassphrase.git/tree/ssh-agent-socket-provider-1.0Recent commits to derivepassphrase.git (ssh-agent-socket-provider-1.0)2026-08-30T20:17:57+02:00tag:gitlist.org,2012:commit/11972bb4b1d161d9dc68a02144785a9ea403eef5Release 1.0 of the SSH agent socket API2026-08-30T20:17:57+02:00Marco Riccisoftware@the13thletter.info
<pre></pre>
tag:gitlist.org,2012:commit/91a07da403bba49ad5d98f36ca0dc6a8680483f8Add the SSH agent socket provider API to the documentation2026-08-30T20:05:37+02:00Marco Riccisoftware@the13thletter.info
<pre>...and fix some typos/omissions encountered during preview.
</pre>
tag:gitlist.org,2012:commit/0917c48c7e120853ea0eb8ba7a903da1fd00fe66Build a full example SSH agent socket provider, and integration test it2026-08-30T18:14:44+02:00Marco Riccisoftware@the13thletter.info
<pre>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.
</pre>
tag:gitlist.org,2012:commit/ffed19d11cd8428f4b51aa0fc7c1b86080c77794Apply usability fixes to the SSH agent socket provider API2026-08-30T17:33:11+02:00Marco Riccisoftware@the13thletter.info
<pre>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.
</pre>
tag:gitlist.org,2012:commit/aca20aa6e000ca1c4028228558efa944c6372ef9Adapt `derivepassphrase` to use `derivepassphrase-sshagentsocketprovider`2026-08-30T12:26:14+02:00Marco Riccisoftware@the13thletter.info
<pre>Change all references to the SSH agent socket and socket provider types
to the `derivepassphrase-sshagentsocketprovider` package. Include
`derivepassphrase-sshagentsocketprovider` in the dependencies.
</pre>
tag:gitlist.org,2012:commit/f1051c8415f0499cb94fad695712cc88ca19467cExtract the SSH agent socket provider API to a separate PyPI package2026-08-30T10:25:08+02:00Marco Riccisoftware@the13thletter.info
<pre>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.
</pre>
tag:gitlist.org,2012:commit/cdff4526c549d7c63e459349a8adc6cd3eca2b20Fix project metadata errors2026-08-29T23:04:14+02:00Marco Riccisoftware@the13thletter.info
<pre> - Correct trove classifiers and license specification in
`pyproject.toml`. Remove outdated hatch configuration too.
- Fix the copyright date in the license text.
</pre>
tag:gitlist.org,2012:commit/74e590b1b72b7a6e2594f2d155f787919ada61a0Co-exist peacefully with the fakesshagent variant of the stubbed SSH agent2026-08-29T20:24:09+02:00Marco Riccisoftware@the13thletter.info
<pre>`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.
</pre>
tag:gitlist.org,2012:commit/986509a3106caaec52888c75820b2406eee266c4Restructure testing data and testing machinery tests for better coverage2026-08-29T19:17:34+02:00Marco Riccisoftware@the13thletter.info
<pre>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).
</pre>
tag:gitlist.org,2012:commit/ac34e6c40a56671408768c19c0cd41eadde9bfc3Fix typing and linting errors after tool upgrade2026-08-29T18:45:38+02:00Marco Riccisoftware@the13thletter.info
<pre></pre>