Commit Graph

55 Commits

Author SHA1 Message Date
Ed Maste
1110c3b6e1 .cirrus.yml: enable Cirrus CI for FreeBSD CI (#58) 2019-12-31 00:23:34 +01:00
Joe Shaw
1223fbe6da HomebrewFormula: update to beta2 (#60) 2019-12-31 00:14:01 +01:00
Filippo Valsorda
b194267aaa README: add more usage examples 2019-12-30 02:24:38 +01:00
Filippo Valsorda
3807646596 internal/age: don't log binary data in tests
Fixes #32
2019-12-30 01:43:42 +01:00
Filippo Valsorda
dd887fdc87 cmd/age: confirm encryption passphrase
Fixes #39
2019-12-30 00:41:53 +01:00
Filippo Valsorda
0da94651f3 HomebrewFormula: drop GOPATH and set -trimpath 2019-12-30 00:26:55 +01:00
Filippo Valsorda
80c6b4edd9 cmd/age: offer to autogenerate a secure passphrase
As suggested by @tqbf: https://twitter.com/tqbf/status/1210715916381511680
2019-12-30 00:23:22 +01:00
Christian Stefanescu
b3fc5d19ea README: mention Linux for Homebrew installation (#45)
Since Homebrew now works on linux (https://docs.brew.sh/Homebrew-on-Linux), you can use the same installation steps for Linux as you would for macOS. I tested this on Ubuntu 19.10.
2019-12-29 14:47:01 +01:00
Filippo Valsorda
c02443e4d0 README: fix build from source instructions 2019-12-28 03:43:26 +01:00
Chris Palmer
a5773f28a3 README: update the installation and build instructions (#31)
Co-authored-by: Filippo Valsorda <1225294+FiloSottile@users.noreply.github.com>
2019-12-28 02:44:44 +01:00
Filippo Valsorda
63301d18b4 internal/age: add a comment about the fixed AEAD nonce 2019-12-28 02:43:51 +01:00
Chris Palmer
d6fe1cf5c8 cmd/age: provide a --output option (#28)
For consistency across all options.
2019-12-28 02:33:26 +01:00
Barend
18edf29a75 README: fix typo (#26) 2019-12-28 00:28:49 +01:00
Filippo Valsorda
1bf22e2163 cmd/age-keygen: print the public key to standard error v1.0.0-beta2 2019-12-27 23:49:09 +01:00
Filippo Valsorda
3d73da544d cmd/age: add -help and README 2019-12-27 23:48:29 +01:00
Filippo Valsorda
c185781433 HomebrewFormula: add Homebrew formula 2019-12-27 18:37:48 +01:00
Filippo Valsorda
bbab440e19 internal/age: add a label to the scrypt salt
This way every recipient is labeled with the version.

-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNjcnlwdCBSbmw2ellyQ1VFK25rVkwx
TkF0SklnIDE4CjlZL2RKb2FOcjFrM0MwSVZqS1BzMUFLeVF5Y1RaMEwvQlRLMWwv
Q0xJbEEKLS0tIEJ1STZCbFh5Vjdsam5nSEFGTVZUY1BxcVVIek04ZUVrOGR4L3ph
NkYzS28KucY25ejFefMDMtKvsAEofDQLsYF41NPrSPITpoxuVWMMZ1ldm+lDh09q
RzCIZAhLN8jaqdeVdCEutqiniJ/9qv4=
-----END AGE ENCRYPTED FILE-----

Password: lies
v1.0.0-beta1
2019-12-27 17:13:20 +01:00
Filippo Valsorda
158b2ce899 all: switch labels and intro to age-encryption.org/v1 2019-12-27 17:13:20 +01:00
Filippo Valsorda
c434eee6e8 internal/format: switch armor to PEM
It's with a heavy heart that I admit using the ASCII header as part of
the armor was clever, and you know what we think about being clever
around here.

Still, PEM is so lax, we target a subset without headers, and without
garbage before and after the markers.

-----BEGIN AGE ENCRYPTED FILE-----
VGhpcyBpcyBhIGZpbGUgZW5jcnlwdGVkIHdpdGggYWdlLXRvb2wuY29tLCB2ZXJz
aW9uIDEKLT4gWDI1NTE5IGozWWtNTWtaVGNDc0tKVGtMN29aam9NT2FUaGpBTVdU
Y1k5ZHVNdWJhUlkKb0F5d2N4ZW1lSTM1SkZiWHIxcHRFWW0rMjNzK3RuOTg1OHpN
L0ZkVzNCTQotLS0gQWZqdXFFaXNhbmYxbGpPRVZsSS9QM0wyM0RrTHRWWElsQnFu
ejFmRW4zdwq1FMc+yjVJBDuBUZSPMi0nCAtELIObQOHHQlQnvhk6BCITceOD5DbN
S7b6oumB8i/hEJvTtsOLgTBofzqzB90iAQ==
-----END AGE ENCRYPTED FILE-----

AGE-SECRET-KEY-1Y77J4M9R7GEKMZHR6YFDLDWV74VK2YQV4C7SR2H7SSVVJ05HQS4Q7NNMS3
2019-12-27 17:13:20 +01:00
Filippo Valsorda
b142e0fd01 internal/format: switch to 64 columns of standard Base64
Now that we don't use Base64 in keys, let's just go back to the standard
alphabet. Still in the spirit of reducing weirdness, use the PEM column
count, so we can also reuse the lineWriter for the PEM armor.

See https://groups.google.com/d/msg/age-dev/UAjkvLoCr9I/l4Q1h3OPAgAJ.
2019-12-27 17:13:20 +01:00
Filippo Valsorda
9a84e437b1 all: switch key format to Bech32
Use the BIP173 format, which is whole-word selectable, markup safe, and
case insensitive.

AGE-SECRET-KEY-1FPSHVEFQXYSX5MMFDE6ZCGRTV4JHQGRFWSS8WETVDSSX76TVV4JQU272CR

See https://groups.google.com/d/msg/age-dev/UAjkvLoCr9I/l4Q1h3OPAgAJ.

All bech32 Go packages have funky APIs, internal types, or case
handling, so include a heavily refactored version of the reference
implementation, and the tests from github.com/btcsuite/btcutil/bech32.
2019-12-27 17:13:20 +01:00
Filippo Valsorda
8c600131ec cmd/age: print age-tool.com/report link on errors 2019-12-07 01:19:02 -05:00
Filippo Valsorda
0369d9b7fb cmd/age-keygen: detect world-readable output file 2019-12-07 00:59:41 -05:00
Filippo Valsorda
93ea79628d all: change module name to filippo.io/age
No need to tie ourselves to GitHub.

The redirect is not set up yet, but as long as there is a replace in the
go.mod the tool can't be installed with "go get" anyway.

Not using age-tool.com because A) I don't actually like the domain and
B) it should be about the spec not the specific implementation.
2019-12-07 00:59:41 -05:00
Filippo Valsorda
aefae7ca0f cmd/age: autodetect --passphrase in --decrypt mode 2019-12-07 00:59:41 -05:00
Filippo Valsorda
470186da64 cmd/age: implement -p/--passphrase 2019-12-07 00:59:41 -05:00
Filippo Valsorda
1a5bcfeab9 .github: add issue templates (#23) 2019-12-07 00:58:07 -05:00
Filippo Valsorda
7ef2aa8a4e README: mention mailing list and Twitch 2019-11-28 18:44:00 -04:00
Filippo Valsorda
a070570595 cmd/age: don't worry about sending decryption output to the terminal 2019-11-27 22:55:29 -04:00
Filippo Valsorda
025d8d5c0b cmd/age: fix support for password-protected ssh-ed25519 keys 2019-11-27 22:54:24 -04:00
Filippo Valsorda
03f7237541 internal/age: refactor to use the new golang.org/x/crypto/curve25519 API 2019-11-27 22:49:40 -04:00
Filippo Valsorda
9821fcefc9 internal/stream: fix TestRoundTrip 2019-11-27 22:00:48 -04:00
Filippo Valsorda
f90681e0df cmd/age: detect output to the terminal and require opt-in or armor
Also, buffer the armor, so it doesn't get in the way of typing.
2019-11-27 19:40:59 -04:00
Filippo Valsorda
5ea3ee2f63 cmd/age: revamp CLI with -r/-i, long options, and input arg 2019-11-27 19:40:41 -04:00
Filippo Valsorda
779b033c8b cmd/age-keygen: move to a standalone binary 2019-11-27 18:56:08 -04:00
Filippo Valsorda
884b6f365d internal/age: support parsing armored files 2019-11-24 22:28:57 -05:00
Filippo Valsorda
4c4e446f72 internal/age,internal/format: implement armored file generation 2019-11-24 21:10:57 -05:00
Filippo Valsorda
c624abc0ad cmd/age: add support for encrypted SSH key files 2019-11-24 19:15:53 -05:00
Filippo Valsorda
2cc62919a6 cmd/age: refactor parseIdentitiesFile 2019-10-17 10:31:44 -04:00
Filippo Valsorda
8f7e6dcd45 cmd/age: detect age and SSH private keys from file contents 2019-10-14 21:43:48 -04:00
Filippo Valsorda
a5bf40786d cmd/age: add -i and -o flags 2019-10-14 21:09:11 -04:00
Filippo Valsorda
2a0aef5803 internal/age: use a prototype of X25519 from golang/go#32670 2019-10-13 18:14:54 -04:00
Filippo Valsorda
11fc3e293a internal/format: wrap body at 56 columns 2019-10-13 17:24:21 -04:00
Artyom Pervukhin
2d009c8eaf cmd/age: add missing close in parseIdentitiesFile (#14) 2019-10-13 16:34:09 -04:00
Dimitris Apostolou
fe362d8f0a internal/age: fix typo in an ed25519PublicKeyToCurve25519 comment (#13) 2019-10-09 17:57:02 -04:00
Filippo Valsorda
a99e57c53c internal/age: make the scrypt recipient work parameter log2(N)
Fixes #10
2019-10-08 23:24:13 -04:00
Filippo Valsorda
c4269b6185 .travis.yml: enable Travis-CI (#5) 2019-10-07 22:39:10 -04:00
Matt Layher
dd0939ffaa cmd/age: initial support for SSH identities and recipients
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2019-10-07 22:14:24 -04:00
Filippo Valsorda
7f61cf23bf age: add README about the state of the implementation 2019-10-07 16:59:42 -04:00
Filippo Valsorda
022002171c internal/age: add ssh-ed25519 recipients 2019-10-07 00:45:59 -04:00