v0.1.0 — Secure Secret Management

wauth — Machine-Locked Encrypted Secrets

Store, rotate, and retrieve secrets encrypted with Fernet (AES-128-CBC). Secrets are tied to the machine they were created on, preventing accidental leakage across environments.

PyPI
Python
License
Tests
# Install
pip install wauth

# Use
from wauth import WAuth

auth = WAuth()
auth.set("API_KEY", "secret-value")
value = auth.get("API_KEY")

Secure Secret Management

Everything you need to store and manage secrets securely.

🔒

Fernet Encryption

AES-128-CBC with HMAC-SHA256 for authenticated encryption.

💻

Machine Locking

Secrets tied to machine ID — cannot decrypt on other machines.

💾

SQLite Storage

Persistent encrypted storage via wsqlite with Pydantic models.

🐳

Docker Secrets

Read secrets from /run/secrets when running in containers.

🔄

Key Rotation

Rotate encryption keys with automatic re-encryption.

TTL Support

Auto-expire secrets with time-to-live settings.

📦

Backup & Restore

Export/import encrypted vault snapshots.

Async Support

Full async API: async_set, async_get, async_delete.

Installation

PyPI (Recommended)

pip install wauth

From Source

git clone https://github.com/wisrovi/wauth
cd wauth
pip install -e .

Code Metrics

117
Tests
98%
Coverage
9.95
Pylint
0
Security Issues