Commit Graph
413 Commits
Author SHA1 Message Date
Filippo Valsorda aaadae2d85 cmd/age-keygen,extra/age-plugin-pq: buffer identity conversion output
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 019df184df .github/workflows: include compatibility plugins in release archives 2026-08-29 19:30:10 +02:00
Filippo Valsorda e0ffaca260 agessh: don't cache mismatched encrypted identities
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 86c6cc24c0 internal/term: sanitize terminal prompts
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda fb6bef07c3 age: don't reorder caller identities
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 45445f91cf cmd/age-keygen: report output write failures
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 343dda9aa4 cmd/age: reject malformed supported SSH recipients
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 418c7ac33b age,cmd/age: reject oversized key files
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda c45ccfd215 age,internal/format: avoid echoing private keys in errors
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 366cc58ca8 internal/bech32: avoid panic on Unicode input
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 7a8f500567 cmd/age: delay output creation until payload authentication
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda dbe5773864 cmd/age: reject output aliases of input files
Reported by Joe Doyle of Trail of Bits.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 20f9e8574f agessh,tag/tagtest: handle recipient hint collisions
The four-byte SSH fingerprints (and tagged recipient tags) are hints to
avoid unnecessary password prompts or hardware interactions. Treat an
authenticated unwrap failure after a hint match as a false positive and
continue looking for a matching stanza.

Without this, a colliding recipient stanza that appears before the
valid stanza makes decryption fail even though the file is correctly
encrypted to the identity. Any password prompt or hardware interaction
has already happened by then.

Reported by Claude, Anthropic's AI assistant, and triaged by the
Anthropic security team in collaboration with Anthropic Research,
as ANT-2026-S9C25K8W.
2026-08-29 19:30:10 +02:00
Filippo Valsorda 27188e780b internal/format: limit header size and memory use
The application has no way to limit the header separately from the body,
so we have to enforce some sanity limits to prevent excessive memory use.

To relax the limits somewhat, make the parsing more efficient.

New limits are:

  * 2 MiB total header size (enough for > 1024 PQ recipients)
  * 1024 recipient stanzas
  * 128 arguments per stanza

Fixes #701
2026-08-29 19:30:10 +02:00
Filippo Valsorda c083f6045f internal/stream: detect trailing data returned alongside io.EOF
The trailing data check after a full-length final chunk ignored the
byte count, so a reader returning (1, io.EOF), as io.Reader permits,
would have its trailing data silently accepted, and a transient
(0, nil) return would be misreported as trailing data. io.ReadFull
handles both.
2026-08-29 14:31:26 +02:00
Filippo Valsorda 91bc452b9a internal/stream: reject negative and overflowing encrypted sizes 2026-08-29 14:26:05 +02:00
Filippo Valsorda 04f65ea9fc internal/stream: extract readFullAt and clean up tests 2026-08-29 14:24:43 +02:00
b155aff565 stream: fix NewDecryptReaderAt EOF handling (#708)
Co-authored-by: Arpit Gupta <arpitb.lgupta1@gmail.com>
2026-08-29 13:45:51 +02:00
Ziad YahyaandGitHub 2313f65737 README: add --version flag to usage section (#739) 2026-08-29 12:52:26 +02:00
Richard UlmerandGitHub d16b021305 README: add syntax highlighting to code blocks (#713) 2026-08-29 00:37:00 +02:00
GitHub Actions e65b40fc99 doc: regenerate groff and html man pages 2026-08-28 22:24:16 +00:00
Filippo Valsorda ac0ed948b4 .github/workflows: remove expired Windows code signing certificate
Closes #715
2026-08-29 00:22:02 +02:00
itsVentieandFilippo Valsorda 933c44d4d5 internal/inspect: handle reads after EOF in trackReader
trackReader.Read panicked if called again after a read returned io.EOF,
which can happen with readers that do not return EOF consistently, such
as a terminal after Ctrl-D. Latch the EOF instead, per the io.Reader
contract, so count stays consistent with the file size.

Fixes #719

Co-authored-by: Filippo Valsorda <hi@filippo.io>
2026-08-29 00:22:02 +02:00
Filippo Valsorda 6d29a923f3 .github/workflows: add windows/arm64 build
Fixes #733
2026-08-29 00:22:02 +02:00
Filippo Valsorda 3cfb3adc2a all: update dependencies and GitHub Actions
Closes #736
Fixes #731
2026-08-29 00:22:02 +02:00
Mohamed MoumniandGitHub 72586cd449 cmd/age: add --version to usage text (#694) 2026-08-29 00:20:37 +02:00
udf2457andGitHub 7c7978c12e ‎internal/stream: simplify a min() computation in tests (#727) 2026-08-28 23:28:31 +02:00
Filippo Valsorda a68b8e921b README: add dependencies badge 2026-08-28 23:06:33 +02:00
706dfc1e79 all: minor cleanups (#700)
Replace two hand-rolled slicesEqual helpers with slices.Equal from
the standard library, which is already imported in age.go.
(age.go:211-221, plugin/plugin.go:666-676)

Fix godoc link typo [Indentity] -> [Identity].
(plugin/plugin.go:3)

Fix comment typo "not MinPayload" -> "so MinPayload".
(internal/inspect/inspect.go:25)

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-20 22:12:32 +01:00
4c86929a84 internal/format: return correct byte count from writeWrapped (#698)
Co-authored-by: Claude <noreply@anthropic.com>
2026-03-20 22:02:09 +01:00
db09cd66d1 internal/inspect: fix tag stanza type names in post-quantum classifier (#695)
Co-authored-by: Claude <noreply@anthropic.com>
2026-03-20 21:49:27 +01:00
Filippo ValsordaandGitHub 4a3a4ef00a SIGSUM.md: extend release playbook 2026-02-02 17:31:01 +01:00
Filippo Valsorda 10561a774f .github/workflows: remove one-off darwin/amd64 backfill workflow
Updates #676
2026-01-21 18:56:39 +01:00
Filippo Valsorda c918a2c113 .github/workflows: add darwin/amd64 backfill workflow
Updates #676
2026-01-21 18:49:52 +01:00
Filippo Valsorda beb5dfa28c .github/workflows: add darwin/amd64 build target
Closes #676
2026-01-21 18:49:46 +01:00
Filippo Valsorda 0293aca1d7 SIGSUM.md: add release playbook
Updates #617
2025-12-31 16:19:37 +01:00
GitHub Actions e7601d8a67 doc: regenerate groff and html man pages 2025-12-31 11:05:09 +00:00
brettwhiteincandGitHub acfa73142b doc: fix post-quantum example in age-keygen manpage (#675) 2025-12-31 12:03:49 +01:00
Filippo Valsorda b8564adb6d .github/workflows: inject version into source release artifact
Updates #671
Updates golang/go#77020
v1.3.1
2025-12-28 13:00:23 +01:00
Filippo Valsorda e4c611f778 cmd,extra: restore the Version link-time variable
We don't need it in our builds, but it's useful for downstream packagers.

Fixes #671
Updates NixOS/nixpkgs#474666
Updates golang/go#77020
2025-12-28 12:49:37 +01:00
Filippo Valsorda 6a8065f2da SIGSUM.md: update policy for v1.3.0
Updates #617
v1.3.0
2025-12-27 15:59:06 +01:00
Filippo Valsorda 50a600eef5 .github/workflows: improve release reproducibility
Remove the go-version-file test target, because it will just use the
toolchain line. It's a bit unfortunate we lose coverage of a go.mod
version that's older than oldstable, but that should not happen and it'd
not be a supported Go version anyway.
2025-12-27 15:59:06 +01:00
Filippo Valsorda 13aab81842 .github/workflows: build and release source tarball
Fixes #401
2025-12-27 15:59:06 +01:00
Filippo ValsordaandHelio Machado 52338c20df .github/workflows: enable GitHub artifact attestation
Closes #621

Co-authored-by: Helio Machado <0x2b3bfa0+git@googlemail.com>
2025-12-27 10:28:25 +01:00
Filippo Valsorda b70af41215 cmd/age: don't output binary plaintext to terminal
Closes #626
2025-12-26 23:16:25 +01:00
Filippo Valsorda 420273952a internal/stream: fix DecryptReaderAt concurrency 2025-12-26 22:18:54 +01:00
Filippo Valsorda da2191789a age: add ExampleDecryptReaderAt with zip.NewReader 2025-12-26 21:42:24 +01:00
Filippo Valsorda 2ff5d341f6 age: add DecryptReaderAt 2025-12-26 20:30:27 +01:00
Filippo Valsorda abe371e157 all: run "go fix" 2025-12-25 20:48:28 +01:00
Filippo Valsorda ec92694aad age: add EncryptReader pull-based encryption API
Fixes #644
Fixes #654
Updates #638
2025-12-25 20:48:28 +01:00