Encryption
bae encrypts your music files and library metadata before they leave your machine. The storage provider sees ciphertext only.
Library key
Section titled “Library key”Each library has a 256-bit master encryption key, generated when the library is created and stored in your OS keyring (macOS Keychain, Windows Credential Manager, or Linux Secret Service). The key never touches disk in plaintext.
File encryption
Section titled “File encryption”Files are encrypted with XChaCha20-Poly1305 in 64 KB chunks. Each file gets a random nonce prepended to the encrypted blob. This means:
- Identical files produce different ciphertext (random nonce)
- Files can be decrypted independently (no dependency between files)
- Chunk-based encryption supports efficient range requests for streaming
Cloud home encryption
Section titled “Cloud home encryption”Everything in the cloud home is encrypted:
- Changesets — encrypted with the library key
- Snapshots — encrypted with the library key
- Images — encrypted with the library key
- Membership entries — encrypted with the library key
- Wrapped keys — encrypted to individual members via sealed boxes (see Collaborate)
Head files (per-device sequence numbers) are also encrypted. The storage provider sees only opaque blobs and key paths.
Key management
Section titled “Key management”Your library key is stored in the OS keyring under a library-specific namespace. If you use bae on multiple devices, the key is distributed via the membership system — encrypted to your personal public key using a sealed box, so only your devices can unwrap it.
If you lose access to all devices and don’t have a backup of your keyring, the library data in the bucket is unrecoverable. This is by design — there is no server-side recovery mechanism.