Update MessagingClient

akwizgran
2018-03-22 13:09:12 +00:00
parent a9b2cbaa39
commit 47dbde4bdd

@@ -1,31 +1,23 @@
MessagingClient is a [BSP client](BSP) that synchronises private messages between pairs of devices.
The messaging client is a [BSP client](BSP) that synchronises private messages between pairs of devices.
### Group identifiers
MessagingClient uses the following client identifier:
`6bcd c006 c091 0b0f 44e4 0644 c3b3 1f1a 8bf9 a6d6 021d 40d2 19c8 6b73 1b90 3070`
The client's identifier is `org.briarproject.briar.messaging`.
The client uses a separate group for each pair of contacts. The [group descriptor](BSP#group-identifiers) is a [BDF list](BDF) containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings.
### Message types
**0: PRIVATE_MESSAGE** - The content is a BDF list with four elements: `parent_id` (raw or null), `content_type` (string), `body` (raw), and `attachments` (dictionary or null). `parent_id` is the identifier of a private message to which this is a response. Each key in `attachments` is the name of an attachment, and the value is a list with two elements: `content_type` (string) and `message_id` (raw).
**1: ATTACHMENT** - The content is raw data.
**PRIVATE_MESSAGE** - The content is a BDF list with one: `content` (string).
### Validity policy
* A private message is valid if it is well-formed.
* An attachment is always valid.
Note that a private message can be validated before its attachments have been received, and an attachment can be validated before it has been completely received.
### Storage policy
* All local messages are stored.
* All remote messages are stored.
* All messages are stored.
### Sharing policy
* All local messages are shared.
* All remote messages are shared.