Escalibur
Seals a 24 word BIP-39 seed phrase behind one password. The app never writes the phrase in the clear, only the encrypted envelope. No network, no iCloud, no analytics, no third party in the build.
- Argon2id
- Memory hard derivation, tuned so offline brute force costs real money
- Passphrase only
- The envelope opens on any device, with nothing but the password
- Indistinguishable
- Without the password the envelope is computationally noise
| Off | Len | Field | Value |
|---|---|---|---|
| 0 | 4 | magic | "EXCL" |
| 4 | 1 | version | 0x01 |
| 5 | 1 | kdf_id | argon2id |
| 6 | 1 | aead_id | xchacha20-poly1305 |
| 7 | 4 | argon_mem_kib | uint32 |
| 11 | 4 | argon_iters | uint32 |
| 16 | 16 | salt | random |
| 32 | 24 | nonce | random |
| 58 | N | ciphertext | padded to 128 |
| 58+N | 16 | tag | poly1305 |
Bytes 0 to 57 are authenticated as associated data, so an attacker cannot downgrade the work factor. The ciphertext is padded to a fixed block, so a 12 word phrase and a 24 word phrase are the same size on disk.
