Update module filippo.io/age to v1.3.1#48
Open
red-hat-konflux[bot] wants to merge 1 commit intomasterfrom
Open
Update module filippo.io/age to v1.3.1#48red-hat-konflux[bot] wants to merge 1 commit intomasterfrom
red-hat-konflux[bot] wants to merge 1 commit intomasterfrom
Conversation
Author
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
24a60d4 to
e590386
Compare
fb15664 to
e590386
Compare
014e6f3 to
e590386
Compare
2bd2861 to
e590386
Compare
658ff55 to
e590386
Compare
da05ffc to
a435156
Compare
a435156 to
111075e
Compare
111075e to
6b39321
Compare
6b39321 to
e967b08
Compare
Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.0.0->v1.3.1Release Notes
FiloSottile/age (filippo.io/age)
v1.3.1Compare Source
v1.3.1 is a minor release to restore version injection from downstream package build processes.
See the v1.3.0 release notes for an overview of recent additions.
v1.3.0: age v1.3.0: post-quantum (and more)!Compare Source
Exactly six years after the first age beta release, v1.3.0 brings post-quantum resistance to age, along with a couple long-requested features, built-in support for recipients compatible with hardware plugins, I/O API improvements, and many usability enhancements.
Post-quantum recipients
age now has native post-quantum recipients based on HPKE with a hybrid ML-KEM-768 KEM. The recipients start with
age1pq1..., and the identities start withAGE-SECRET-KEY-PQ-1....To generate a post-quantum keypair:
If you have your own age implementation, C2SP has the specification, and CCTV has test vectors for the new hybrid recipient types.
(If you are using an older age client, an optional plugin is available that provides out-of-the-box support for encryption to hybrid recipients. Hybrid identities can be converted to work with the plugin with
age-plugin-pq -identity.)New I/O APIs
The new DecryptReaderAt API implements seeking decryption, which can be used with zip.NewReader.
The new EncryptReader API implements pull-based encryption by wrapping an io.Reader, as opposed to wrapping an io.Writer like Encrypt.
age-inspect
The new age-inspect(1) tool presents the metadata of an age file without decrypting it.
Built-in recipients compatible with hardware plugins
age(1) now supports encrypting to
age1tag1...andage1tagpq1...recipients, which are compatible with hardware plugins. The latest or upcoming versions of age-plugin-yubikey, age-plugin-tpm, and age-plugin-se will support producing these recipients for existing and new keys, and decrypting files encrypted to them.The filippo.io/age/tag package provides an implementation, including a Recipient.Tag method useful to plugin implementations.
C2SP has the specification for these recipient types.
(For users that are using older age clients, there are compatiblity plugins that can be shipped along with the hardware plugins.)
Non-interactive passphrase input
We have long resisted implementing non-interactive CLI passphrase input, because most use cases are more securely and/or efficiently served by native keys or passphrase-encrypted identities. However, there are some residual use cases.
This is now available through the batchpass plugin, but we invite everyone to read the warning in the man page and help text.
Go framework for implementing plugins
The filippo.io/age/plugin package now provides a framework for exposing age.Recipient and age.Identity implementations as standalone CLI plugins.
For example, this is the entire age-plugin-tagpq compatibility implementation:
Moreover, the new plugin.NewTerminalUI function provides a ready-to-use terminal-based ClientUI implementation for the existing plugin client API.
Armor fixes
The CLI now allows some leading whitespace before the armor header, as the API always did. The API and CLI now reject empty lines in armored data, as required by the spec.
Detached headers
The new set of APIs ExtractHeader, DecryptHeader, and NewInjectedFileKeyIdentity allow working with detached age headers, where the file key is unwrapped separately from the actual file decryption. This can be useful for efficiency or to delegate unwrapping without exposing the file contents.
Usability improvements
The CLI will now refuse to output decrypted binary data to the terminal. (We did this before attending the gpg.fail talk!)
Native identities are now tried first when decrypting through both the CLI and the API, since they can't require interaction. Order is otherwise preserved.
NoIdentityMatchError now exposes the stanza types of the header, unwraps to the errors returned by the Identity.Unwrap method calls, and prints the underlying error if only one identity was provided.
Virtual terminal processing is now enabled on Windows terminals that don't enable it by default, so that ANSI escape sequences work as expected.
Many improved and more proactively helpful error messages.
The release artifacts now include a source tarball with vendored dependencies.
v1.2.1: age v1.2.1: security fixCompare Source
This release fixes a security vulnerability that could allow an attacker to execute an arbitrary binary under certain conditions.
See GHSA-32gq-x56h-299c.
Plugin names may now only contain alphanumeric characters or the four special characters
+-._.Thanks to ⬡-49016 for reporting this issue.
v1.2.0: age v1.2.0Compare Source
A small release to build the release binaries with a more recent Go toolchain, and to fix a couple CLI edge cases (#491, #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.
v1.1.1: age v1.1.1Compare Source
age v1.1.1 is a patch release to fix
go install filippo.io/age/...@​latest.See the release notes for v1.1.0 for changes since v1.0.0.
v1.1.0: age v1.1.0: plugin and YubiKeys supportCompare Source
age is a simple, modern and secure file encryption tool, format, and Go library. It features small explicit keys, no config options, and UNIX-style composability. Learn more by reading the README, the age(1) man page, the Go API reference, the format specification, or the full release changelog. Watch the repository or follow @filippo@abyssdomain.expert to be notified of new releases.
🛠️ FYI, age now has an extensive test suite which all age implementations are encouraged to adopt.
Plugin support
The age CLI now supports plugins, such as age-plugin-yubikey by @str4d. To try it on macOS with Homebrew:
Plugins must be loaded explicitly by using their respective recipient or identity, and are not tied to a specific header stanza type. This means plugins can be used not only to support new recipient types such as PIV tokens (i.e. YubiKeys) or cloud KMS solutions, but also to produce passphrase-encrypted files that can be decrypted without plugins, to store age native private keys on secure elements, or even for agent functionality or to proxy decryption operations to remote machines.
Plugins operate over a simple textual stdin/stdout protocol (C2SP/C2SP#5). Developers are encouraged to reach out with plugin ideas and announcements. Read more in the relevant man page section.
Breaking changes
If
-iis used, passphrase-encrypted files are now rejected. Previously, a passphrase-encrypted file was auto-detected and the identity file was ignored. This could lead to unexpected behavior, such as a script blocking for user interaction, based on potentially untrusted input files. Now,age -dmust be invoked without-iarguments to decrypt passphrase-encrypted files. A helpful error is printed otherwise. This should not break any automated system as passphrase decryption was always interactive.Empty final chunks are now rejected. If a payload was a multiple of 64KiB long, there were two valid encryptions for it: with a "full" last chunk encrypting 64KiB, or with an additional "empty" chunk encrypting 0 bytes. age, rage, and all other known implementations only ever produced the former. (Note that age will forever decrypt files it generated.) The latter is now rejected. The specification has been updated (C2SP/C2SP#13) and test cases are included in the test suite.
Minor changes
PKCS#8-encoded
Ed25519private keys (such as 1Password exports) are now supported as SSH identities.If an armored file is pasted into the terminal, age will now attempt to wait until the end of the file before prompting for a password.
Some invalid files are now correctly rejected, in particular encrypted files with trailing data. (Yay for the test suite!)
If
/dev/ttyis present but can't be opened, age will now fallback to trying to treat stdin as a terminal as if/dev/ttywasn't present. (Thanks @brandsimon!)Input prompts now go to the terminal, even if standard error is redirected.
Values of the new
armor.Errortype are now returned wrapped in decryption errors when appropriate.Windows binary releases are now signed. (Thanks @technion!)
Documentation and error messages were improved.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
To execute skipped test pipelines write comment
/ok-to-test.Documentation
Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.