Commit Graph

295 Commits

Author SHA1 Message Date
Filippo Valsorda
331b242a9c cmd/age: add scrypt testscript 2022-07-03 12:48:48 +02:00
Filippo Valsorda
c50f1ae2e1 cmd/age: replace tests with testscript 2022-06-21 12:41:38 +01:00
Filippo Valsorda
8023f06ce2 all: build tag tests that require Go 1.18 2022-06-20 22:33:31 +01:00
Filippo Valsorda
4f7bb44386 internal/format: add malleability fuzz test 2022-06-20 01:18:48 +01:00
Filippo Valsorda
3f56ac13fb internal/stream: reject trailing data (no EOF) after end of stream 2022-06-19 23:11:14 +02:00
Filippo Valsorda
2e090545df age: reject leading zeroes and sign in scrypt work factor 2022-06-19 17:52:30 +02:00
Filippo Valsorda
2088adf268 tests: add expected no match and minor additions 2022-06-19 00:11:23 +02:00
Filippo Valsorda
eaa4e03cfe tests: finish parsing and X25519 tests, distinguish HMAC errors
If the implementation re-encodes the header before checking the HMAC,
that would mask malleability issues: the HMAC check would fail because
the tests HMAC'd the original header, but an attacker could also produce
the right HMAC. Instead of duplicating every parsing tests (with the
original and re-encoded HMAC), we make the test framework distinguish
HMAC errors, which ensures bad encodings are recognized as such and not
bypassable HMAC errors.
2022-06-18 13:47:00 +02:00
Filippo Valsorda
f8a121dd87 tests: add more tests for hmac and X25519 encodings 2022-06-16 15:55:29 +02:00
Filippo Valsorda
bb4493a7cd tests: add X25519 low order point tests 2022-06-16 11:47:27 +02:00
Filippo Valsorda
92713afd1e tests: add scrypt tests and move Go files from testdata 2022-06-15 20:38:59 +02:00
Filippo Valsorda
787044bdb6 testdata: convert last chunk tests to testkit 2022-06-15 19:38:18 +02:00
Filippo Valsorda
a787511e01 testdata: add a few more testkit vectors 2022-06-15 18:54:09 +02:00
Filippo Valsorda
e49b1f9afe internal/testkit: new test framework 2022-06-15 18:53:07 +02:00
GitHub Actions
78bedc2873 doc: regenerate groff and html man pages v1.1.0-rc.1 2022-06-11 15:09:45 +00:00
GitHub Actions
f4112110f1 doc: regenerate groff and html man pages 2022-05-24 13:59:08 +00:00
Filippo Valsorda
acb1170bbc doc: clarify -e -i docs
Fixes #339
2022-05-24 15:57:42 +02:00
Filippo Valsorda
56f6acca37 cmd/age: reject passphrase-encrypted files if -i is used
Passphrase-encrypted files make age(1) block, which would be unexpected
when decrypting files in a script using -i.
2022-05-24 15:57:42 +02:00
Filippo Valsorda
5824a13b57 cmd/age,internal/plugin: print a message if waiting on a plugin for too long 2022-05-24 15:57:42 +02:00
Filippo Valsorda
c0e80ef2c9 cmd/age: improve confirm dialog
Don't require enter after the selection number, print errors as
warnings, and retry if an unexpected selection is made.
2022-05-24 15:56:22 +02:00
Filippo Valsorda
eeb9a079da cmd/age: add -j option for data-less plugins
See str4d/rage#237 and str4d/rage#236
2022-05-24 15:56:22 +02:00
Filippo Valsorda
fbe51d501c doc: document plugins in age(1) 2022-05-24 15:56:22 +02:00
Filippo Valsorda
87a982b72e internal/plugin: refactor plugin handling code 2022-05-24 15:56:22 +02:00
Filippo Valsorda
5a0da177e9 internal/plugin,cmd/age: implement confirm protocol verb 2022-05-24 15:56:22 +02:00
Filippo Valsorda
349ed5ed3f cmd/age: clean up the terminal UI 2022-05-24 15:56:22 +02:00
Filippo Valsorda
384d0393e0 internal/plugin,cmd/age: add support for encrypting to plugin identities 2022-05-24 15:56:22 +02:00
Filippo Valsorda
7bad9c2ad8 internal/plugin: update to latest plugin spec
The main change is that phase 2 of the wrapping state machine is
interactive to accommodate symmetric plugins.
2022-05-24 15:56:22 +02:00
Filippo Valsorda
01b56b117c internal/plugin: complete experimental plugin support 2022-05-24 15:56:22 +02:00
Filippo Valsorda
f6a5b94705 internal/plugin,cmd/age: implement preliminary plugin client support 2022-05-24 15:56:22 +02:00
GitHub Actions
cff70cffe2 doc: regenerate groff and html man pages 2022-05-24 13:51:06 +00:00
Filippo Valsorda
73416d1ac5 .github/workflows: fix generation of groff man pages 2022-05-24 15:49:39 +02:00
Filippo Valsorda
30d8e65e03 internal/stream: disallow empty final chunks
A non-empty payload of length a multiple of the chunk size can be
encrypted in two ways: with the last chunk full, or with an extra empty
last chunk. This is mostly an oversight in the original spec.

Both age and rage generate full last chunks, so we should be still in
time to pick one of the two, and avoid the underspecification. It's not
the one I would have picked originally, maybe, because disallowing full
last chunks would have avoided the trial decryption, but oh well.
2022-05-24 15:47:13 +02:00
Filippo Valsorda
765400f0c1 internal/format: factor out a StanzaReader for use in the plugin protocol 2022-05-22 11:54:38 +02:00
hakerdefo
cb539f931c README: add openSUSE Tumbleweed and sort installation table entries (#421)
Adding the installation instructions for openSUSE Tumbleweed and sorting the table entries in alphabetical order.
2022-05-20 07:14:08 -04:00
Filippo Valsorda
d6c77e0838 README: update badges 2022-05-09 06:03:01 -04:00
Simon Brand
ac31f5c935 cmd/age: fallback to stdin if /dev/tty cannot be opened (#414) 2022-05-04 06:44:48 -04:00
Filippo Valsorda
e8771b6d8a README: specify minimum Alpine repo version 2022-04-28 18:40:52 -04:00
Tionis
d8fa2fb0de README: add Alpine package to installation section (#412) 2022-04-28 18:39:25 -04:00
Filippo Valsorda
3e1aa11e9d .github: add CONTRIBUTING.md 2022-04-27 18:19:34 -04:00
Richard Ulmer
f7fcbef542 internal/stream: remove unused variable from testRoundTrip (#396) 2022-04-27 07:31:48 -04:00
Filippo Valsorda
299ec50c32 cmd/age: improve error message for out-of-order flags
Fixes #160
Closes #345

Co-authored-by: puenka <puenka@users.noreply.github.com>
2022-04-26 21:15:26 +02:00
Filippo Valsorda
2e20ca5fa7 .github/workflows: fix FreeBSD tests (#410) 2022-04-26 14:29:40 -04:00
Helio Machado
d717942b93 internal/format: improve error message for old header format (#398) 2022-04-26 13:30:35 -04:00
Brendan Fattig
3b4fb67296 README: change Go download link from golang.org to go.dev (#403) 2022-04-08 16:53:12 -04:00
Dimitris Apostolou
f01e37b4d7 doc: fix typo in age(1) (#395) 2022-02-24 04:37:53 -05:00
Filippo Valsorda
3411802309 cmd/age: offer a hint when the file was corrupted by PowerShell
I would still like to find a way to offer a warning while doing the
encryption, rather than at decryption time, but better than nothing.

Updates #290
2022-01-07 12:26:02 +01:00
Arnau Díaz
4169274d04 cmd/age-keygen: actually exit on errorf (#383)
Co-authored-by: Arnau Diaz <arnau.diaz@adevinta.com>
2022-01-04 13:39:38 -05:00
Filippo Valsorda
e4ae4cf884 age: fix typo in package docs 2022-01-01 08:02:58 -05:00
Kot
ab3707c085 README: add Scoop package (#378) 2021-12-18 12:25:55 -05:00
Eng Zer Jun
7665b87dc2 all: move from io/ioutil to io and os packages (#353)
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-12-18 12:06:22 -05:00