Skip to content
ecdsa.com

age (file encryption)

A small, modern file encryption tool and format (age-encryption.org/v1) by Filippo Valsorda that encrypts to X25519, SSH or post-quantum hybrid recipients or to a passphrase, with no signatures and no configuration.
Also written asageage-encryptionrageage-keygenage1pq

An age file has a text header with one stanza per recipient (X25519, scrypt, ssh-ed25519, ssh-rsa, plugin types and, since age 1.3, mlkem768x25519 for hybrid post-quantum recipients) that each wrap the same file key, then a header MAC (HMAC-SHA-256) and the payload encrypted with ChaCha20-Poly1305 in 64 KiB chunks. Keys are one-line strings: age1… recipients and AGE-SECRET-KEY-1… identities; post-quantum recipients age1pq1… are 1,959 characters.

age deliberately omits signatures, key servers, web of trust and algorithm choices; pair it with ssh-keygen -Y or minisign when authenticity matters, since anyone with a recipient's public key can encrypt to it. Implementations include the reference Go tool, rage (Rust) and typage (TypeScript); SOPS and several secret-management tools use it. Measured with age 1.3.2: encrypting five bytes to one post-quantum recipient produces a 1,664-byte file. The age encryption tool runs locally in the browser.

Standards and references

All terms