Skip to content

Commit 93bee6c

Browse files
committed
Docs!
1 parent 0bfb927 commit 93bee6c

File tree

8 files changed

+51
-30
lines changed

8 files changed

+51
-30
lines changed

README.md

+45-24
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,81 @@
11
---
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.
33
---
44

55
<img src="./logo.png" width="280"/>
66

7-
::: warning
8-
This project is in development and has not been audited. Don't use for anything important yet.
9-
:::
10-
117
## Install
128

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)
1412

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)
1614

1715
Or the [command line only](/docs/cli/install.md).
1816

19-
## Introduction
17+
## What is it?
2018

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.
2229

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"/>
2431

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>
2833

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+
:::
3237

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?
3439

3540
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).
3845

3946
The [Saltpack](https://saltpack.org) format is used for signing and encryption, providing authenticity, repudability and anonymity.
4047

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.
4249

4350
[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.
4451

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+
```
4663

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._
4865

4966
- [Desktop App](/docs/desktop/install.md)
5067
- [Command Line](/docs/cli-index.md)
5168
- [REST API](/docs/restapi-index.md)
5269
- [Library](/docs/lib-index.md)
5370
- [Specs](/docs/specs-index.md)
5471

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.
5677

57-
_Using the desktop app to encrypt a message for the Github user gabriel._
78+
[See some examples](/docs/lib-index.md)
5879

5980
### Similarities/Differences
6081

app-encrypt.jpg

284 KB
Loading

app-encrypt.png

665 KB
Loading

app-keys.png

338 KB
Loading

docs/desktop/install.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Install
22

3-
[Download for macOS (0.0.31)](https://github.com/keys-pub/app/releases/download/v0.0.31/Keys-0.0.31.dmg)
3+
[Download for macOS (0.0.33)](https://github.com/keys-pub/app/releases/download/v0.0.33/Keys-0.0.33.dmg)
44

5-
[Download for Windows (0.0.31)](https://github.com/keys-pub/app/releases/download/v0.0.31/Keys-0.0.31.msi)
5+
[Download for Windows (0.0.33)](https://github.com/keys-pub/app/releases/download/v0.0.33/Keys-0.0.33.msi)
66

7-
_Linux coming soon._
7+
[Download for Linux (0.0.33)](https://github.com/keys-pub/app/releases/download/v0.0.33/Keys-0.0.33.AppImage)
88

99
Or the [command line only](/docs/cli/install.md).
1010

docs/restapi/sigchain.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@ curl -X PUT -d '{".sig":"RZhVfrd6IpHFdUbn3hmxKh0UQpzjdkRPBZHE3Ag8sZHOqGvDG1wfRKZ
4040
https://keys.pub/sigchain/kex1mnseg28xu6g3j4wur7hqwk8ag3fu3pmr2t5lync26xmgff0dtryqupf80c/1
4141
```
4242

43-
It must be a valid signed sigchain statement by the sign key. If it exists already, returns 409 error.
44-
The max size for the msg is 16KB.
43+
It must be a valid signed sigchain statement by the specified key. If it exists already, returns 409 error.
44+
The max size for a signed message is 16KB.

docs/specs/user.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ The steps are:
99

1010
1. Generate a user signed statement (saltpack armored) with the name, service and key identifier.
1111
2. Place the statement on the service at an URL controlled by the account.
12-
3. Save a signed statement in the key's sigchain including name, service, key identifier and the url from step 2.
12+
3. Save a signed statement in the key's sigchain ([PUT /sigchain/:kid/:seq](/docs/restapi/sigchain.md#put-sigchain-kid-seq)) including name, service, key identifier and url from step 2.
1313

1414
## Statement
1515

icon.png

6.06 KB
Loading

0 commit comments

Comments
 (0)