Skip to content
Encryption and keys

Encryption and keys

Paw uses age to encrypt vault data.

Vault key

When Paw creates a vault, it generates an age X25519 identity. Paw uses the matching recipient to encrypt the vault index and item files.

The private identity is protected with age’s scrypt-based password encryption and stored as key.age. Unlocking the vault gives Paw access to the identity needed to decrypt its data.

The password protects the private identity; it is not a single shared password used directly to encrypt every item.

Encrypted and unencrypted data

The vault index (vault.age) and individual item files are encrypted. The vault name, icon, and color are stored separately in unencrypted metadata.json to support listing locked vaults.

Changing the master password

When you change the master password of a vault, Paw re-encrypts the existing age private identity (key.age) with the new password. It does not regenerate the vault’s underlying X25519 key. Because the key remains unchanged, Paw does not need to re-encrypt stored items and attachments.

Scope

Encryption protects stored data at rest from unauthorized access. It does not protect against a compromised operating system while Paw is running and unlocked. See Threat model.