diff --git a/ForumClient.markdown b/ForumClient.markdown index 7e4aac4..2ecda85 100644 --- a/ForumClient.markdown +++ b/ForumClient.markdown @@ -18,9 +18,11 @@ The client identifer is random: **2: DEPARTURE** - The content is a BDF list with one element: `invitation_id` (raw), which is the identifier of an invitation created by either peer. -**3: POST** - The content is a BDF list with two elements: `author` (list, may be null) and `content` (list). If `author` is null, the post is anonymous. Otherwise `author` is a list with two elements: `identity` (list) and `signature` (raw). `identity` is a list with two elements: `name` (string) and `public_key` (raw). `signature` is calculated over `content`. +**3: POST** - The content is a BDF list with three elements: `content` (list), `author` (list, may be null), and `signature` (raw, may be null). `content` is a list with three elements: `parent_id` (raw, may be null), `body` (string), and `attachments` (dictionary, may be null). If `parent_id` is not null, it is the identifier of a post 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: `mime_type` (string) and `message_id` (raw). -`content` is a list with three elements: `parent_id` (raw, may be null), `body` (string), and `attachments` (dictionary, may be null). If `parent_id` is not null, it is the identifier of a post 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: `mime_type` (string) and `message_id` (raw). +If `author` is null, the post is anonymous and `signature` must also be null. Otherwise `author` is a list with two elements: `name` (string) and `public_key` (raw). + +If `signature` is null, the post is anonymous and `author` must also be null. Otherwise `signature` is calculated over a list with four elements: `forum` (list), `author` (list), `timestamp` (int), and `content` (list). `forum`, `author` and `content` are described above. `timestamp` is the timestamp from the [message header](BSP#message-format). **4: ATTACHMENT** - The content is raw data.