mirror of
https://github.com/FiloSottile/age.git
synced 2025-12-23 05:25:14 +00:00
doc: document plugins in age(1)
This commit is contained in:
@@ -173,6 +173,31 @@ An encrypted file _can_ be linked to the SSH public key it was encrypted to.
|
||||
This is so that `age` can identify the correct SSH private key before
|
||||
requesting its password, if any.
|
||||
|
||||
### Plugins
|
||||
|
||||
`age` can be extended through plugins. A plugin is only loaded if a corresponding
|
||||
`RECIPIENT` or `IDENTITY` is specified. (Simply decrypting a file encrypted with
|
||||
a plugin will not cause it to load, for security reasons among others.)
|
||||
|
||||
A `RECIPIENT` for a plugin named `example` starts with `age1example1`, while an
|
||||
`IDENTITY` starts with `AGE-PLUGIN-EXAMPLE-1`. They both encode arbitrary
|
||||
plugin-specific data, and are generated by the plugin.
|
||||
|
||||
When either is specified, `age` searches for `age-plugin-example` in the PATH
|
||||
and executes it to perform the file header encryption or decryption. The plugin
|
||||
may request input from the user through `age` to complete the operation.
|
||||
|
||||
Plugins can be freely mixed with other plugins or natively supported keys.
|
||||
|
||||
A plugin is not bound to only encrypt or decrypt files meant for or generated by
|
||||
the plugin. For example, a plugin can be used to decrypt files encrypted to a
|
||||
native X25519 `RECIPIENT` or even with a passphrase. Similarly, a plugin can
|
||||
encrypt a file such that it can be decrypted without the use of any plugin.
|
||||
|
||||
Plugins for which the `IDENTITY`/`RECIPIENT` distinction doesn't make sense may
|
||||
generate only an `IDENTITY` and instruct the user to perform encryption with the
|
||||
`-e`/`--encrypt` and `-i`/`--identity` flags.
|
||||
|
||||
## EXIT STATUS
|
||||
|
||||
`age` will exit 0 if and only if encryption or decryption are successful for the
|
||||
@@ -244,6 +269,14 @@ Encrypt and decrypt with an SSH public key:
|
||||
|
||||
$ age -d -i ~/.ssh/id_ed25519 example.jpg.age > example.jpg
|
||||
|
||||
Encrypt and decrypt with age-plugin-yubikey:
|
||||
|
||||
$ age-plugin-yubikey # run interactive setup, generate identity file and obtain recipient
|
||||
|
||||
$ age -r age1yubikey1qwt50d05nh5vutpdzmlg5wn80xq5negm4uj9ghv0snvdd3yysf5yw3rhl3t secrets.txt > secrets.txt.age
|
||||
|
||||
$ age -d -i age-yubikey-identity-388178f3.txt secrets.txt.age
|
||||
|
||||
Encrypt to the SSH keys of a GitHub user:
|
||||
|
||||
$ curl https://github.com/benjojo.keys | age -R - example.jpg > example.jpg.age
|
||||
|
||||
Reference in New Issue
Block a user