|
1 | 1 | ---
|
2 |
| -title: keys.pub - Cryptographic key management, sigchains, user identities, signing, encryption |
| 2 | +title: keys.pub - Cryptographic key management, sigchains, user identities, signing, encryption, password manager. |
3 | 3 | ---
|
4 | 4 |
|
5 | 5 | <img src="./logo.png" width="280"/>
|
6 | 6 |
|
7 |
| -::: warning |
8 |
| -This project is in development and has not been audited. Don't use for anything important yet. |
9 |
| -::: |
10 |
| - |
11 | 7 | ## Install
|
12 | 8 |
|
13 |
| -[Download for macOS](https://github.com/keys-pub/app/releases/download/v0.0.31/Keys-0.0.31.dmg) |
| 9 | +[Download for macOS](https://github.com/keys-pub/app/releases/download/v0.0.33/Keys-0.0.33.dmg) |
| 10 | + |
| 11 | +[Download for Windows](https://github.com/keys-pub/app/releases/download/v0.0.33/Keys-0.0.33.msi) |
14 | 12 |
|
15 |
| -[Download for Windows](https://github.com/keys-pub/app/releases/download/v0.0.31/Keys-0.0.31.msi) |
| 13 | +[Download for Linux](https://github.com/keys-pub/app/releases/download/v0.0.33/Keys-0.0.33.AppImage) |
16 | 14 |
|
17 | 15 | Or the [command line only](/docs/cli/install.md).
|
18 | 16 |
|
19 |
| -## Introduction |
| 17 | +## What is it? |
20 | 18 |
|
21 |
| -Key management is hard. |
| 19 | +- Manage cryptographic [keys](/docs/specs/keys.md), [sigchains](/docs/specs/sigchain.md) and [user identities](/docs/specs/user.md). |
| 20 | +- [Search for keys](/docs/restapi/user.md#get-user-search), verify and import them. |
| 21 | +- Securely store passwords and secrets. |
| 22 | +- Encrypt, decrypt, sign, verify. |
| 23 | +- Create a secure connection ([Wormhole](/docs/specs/wormhole)) between 2 computers. |
| 24 | +- Most features available in both the app and on the command line. |
| 25 | +- 100% open source ([github.com/keys-pub](https://github.com/keys-pub)) and cross platform (macOS, Windows, Linux). |
| 26 | +- _Coming soon:_ Backup keys/secrets to your private self-hosted storage on S3, GCP, etc. |
| 27 | +- _Coming soon:_ Support for hardware keys. |
| 28 | +- _Coming soon:_ Mobile apps. |
22 | 29 |
|
23 |
| -keys.pub is an app and service that manages cryptographic keys, sigchains and user identities. It integrates with other frameworks to provide signing and encryption, such as [Saltpack](https://saltpack.org) or [Noise Protocol](https://noiseprotocol.org/). |
| 30 | +<img src="./app-encrypt.jpg"/> |
24 | 31 |
|
25 |
| -```shell |
26 |
| -> keys pull gabriel@github |
27 |
| -kex1mnseg28xu6g3j4wur7hqwk8ag3fu3pmr2t5lync26xmgff0dtryqupf80c |
| 32 | +<div style="margin-top: -20px; margin-bottom: 20px; font-style: italic; text-align: center">Using the desktop app to encrypt a message from gabriel@github to multiple recipients.</div> |
28 | 33 |
|
29 |
| -> echo "hi 🤓" | keys encrypt -recipient gabriel@github -armor -stdin -stdout |
30 |
| -BEGIN SALTPACK ENCRYPTED MESSAGE. kcJn5brvybfNjz6 D5ll2Nk0Z2co0as ... |
31 |
| -``` |
| 34 | +::: warning |
| 35 | +This project is in development and has not been audited. |
| 36 | +::: |
32 | 37 |
|
33 |
| -_The above example pulls the public key for the Github user gabriel, verifies it and creates an encrypted message._ |
| 38 | +## How does it work? |
34 | 39 |
|
35 | 40 | The default key is a [Ed25519/X25519 key](/docs/specs/keys.md) capable of signing and encryption.
|
36 |
| -This key can also be used to create a [sigchain](/docs/specs/sigchain.md) (an ordered sequence of signed statements). |
37 |
| -You can [link a key to an identity](/docs/specs/user.md) (on Github, Twitter, Reddit, etc), by publishing a signed statement to this sigchain. |
| 41 | + |
| 42 | +We can [link this key](/docs/specs/user.md) to your identity on Github, Twitter, Reddit, etc, by creating a signed statement and publishing it both there and on your sigchain. (You can revoke by removing either statement.) |
| 43 | + |
| 44 | +You can [search for keys](/docs/restapi/user.md#get-user-search) by user name and service (e.g. `gabriel@github`, `gabrlh@twitter`), or [lookup a user](/docs/restapi/user.md#get-user-kid) by a key identifier using a [REST API](/docs/restapi-index). |
38 | 45 |
|
39 | 46 | The [Saltpack](https://saltpack.org) format is used for signing and encryption, providing authenticity, repudability and anonymity.
|
40 | 47 |
|
41 |
| -You can [search for keys](/docs/restapi/user.md#get-user-search) by user name and service, or [lookup a user](/docs/restapi/user.md#get-user-kid) by a key identifier using a [REST API](/docs/restapi/). |
| 48 | +The [Noise Protocol](https://noiseprotocol.org/) is used to create a secure connection between two keys. |
42 | 49 |
|
43 | 50 | [Key identifiers](/docs/specs/kid.md) are [Bech32 format](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki), encode the type of key and public key bytes, and include a checksum with error correction.
|
44 | 51 |
|
45 |
| -Your keys are protected by a [keyring](/docs/specs/keyring.md) which is secured by both the OS and a user supplied password (similar to a password manager). |
| 52 | +Your keys and secrets are protected by a [keyring](/docs/specs/keyring.md) which is secured by both the OS and a user supplied password. |
| 53 | + |
| 54 | +The app and command line utility connect to a `keysd` daemon runs as a [gRPC service](/docs/specs/service.md) on your computer. |
| 55 | + |
| 56 | +```shell |
| 57 | +> keys pull gabriel@github |
| 58 | +kex1mnseg28xu6g3j4wur7hqwk8ag3fu3pmr2t5lync26xmgff0dtryqupf80c |
| 59 | + |
| 60 | +> echo "hi 🤓" | keys encrypt -recipient gabriel@github -armor -stdin -stdout |
| 61 | +BEGIN SALTPACK ENCRYPTED MESSAGE. kcJn5brvybfNjz6 D5ll2Nk0Z2co0as ... |
| 62 | +``` |
46 | 63 |
|
47 |
| -The `keysd` daemon runs as a [gRPC service](/docs/specs/service.md) on your computer. |
| 64 | +_The above example pulls the public key for the Github user gabriel, verifies it and creates an encrypted saltpack message._ |
48 | 65 |
|
49 | 66 | - [Desktop App](/docs/desktop/install.md)
|
50 | 67 | - [Command Line](/docs/cli-index.md)
|
51 | 68 | - [REST API](/docs/restapi-index.md)
|
52 | 69 | - [Library](/docs/lib-index.md)
|
53 | 70 | - [Specs](/docs/specs-index.md)
|
54 | 71 |
|
55 |
| -<img src="./app.png"/> |
| 72 | +## What else? |
| 73 | + |
| 74 | +### Go Libraries |
| 75 | + |
| 76 | +All the features in the app is available through Go libraries. |
56 | 77 |
|
57 |
| -_Using the desktop app to encrypt a message for the Github user gabriel._ |
| 78 | +[See some examples](/docs/lib-index.md) |
58 | 79 |
|
59 | 80 | ### Similarities/Differences
|
60 | 81 |
|
|
0 commit comments