diff --git a/protos/IncomingPushMessageSignal.proto b/protos/IncomingPushMessageSignal.proto index 69810c0c..88ca10b9 100644 --- a/protos/IncomingPushMessageSignal.proto +++ b/protos/IncomingPushMessageSignal.proto @@ -4,22 +4,49 @@ option java_package = "org.whispersystems.textsecure.push"; option java_outer_classname = "PushMessageProtos"; message IncomingPushMessageSignal { - optional uint32 type = 1; - optional string source = 2; - optional string relay = 3; - repeated string destinations = 4; - optional uint64 timestamp = 5; - optional bytes message = 6; // Contains an encrypted [PreKey]WhisperMessage + enum Type { + UNKNOWN = 0; + CIPHERTEXT = 1; + KEY_EXCHANGE = 2; + PREKEY_BUNDLE = 3; + PLAINTEXT = 4; + } + optional Type type = 1; + optional string source = 2; + optional uint32 sourceDevice = 7; + optional string relay = 3; + optional uint64 timestamp = 5; + optional bytes message = 6; // Contains an encrypted PushMessageContent +// repeated string destinations = 4; // No longer supported } message PushMessageContent { - optional string body = 1; - message AttachmentPointer { - optional fixed64 id = 1; - optional string contentType = 2; - optional bytes key = 3; + optional fixed64 id = 1; + optional string contentType = 2; + optional bytes key = 3; } + message GroupContext { + enum Type { + UNKNOWN = 0; + UPDATE = 1; + DELIVER = 2; + QUIT = 3; + } + optional bytes id = 1; + optional Type type = 2; + optional string name = 3; + repeated string members = 4; + optional AttachmentPointer avatar = 5; + } + + enum Flags { + END_SESSION = 1; + } + + optional string body = 1; repeated AttachmentPointer attachments = 2; + optional GroupContext group = 3; + optional uint32 flags = 4; } diff --git a/protos/WhisperTextProtocol.proto b/protos/WhisperTextProtocol.proto index cea07458..13e74888 100644 --- a/protos/WhisperTextProtocol.proto +++ b/protos/WhisperTextProtocol.proto @@ -11,6 +11,7 @@ message WhisperMessage { } message PreKeyWhisperMessage { + optional uint32 registrationId = 5; optional uint32 preKeyId = 1; optional bytes baseKey = 2; optional bytes identityKey = 3;