Filippo Valsorda
482cf6fc9b
plugin: restrict characters in plugin names
...
Thanks to ⬡-49016 for reporting this issue.
Fixes GHSA-32gq-x56h-299c
2024-12-18 16:01:18 +01:00
Alexander Yastrebov
cda3988cc7
all: fix staticcheck warnings ( #589 )
...
Co-authored-by: Filippo Valsorda <github@bip.filippo.io >
2024-12-18 15:55:57 +01:00
Filippo Valsorda
bd0511b415
cmd/age: detect output/input file reuse when possible
...
Fixes #491
2024-06-16 14:40:13 +02:00
Filippo Valsorda
febaaded87
cmd/age: create file for empty decryptions
...
Fixes #555
Updates #159
Updates #57
2024-06-16 13:55:32 +02:00
Filippo Valsorda
93055632ad
cmd/age: fix FreeBSD tests
2023-08-06 19:39:31 +02:00
Filippo Valsorda
9fd564d543
.github/workflows: update and fix CI
2023-08-06 18:29:16 +02:00
Filippo Valsorda
c89f0b932e
age,plugin: add RecipientWithLabels
2023-08-05 21:34:47 +02:00
Filippo Valsorda
dd733c5c0f
cmd/age: grease the client-controlled plugin phases
2023-08-05 21:34:14 +02:00
Filippo Valsorda
6976c5fca5
plugin: expose package
2023-08-05 21:34:14 +02:00
Filippo Valsorda
8e3f74c283
cmd/age: deflake TestScript and update testscript
2023-01-02 13:34:35 +01:00
Filippo Valsorda
5471e05672
Revert "all: temporarily disable testscript tests"
...
This reverts commit 90a446549a .
2022-12-29 21:53:31 +01:00
Filippo Valsorda
c6dcfa1efc
all: temporarily disable testscript tests
...
They require a replace directive that breaks "go install". Will revert
this after tagging a new latest release.
2022-12-26 15:36:58 -05:00
Filippo Valsorda
7354aa0d08
internal/bech32: remove data length limit
...
Fixes #453
2022-12-23 12:28:06 +01:00
Filippo Valsorda
36ae5671cf
cmd/age: buffer armored ciphertext before prompting
...
A partial solution, still missing bracketed paste support.
Updates #364
2022-07-12 22:30:19 +02:00
Filippo Valsorda
8a02f4801f
cmd/age: improve terminal-related testscripts
2022-07-12 22:26:51 +02:00
Filippo Valsorda
e41463e117
cmd/age: fix autogenerated password log line
...
The newline was dropped in 0ab5c73 .
2022-07-12 22:26:51 +02:00
Filippo Valsorda
0ab5c738fb
cmd/age: ensure TUI output goes all to the terminal
2022-07-03 12:48:48 +02:00
Filippo Valsorda
de7c1fb565
agessh: support PKCS#8-encoded Ed25519 private keys
...
OpenSSH never generated them (unencrypted, and golang.org/x/crypto/ssh
doesn't support encrypted PKCS#8 for now, so the encrypted_keys.go
change is technically superfluous) but there are other systems that
produce them (for example, 1Password). Unfortunately, ParseRawPrivateKey
returns a value type for PKCS#8 and a pointer type for the OpenSSH
format (golang/go#51974), so we need to handle both.
Fixes #429
2022-07-03 12:48:48 +02:00
Filippo Valsorda
92fb4d508c
agessh: properly detect public key mismatch for encrypted keys
2022-07-03 12:48:48 +02:00
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
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
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
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
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
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
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
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
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
Filippo Valsorda
dfa2052cb7
all: move copyright owners to AUTHORS file
2021-11-24 11:29:15 +01:00
Filippo Valsorda
9d4b2ae7ac
age: move the scrypt lone recipient check out of Decrypt
...
The important one is the decryption side one, because when a user types
a password they expect it to both decrypt and authenticate the file.
Moved that one out of Decrypt and into ScryptIdentity, now that
Identities get all the stanzas. special_cases--
This also opens the door to other Identity implementations that do allow
multiple scrypt recipients, if someone really wants that. The CLI will
never allow it, but an explicit choice by an API consumer feels like
something we shouldn't interfere with.
Moreover, this also allows alternative Identity implementations that use
different recipient types to replicate the behavior if they have the
same authentication semantics.
The encryption side one is only a courtesy, to stop API users from
making files that won't decrypt. Unfortunately, that one needs to stay
as a special case in Encrypt, as the Recipient can't see around itself.
However, changed it to a type assertion, so custom recipients can
generate multiple scrypt recipient stanzas, if they really want.
2021-06-15 14:00:10 +02:00
Filippo Valsorda
0703f86521
cmd/age,cmd/age-keygen: normalize errors, warnings, and hints
2021-06-14 13:24:26 +02:00
Filippo Valsorda
fb97277f8d
cmd/age: add support for encrypted identity files
...
Updates #252
Closes #132
2021-06-14 13:24:26 +02:00
Filippo Valsorda
fa5b575ceb
cmd/age: use CONIN$/CONOUT$ on Windows for password prompts
...
Fixes #128
Closes #274
Co-authored-by: codesoap <codesoap@mailbox.org >
2021-06-02 11:04:02 +02:00
Filippo Valsorda
e58a8859b9
doc: add age(1) and age-keygen(1) man pages
...
Closes #131
2021-05-25 20:36:23 +02:00
Ryan Castellucci
759a88d3e8
cmd/age-keygen: don't warn about world-readable output for public keys ( #268 )
...
Fixes #267
2021-05-18 20:35:29 -04:00
Filippo Valsorda
7a335c9d5d
cmd/age: allow reading both passphrase and input from a terminal
...
Fixes #196
Closes #258
2021-04-23 02:06:50 -04:00
Filippo Valsorda
ff1b4ffb08
cmd/age,cmd/age-keygen: check Close() error on output files
...
Fixes #81
2021-04-23 00:11:12 -04:00
Richard Ulmer
bad2c0d2e0
cmd/age: use golang.org/x/term instead of deprecated package ( #205 )
2021-04-05 09:22:51 -04:00