WIP changes to trust establishment and x6

This commit is contained in:
Corey 2019-07-15 16:30:40 -04:00 committed by Oskar Thoren
parent 5fd1d7b6b3
commit 8e1475a6db
No known key found for this signature in database
GPG Key ID: B2ECCFD3BC2EF77E
2 changed files with 10 additions and 11 deletions

18
x6.md
View File

@ -96,12 +96,7 @@ Types used in this specification are defined using [Protobuf](https://developers
### 1.5. User flow for 1-to-1 communications ### 1.5. User flow for 1-to-1 communications
#### 1.5.1. Account generation #### 1.5.1. Account generation
See [Account specification](./x9.md)
Generating a user account in Status involves 3 steps:
- Generation of a random seed, and the respective account;
- Generation of a X3DH bundle. This prekey bundle will become part of the user's contact code;
- Registration with Push Notification platform.
#### 1.5.2. Account recovery #### 1.5.2. Account recovery
@ -137,19 +132,20 @@ Status uses the following cryptographic primitives:
### 2.2. Prekeys ### 2.2. Prekeys
Every client initially generates some key material which is stored locally: Every client initially generates some key material which is stored locally:
- Identity keypair based on secp256k1 - $IK$; - Identity keypair based on secp256k1 - `IK`
- A signed prekey based on secp256k1 - $SPK$; - A signed prekey based on secp256k1 - `SPK`
- A prekey signature - <i>Sig($IK$, Encode($SPK$))</i> - A prekey signature - `Sig(IK, Encode(SPK))`
TODO: Formatting is off here, not sure what this is supposed to be in Markdown. Assumes LaTeX? More details can be found in section 1.2 of [Account specification](./x9.md)
A `contact-code` is a protobuf `Bundle` message, encoded in `JSON` and converted to their `base64` string representation. A `contact-code` is a protobuf `Bundle` message, encoded in `JSON` and converted to their `base64` string representation.
Prekey bundles are exchanged through QR codes, contact codes, 1:1 or public chat messages. *We will be updating this document with information about bundle exchange through [ENS](https://ens.domains/) and [Swarm](https://swarm-guide.readthedocs.io/en/latest/introduction.html) as work progresses and technologies become more usable.* Prekey bundles are can be extracted from any user's messages, or found via searching for their specific contact code topic, `{IK}-contact-code`.
TODO: See below on bundle retrieval, this seems like enhancement and parameter for recommendation TODO: See below on bundle retrieval, this seems like enhancement and parameter for recommendation
### 2.3. Bundle retrieval ### 2.3. Bundle retrieval
TODO: Potentially move this completely over to [Trust Establishment](./x5.md)
X3DH works by having client apps create and make available a bundle of prekeys (the X3DH bundle) that can later be requested by other interlocutors when they wish to start a conversation with a given user. X3DH works by having client apps create and make available a bundle of prekeys (the X3DH bundle) that can later be requested by other interlocutors when they wish to start a conversation with a given user.

3
x9.md
View File

@ -34,6 +34,9 @@ Everything else associated with the contact is either verified or derived from t
- Timestamp - Timestamp
- These bundles are made available in a variety of ways, as defined in section 2.1. - These bundles are made available in a variety of ways, as defined in section 2.1.
### 1.3 Register at push notification system
- TODO: Add this.
## 2 Account Broadcasting ## 2 Account Broadcasting
- A user is responsible for broadcasting certain information publicly so that others may contact them. - A user is responsible for broadcasting certain information publicly so that others may contact them.