78 lines
2.3 KiB
Markdown
78 lines
2.3 KiB
Markdown
# `age` Agent
|
|
|
|
Note: the age-related code is still under development, so please try the current implementation
|
|
and please let me [know](https://github.com/romanz/trezor-agent/issues/new) if something doesn't
|
|
work well for you. If possible:
|
|
|
|
* record the session (e.g. using [asciinema](https://asciinema.org))
|
|
* collect the agent log by setting `TREZOR_AGE_PLUGIN_LOG` environment variable
|
|
|
|
Thanks!
|
|
|
|
## 1. Configuration
|
|
|
|
Install [age 1.1.0+](https://github.com/FiloSottile/age/releases/tag/v1.1.0) or [rage 0.9.0+](https://github.com/str4d/rage/releases/tag/v0.9.0).
|
|
|
|
Generate an identity by running:
|
|
|
|
```
|
|
$ age-plugin-trezor -i "John Doe" | tee identity
|
|
# recipient: age1wpl78afms4x36mucnd4j65sanrtj9873up47qq39h68q0aw7n4xqdlw6tk
|
|
# SLIP-0017: John Doe
|
|
AGE-PLUGIN-TREZOR-1FFHKSM3QG3HK2PEPD5D
|
|
```
|
|
|
|
## 2. Usage
|
|
|
|
### Encrypt
|
|
|
|
Use the recipient ID from above (see [age](https://github.com/FiloSottile/age#usage)/[rage](https://github.com/str4d/rage#usage) instructions):
|
|
```
|
|
$ date | age -r age1wpl78afms4x36mucnd4j65sanrtj9873up47qq39h68q0aw7n4xqdlw6tk > secret.age
|
|
```
|
|
|
|
### Decrypt
|
|
|
|
Make sure `age-plugin-trezor` is installed and available (it will be invoked by `age` for decryption):
|
|
|
|
```
|
|
$ age -d -i identity < secret.age
|
|
Mon 26 Dec 2022 21:10:26 IST
|
|
```
|
|
|
|
### Manage passwords with `passage`
|
|
|
|
First install `passage` from https://github.com/FiloSottile/passage and initialize it to use your hardware-based identity:
|
|
```
|
|
$ mkdir -p ~/.passage/store
|
|
|
|
$ age-plugin-trezor -i "John Doe" | tee ~/.passage/identities
|
|
# recipient: age1wpl78afms4x36mucnd4j65sanrtj9873up47qq39h68q0aw7n4xqdlw6tk
|
|
# SLIP-0017: John Doe
|
|
AGE-PLUGIN-TREZOR-1FFHKSM3QG3HK2PEPD5D
|
|
|
|
$ awk '/# recipient:/ {print $3}' ~/.passage/identities | tee -a ~/.passage/store/.age-recipients
|
|
age1wpl78afms4x36mucnd4j65sanrtj9873up47qq39h68q0aw7n4xqdlw6tk
|
|
```
|
|
|
|
```
|
|
$ passage generate Dev/github 32
|
|
$ passage generate Social/hackernews 32
|
|
$ passage generate Social/twitter 32
|
|
$ passage generate VPS/linode 32
|
|
$ passage
|
|
Passage
|
|
├── Dev
|
|
│ └── github
|
|
├── Social
|
|
│ ├── hackernews
|
|
│ └── twitter
|
|
└── VPS
|
|
└── linode
|
|
```
|
|
In order to paste them into the browser, you'd need to decrypt the password using your hardware device:
|
|
```
|
|
$ passage --clip VPS/linode
|
|
Copied VPS/linode to clipboard. Will clear in 45 seconds.
|
|
```
|