Download Latest Version age-v1.2.1-darwin-amd64.tar.gz (5.0 MB)
Email in envelope

Get an email when there's a new version of age

Home / v1.2.0
Name Modified Size InfoDownloads / Week
Parent folder
age-v1.2.0-linux-arm64.tar.gz.proof 2024-08-21 1.5 kB
age-v1.2.0-windows-amd64.zip.proof 2024-08-21 1.6 kB
age-v1.2.0-linux-amd64.tar.gz.proof 2024-08-21 1.8 kB
age-v1.2.0-linux-arm.tar.gz.proof 2024-08-21 1.9 kB
age-v1.2.0-darwin-arm64.tar.gz.proof 2024-08-21 1.7 kB
age-v1.2.0-freebsd-amd64.tar.gz.proof 2024-08-21 1.8 kB
age-v1.2.0-darwin-amd64.tar.gz.proof 2024-08-21 1.8 kB
age-v1.2.0-linux-arm64.tar.gz 2024-06-16 4.6 MB
age-v1.2.0-linux-arm.tar.gz 2024-06-16 4.6 MB
age-v1.2.0-windows-amd64.zip 2024-06-16 5.2 MB
age-v1.2.0-darwin-amd64.tar.gz 2024-06-16 4.7 MB
age-v1.2.0-darwin-arm64.tar.gz 2024-06-16 4.5 MB
age-v1.2.0-freebsd-amd64.tar.gz 2024-06-16 4.8 MB
age-v1.2.0-linux-amd64.tar.gz 2024-06-16 4.9 MB
age v1.2.0 source code.tar.gz 2024-06-16 206.7 kB
age v1.2.0 source code.zip 2024-06-16 236.0 kB
README.md 2024-06-16 1.5 kB
Totals: 17 Items   33.7 MB 0

A small release to build the release binaries with a more recent Go toolchain, and to fix a couple CLI edge cases (https://github.com/FiloSottile/age/issues/491, https://github.com/FiloSottile/age/issues/555).

The Go module now exposes a plugin package that provides an age plugin client. That is, Recipient and Identity implementations that invoke a plugin binary, allowing the use of age plugins in Go programs.

Finally, Recipients can now return a set of "labels" by implementing RecipientWithLabels. This allows replicating the special behavior of the scrypt Recipient in third-party Recipients, or applying policy useful for authenticated or post-quantum Recipients.

// RecipientWithLabels can be optionally implemented by a Recipient, in which
// case Encrypt will use WrapWithLabels instead of Wrap.
//
// Encrypt will succeed only if the labels returned by all the recipients
// (assuming the empty set for those that don't implement RecipientWithLabels)
// are the same.
//
// This can be used to ensure a recipient is only used with other recipients
// with equivalent properties (for example by setting a "postquantum" label) or
// to ensure a recipient is always used alone (by returning a random label, for
// example to preserve its authentication properties).
type RecipientWithLabels interface {
    WrapWithLabels(fileKey []byte) (s []*Stanza, labels []string, err error)
}
Source: README.md, updated 2024-06-16