soft-webauthn
Python webauthn software authenticator
What it is and what it does
soft-webauthn provides a SoftWebauthnDevice class that mimics a WebAuthn authenticator for testing passwordless authentication flows in web applications. It exports navigator-like methods (create, get) and credential initialization helpers so developers can write integration tests without physical security keys or live browser automation.
The package is designed to sit within a test suite alongside application-specific code that handles credential exchange between the test client and the web application under test. It depends on cryptography and fido2 for the underlying cryptographic operations and FIDO2 protocol implementation.
Use it for:
- Write unit tests for WebAuthn registration and authentication flows in web applications during CI/CD
- Emulate authenticator behavior in integration tests without requiring hardware tokens
- Test passwordless login flows in development without setting up a full browser environment
- Validate credential creation and assertion handling in custom WebAuthn relying party implementations
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Emulates a WebAuthn authenticator in Python for testing web applications that use passwordless authentication, without requiring physical security keys.
Yes, if you are actively testing WebAuthn flows and can tolerate an abandoned package. The low install friction and permissive license make it straightforward to adopt, but verify that it works with your current dependency versions and WebAuthn spec version before relying on it in production CI—no updates are forthcoming.
Install
soft-webauthn on PyPI
pip
pip install soft-webauthnuv
uv add soft-webauthnpoetry
poetry add soft-webauthnInstalling soft-webauthn
Before you install
Low install friction with only two runtime dependencies (cryptography and fido2). However, the project is abandoned—last release was 2022-07-08 and last commit 2023-06-09—so expect no maintenance or security updates.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it safe to incorporate into test suites.
Quickstart
pip install soft-webauthn
from soft_webauthn import SoftWebauthnDevice
device = SoftWebauthnDevice()
device.cred_init(rp_id='example.com', user_handle=b'user')
attestation = device.cred_as_attested()
Verify before relying
- Whether the package works with current versions of cryptography and fido2 dependencies, given its abandoned status since mid-2023
- Compatibility with modern WebAuthn specifications and browser implementations
- Whether it handles all WebAuthn credential types and algorithms in current use
Package facts
| License | not declared (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — cryptography, fido2 |
| Maintenance | abandoned — 1,498 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 143,699/month — #11,170 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: soft_webauthn-0.1.4-py3-none-any.whl
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
fido2Implements FIDO2 and WebAuthn protocols for…
unclear · top 5,000 on PyPI
webauthnImplements server-side WebAuthn validation for…
permissive · top 5,000 on PyPI
django-otp-webauthnAdds WebAuthn Passkey support to Django OTP,…
permissive · top 15,000 on PyPI
PyOTPPyOTP generates and verifies one-time passwords…
permissive · top 1,000 on PyPI
pyu2fpyu2f provides U2F (Universal 2nd Factor)…
permissive · top 15,000 on PyPI
django-magiclinkAdds passwordless email-based authentication to…
permissive · top 15,000 on PyPI
djoserProvides Django REST Framework views for user…
permissive · top 15,000 on PyPI
oauthenticatorOAuthenticator provides OAuth2 login handlers…
permissive · top 15,000 on PyPI
supertokens-pythonInterfaces a Python API with the SuperTokens…
permissive · top 15,000 on PyPI
Flask-SecurityFlask-Security adds authentication,…
permissive · top 15,000 on PyPI