Metadata-Version: 2.5
Name: fakesshagent
Version: 0.1
Summary: A non-hardened implementation of the SSH agent protocol, for use in testing.
Project-URL: Documentation, https://the13thletter.info/fakesshagent/
Project-URL: Issues, https://the13thletter.info/fakesshagent/latest/wishlist/
Project-URL: Source, https://git.schokokeks.org/fakesshagent.git
Author-email: Marco Ricci <software@the13thletter.info>
License-Expression: Zlib
License-File: LICENSE.txt
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: derivepassphrase-sshagentsocketprovider>=1.0
Requires-Dist: typing-extensions
Provides-Extra: dev
Requires-Dist: coverage-enable-subprocess>=1.0; extra == 'dev'
Requires-Dist: coverage[toml]>=7.4; extra == 'dev'
Requires-Dist: hatch>=1.10; extra == 'dev'
Requires-Dist: hypothesis!=6.130.13,!=6.131.*,!=6.132.*,!=6.133.*,!=6.134.*,!=6.135.0,!=6.135.1; (python_version < '3.10') and extra == 'dev'
Requires-Dist: hypothesis<6.156; (platform_python_implementation == 'PyPy' and python_version < '3.11') and extra == 'dev'
Requires-Dist: hypothesis>=6.131.0; extra == 'dev'
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: packaging; extra == 'dev'
Requires-Dist: pytest-randomly>=3.15; extra == 'dev'
Requires-Dist: pytest-xdist>=3.6.0; extra == 'dev'
Requires-Dist: pytest-xdist[psutil]>=3.6.0; (platform_python_implementation != 'PyPy') and extra == 'dev'
Requires-Dist: pytest<8.4; (python_version < '3.10') and extra == 'dev'
Requires-Dist: pytest>=8.2; extra == 'dev'
Requires-Dist: ruff>=0.16.0; extra == 'dev'
Description-Content-Type: text/markdown

# fakesshagent

[![PyPI - Version](https://img.shields.io/pypi/v/fakesshagent.svg)](https://pypi.org/project/fakesshagent)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fakesshagent.svg)](https://pypi.org/project/fakesshagent)

A non-hardened implementation of the SSH agent protocol, for use in testing.

`fakesshagent` was originally written to test [`derivepassphrase`][DERIVEPASSPHRASE]'s SSH agent interactions.
As such, `fakesshagent` also registers as an abstract SSH agent socket provider for [`derivepassphrase`][DERIVEPASSPHRASE].
(The implementation is based on memory buffers, not external I/O with sockets.)

In this first release, `fakesshagent` provides exactly the operations needed for use with `derivepassphrase`:
listing available keys, and deterministically signing a fixed message (if possible with this key type), for a set of known test keys.
See the wishlist for planned features of subsequent releases.

[DERIVEPASSPHRASE]: https://the13thletter.info/derivepassphrase/

-----

## Installation

`fakesshagent` is a pure Python package, and may be easily installed with any `pip`-compatible Python package manager such as `pip`, `pipx`, or `uv`.

```console
pip install fakesshagent
```

`fakesshagent` requires Python 3.9 or higher as well as the [typing-extensions package][TYPING_EXTENSIONS] and the [`derivepassphrase-sshagentsocketprovider` package][SASP] for its core functionality and programmatic interface.

[TYPING_EXTENSIONS]: https://pypi.org/project/typing-extensions/
[SASP]: https://pypi.org/project/derivepassphrase-sshagentsocketprovider/

## License

`fakesshagent` is distributed under the terms of the [zlib/libpng](https://spdx.org/licenses/Zlib.html) license.
