Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

age: tighten STREAM last chunk #13

Merged
merged 1 commit into from Jun 30, 2022
Merged

Conversation

FiloSottile
Copy link
Contributor

Previously, a 64 KiB payload could be encrypted as one or two chunks.
All known implementations do the former. Remove the complexity and
ambiguity by requiring that.

Previously, a 64 KiB payload could be encrypted as one or two chunks.
All known implementations do the former. Remove the complexity and
ambiguity by requiring that.
@FiloSottile FiloSottile requested a review from str4d May 26, 2022 14:50
@FiloSottile FiloSottile merged commit 9858272 into main Jun 30, 2022
@FiloSottile FiloSottile deleted the filippo/age/tightstream branch June 30, 2022 13:50
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 18, 2023
ChangeLog:

age v1.1.1
  age v1.1.1 is a patch release to fix go install filippo.io/age/...@latest.

age v1.1.0
  Breaking changes
    If -i is 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 -d must be invoked without -i arguments 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 Ed25519 private 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/tty is present but can't be opened, age will now fallback to trying
    to treat stdin as a terminal as if /dev/tty wasn't present.
    (Thanks @brandsimon!)

    Input prompts now go to the terminal, even if standard error is redirected.

    Values of the new armor.Error type are now returned wrapped in decryption
    errors when appropriate.

    Windows binary releases are now signed. (Thanks @technion!)

    Documentation and error messages were improved.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants