mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
Update to current WIP implementation
@@ -3,7 +3,7 @@ The mailbox properties client is a [BSP client](https://code.briarproject.org/br
|
||||
|
||||
### Identifier
|
||||
|
||||
The client's identifier is `org.briarproject.bramble.mailbox`. The major version is 0.
|
||||
The client's identifier is `org.briarproject.bramble.mailbox`. The major version is 1.
|
||||
|
||||
### Groups
|
||||
|
||||
@@ -11,21 +11,21 @@ The client uses a separate BSP group for communicating with each contact. The [g
|
||||
|
||||
### Message types
|
||||
|
||||
**UPDATE** - The message body is a BDF list with 4 elements: `version` (int), `properties` (dictionary), `clientSupports` (list), and `serverSupports` (list).
|
||||
**UPDATE** - The message body is a BDF list with 4 elements: `version` (int), `clientSupports` (list), and `serverSupports` (list), `properties` (dictionary).
|
||||
|
||||
`version` is incremented whenever the properties change. The keys of the `properties` dictionary are strings.
|
||||
`version` is incremented whenever the properties change.
|
||||
|
||||
For major version 0, the `properties` dictionary of a well-formed update contains either no (0) entries, which means for the receiver that there is no mailbox available. Or, it contains all of the following entries:
|
||||
`clientSupports` is a non-empty list of Mailbox API versions that the sender can talk to as a client. Each element (a version) is a list with 2 elements: `major` (int), `minor` (int).
|
||||
|
||||
`serverSupports` is a list of Mailbox API versions that the sender's mailbox supports. The list must be empty if `properties` is empty (there is no mailbox), otherwise it must be non-empty. Each element (a version) is a list with 2 elements: `maj` (int), `min` (int).
|
||||
|
||||
The keys of the `properties` dictionary are strings. The dictionary of a well-formed update contains either no (0) entries, which means for the receiver that there is no mailbox available. Or, it contains all of the following entries:
|
||||
|
||||
* "onion" : String -- Onion of the mailbox (56 lower-case base32 chars, derived from the v3 Onion Service public key)
|
||||
* "authToken" : byte[32] -- token used for authenticating with the mailbox
|
||||
* "inboxId" : byte[32] -- folder id used when receiving data from the mailbox
|
||||
* "outboxId" : byte[32] -- folder id used when delivering data to the mailbox
|
||||
|
||||
`clientSupports` is a non-empty list of Mailbox API versions that the sender can talk to as a client. Each element (a version) is a list with 2 elements: `maj` (int), `min` (int).
|
||||
|
||||
`serverSupports` is a list of Mailbox API versions that the sender's mailbox supports. The list must be empty if `properties` is empty (there is no mailbox), otherwise it must be non-empty. Each element (a version) is a list with 2 elements: `maj` (int), `min` (int).
|
||||
|
||||
### Validity policy
|
||||
|
||||
* An update is valid if it is well-formed.
|
||||
|
||||
Reference in New Issue
Block a user