secnull
systems nominal feed · live 23:01 UTC
8
audits
open cve
archivedispatchesdispatch 107
issue 107 · Apr 17, 2026
— dispatch · crypto audit

The quiet, correct answer to 'how do I encrypt this file?'

age has a small surface, honest documentation, and a scheme that has survived real-world use. Our only gripe is key-file ergonomics — an interface problem, not a cryptographic one.

↓ signed manifest
age-encryption/age B
age has a small surface, honest documentation, and a scheme that has survived real-world use. Our only gripe is key-file ergonomics — an interface problem, not a cryptographic one.
82 / 100·0 high·2 med·go
auth B
80/100
crypto A
92/100
supply A
90/100
docs B
78/100

§1 · Context

age solves one problem — file encryption — and does it with discipline. The format is stable, the reference implementation is small enough to fully read in a sitting, and the protocol is designed to resist the sort of bespoke extensibility that has destroyed OpenPGP's soul.

§2 · Findings

Two medium findings: (1) the CLI's passphrase prompt does not indicate when a passphrase is being re-prompted for an existing file (we can see operators mistakenly re-type the wrong passphrase); (2) the key-file format's whitespace handling is forgiving in ways that make hand-editing safe but copy-paste across chat clients treacherous.

Three low findings are stylistic doc issues.

§3 · Crypto review

The scheme — ChaCha20-Poly1305 + X25519 key agreement — is well-chosen. Constants are correct. Nothing surprising in the constant-time arithmetic review.

§4 · Bottom line

Use it. Don't invent your own file-encryption format. If you need a "recipient can read, nobody else" primitive, this is the one.