# 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.