From 3ea37865cb5a9c403e8d2b0ac095c587f9bac49d Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Mon, 23 Feb 2026 16:33:57 -0500 Subject: [PATCH] Add landing install copy UX and document remaining security/test TODOs --- TODO.md | 48 +++++++++++++++++++++ landing/index.html | 12 +++++- landing/script.js | 29 +++++++++++++ landing/style.css | 71 +++++++++++++++++++++++++++++++- src/seedpass/api.py | 7 +++- src/tests/test_api.py | 15 +++++++ src/tests/test_api_rate_limit.py | 3 ++ 7 files changed, 181 insertions(+), 4 deletions(-) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..fbba9358 --- /dev/null +++ b/TODO.md @@ -0,0 +1,48 @@ +# SeedPass TODO + +This file tracks the remaining work from the latest bug search and security evaluation. + +## Security + +- [ ] Upgrade vulnerable runtime dependencies in lockfiles and packaging inputs: + - `aiohttp` -> `>=3.13.3` + - `cryptography` -> `>=46.0.5` + - `starlette` -> `>=0.49.1` + - `python-multipart` -> `>=0.0.22` + - `urllib3` -> `>=2.6.3` + - `pynacl` -> `>=1.6.2` + - `pillow` -> `>=12.1.1` + - `orjson`, `pyasn1`, `cbor2` and other `pip-audit` findings +- [ ] Regenerate `requirements.lock` after upgrades and re-run the full test suite. +- [ ] Re-run `pip-audit -r requirements.lock` and ensure zero actionable runtime vulnerabilities. +- [ ] Evaluate the `Crypto.*` imports in `src/seedpass/core/password_generation.py` and either: + - keep `pycryptodome` intentionally with explicit documentation, or + - migrate RSA generation to `cryptography` APIs. + +## Robustness + +- [ ] Replace broad `except Exception: pass` blocks with explicit exceptions + logging: + - `src/main.py` + - `src/seedpass/core/manager.py` + - `src/seedpass/core/menu_handler.py` +- [ ] Add telemetry-safe logs for swallowed error paths without exposing secrets. + +## Tests To Add + +- [ ] Add deterministic tests for `derive_pgp_key(..., key_type="rsa")` covering: + - stable output across repeated runs + - key fingerprint format and validity +- [ ] Add API rate-limit tests for: + - per-client isolation + - window expiry behavior + - restart/reset behavior after `start_server()` +- [ ] Add API import tests for boundary conditions: + - exactly-at-limit upload size + - malformed multipart payload + - invalid JSON body for path-based import +- [ ] Add regression tests for manager notification/logging fallback paths currently guarded by broad exception handling. + +## Documentation + +- [ ] Document API import upload limit (`SEEDPASS_MAX_IMPORT_BYTES`) in user docs. +- [ ] Add a security maintenance section describing dependency-audit cadence and update policy. diff --git a/landing/index.html b/landing/index.html index c96bbb1f..d558c130 100644 --- a/landing/index.html +++ b/landing/index.html @@ -76,6 +76,16 @@ flowchart TB classDef default fill:#ffffff,stroke:#e94a39,stroke-width:2px,color:#283c4f; Get Started +
Install SeedPass (stable)
+bash -c "$(curl -sSL https://raw.githubusercontent.com/PR0M3TH3AN/SeedPass/main/scripts/install.sh)"+ +