2018-03-09 20:44:13 +00:00
|
|
|
syntax = "proto2";
|
|
|
|
package protocol;
|
|
|
|
|
|
|
|
import "ControlChannel.proto";
|
|
|
|
|
|
|
|
message CwtchServerPacket {
|
|
|
|
optional GroupMessage group_message = 1;
|
|
|
|
optional FetchMessage fetch_message = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
extend protocol.ChannelResult {
|
|
|
|
optional bytes server_nonce = 8200; // 32 random bytes
|
|
|
|
}
|
|
|
|
|
|
|
|
message FetchMessage {
|
|
|
|
}
|
|
|
|
|
|
|
|
message GroupMessage {
|
|
|
|
required bytes ciphertext = 1;
|
|
|
|
required bytes spamguard = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// DecryptedGroupMessage is *never* sent in the clear on the wire
|
|
|
|
// and is only ever sent when encrypted in the ciphertext parameter of
|
|
|
|
// GroupMessage
|
|
|
|
message DecryptedGroupMessage {
|
|
|
|
required string onion = 1;
|
|
|
|
required int32 timestamp = 2;
|
|
|
|
required string text = 3;
|
|
|
|
required bytes signature = 4;
|
2018-03-15 20:53:22 +00:00
|
|
|
required bytes signed_group_id = 5;
|
2018-04-02 21:10:29 +00:00
|
|
|
required bytes previous_message_sig =6;
|
2018-05-28 17:44:47 +00:00
|
|
|
// Used to prevent analysis on text length, length is 1024 - len(text)
|
|
|
|
required bytes padding = 7;
|
2018-03-09 20:44:13 +00:00
|
|
|
}
|