This is the initial desktop for a zero-knowledge password manager. It creates a local SQLCipher-encrypted database and encrypts secret fields with AES-256-GCM using a locally derived vault key.
- Python + PyQt6 (desktop GUI)
- SQLCipher (encrypted SQLite)
argon2-cffifor Argon2idcryptographyfor AES-256-GCM + HKDFpyotpfor TOTPqrcode+Pillowfor MFA QR codes
- Master password is never stored.
- Argon2id params are fixed to m=47104, t=1, p=1.
argon2-cffiuses KiB formemory_cost, so 47104 == ~46 MiB.
- Vault data is encrypted client-side with AES-256-GCM.
- SQLCipher encrypts the database at rest. We set
kdf_iter = 1because we already derive a high-entropy key via Argon2id.
Try the packaged route first:
sudo apt-get update
sudo apt-get install -y sqlcipher libsqlcipher-devIf libsqlcipher-dev is not available in your repo, build from source and ensure headers + library are on your system include/lib paths before installing pysqlcipher3.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython -m app.mainThe vault files are stored in:
~/.local/share/SPManager/
app/
main.py
core/
constants.py
crypto.py
db.py
models.py
password_generator.py
rate_limit.py
storage.py
totp.py
vault.py
ui/
entry_dialog.py
login_window.py
main_window.py
utils.py
- Add sync server + encrypted blob storage
- Add PWA client