signal-desktop/protos/SignalService.proto

390 lines
10 KiB
Protocol Buffer
Raw Normal View History

Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
// Source: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
package signalservice;
2014-01-15 07:46:05 +00:00
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
option java_package = "org.whispersystems.signalservice.internal.push";
option java_outer_classname = "SignalServiceProtos";
2014-01-15 07:46:05 +00:00
message Envelope {
2014-03-12 19:52:19 +00:00
enum Type {
UNKNOWN = 0;
CIPHERTEXT = 1;
KEY_EXCHANGE = 2;
PREKEY_BUNDLE = 3;
RECEIPT = 5;
UNIDENTIFIED_SENDER = 6;
2014-03-12 19:52:19 +00:00
}
optional Type type = 1;
optional string source = 2;
optional uint32 sourceDevice = 7;
optional string relay = 3;
optional uint64 timestamp = 5;
optional bytes legacyMessage = 6; // Contains an encrypted DataMessage
optional bytes content = 8; // Contains an encrypted Content
optional string serverGuid = 9;
optional uint64 serverTimestamp = 10;
}
2014-03-12 19:52:19 +00:00
message Content {
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
optional DataMessage dataMessage = 1;
optional SyncMessage syncMessage = 2;
optional CallMessage callMessage = 3;
optional NullMessage nullMessage = 4;
Feature: Blue check marks for read messages if opted in (#1489) * Refactor delivery receipt event handler * Rename the delivery receipt event For less ambiguity with read receipts. * Rename synced read event For less ambiguity with read receipts from other Signal users. * Add support for incoming receipt messages Handle ReceiptMessages, which may include encrypted delivery receipts or read receipts from recipients of our sent messages. // FREEBIE * Rename ReadReceipts to ReadSyncs * Render read messages with blue double checks * Send read receipts to senders of incoming messages // FREEBIE * Move ReadSyncs to their own file // FREEBIE * Fixup old comments on read receipts (now read syncs) And some variable renaming for extra clarity. // FREEBIE * Add global setting for read receipts Don't send read receipt messages unless the setting is enabled. Don't process read receipts if the setting is disabled. // FREEBIE * Sync read receipt setting from mobile Toggling this setting on your mobile device should sync it to Desktop. When linking, use the setting in the provisioning message. // FREEBIE * Send receipt messages silently Avoid generating phantom messages on ios // FREEBIE * Save recipients on the outgoing message models For accurate tracking and display of sent/delivered/read state, even if group membership changes later. // FREEBIE * Fix conversation type in profile key update handling // FREEBIE * Set recipients on synced sent messages * Render saved recipients in message detail if available For older messages, where we did not save the intended set of recipients at the time of sending, fall back to the current group membership. // FREEBIE * Record who has been successfully sent to // FREEBIE * Record who a message has been delivered to * Invert the not-clickable class * Fix readReceipt setting sync when linking * Render per recipient sent/delivered/read status In the message detail view for outgoing messages, render each recipient's individual sent/delivered/read status with respect to this message, as long as there are no errors associated with the recipient (ie, safety number changes, user not registered, etc...) since the error icon is displayed in that case. *Messages sent before this change may not have per-recipient status lists and will simply show no status icon. // FREEBIE * Add configuration sync request Send these requests in a one-off fashion when: 1. We have just setup from a chrome app import 2. We have just upgraded to read-receipt support // FREEBIE * Expose sendRequestConfigurationSyncMessage // FREEBIE * Fix handling of incoming delivery receipts - union with array FREEBIE
2017-10-04 22:28:43 +00:00
optional ReceiptMessage receiptMessage = 5;
2018-11-14 19:10:32 +00:00
optional TypingMessage typingMessage = 6;
Feature: Blue check marks for read messages if opted in (#1489) * Refactor delivery receipt event handler * Rename the delivery receipt event For less ambiguity with read receipts. * Rename synced read event For less ambiguity with read receipts from other Signal users. * Add support for incoming receipt messages Handle ReceiptMessages, which may include encrypted delivery receipts or read receipts from recipients of our sent messages. // FREEBIE * Rename ReadReceipts to ReadSyncs * Render read messages with blue double checks * Send read receipts to senders of incoming messages // FREEBIE * Move ReadSyncs to their own file // FREEBIE * Fixup old comments on read receipts (now read syncs) And some variable renaming for extra clarity. // FREEBIE * Add global setting for read receipts Don't send read receipt messages unless the setting is enabled. Don't process read receipts if the setting is disabled. // FREEBIE * Sync read receipt setting from mobile Toggling this setting on your mobile device should sync it to Desktop. When linking, use the setting in the provisioning message. // FREEBIE * Send receipt messages silently Avoid generating phantom messages on ios // FREEBIE * Save recipients on the outgoing message models For accurate tracking and display of sent/delivered/read state, even if group membership changes later. // FREEBIE * Fix conversation type in profile key update handling // FREEBIE * Set recipients on synced sent messages * Render saved recipients in message detail if available For older messages, where we did not save the intended set of recipients at the time of sending, fall back to the current group membership. // FREEBIE * Record who has been successfully sent to // FREEBIE * Record who a message has been delivered to * Invert the not-clickable class * Fix readReceipt setting sync when linking * Render per recipient sent/delivered/read status In the message detail view for outgoing messages, render each recipient's individual sent/delivered/read status with respect to this message, as long as there are no errors associated with the recipient (ie, safety number changes, user not registered, etc...) since the error icon is displayed in that case. *Messages sent before this change may not have per-recipient status lists and will simply show no status icon. // FREEBIE * Add configuration sync request Send these requests in a one-off fashion when: 1. We have just setup from a chrome app import 2. We have just upgraded to read-receipt support // FREEBIE * Expose sendRequestConfigurationSyncMessage // FREEBIE * Fix handling of incoming delivery receipts - union with array FREEBIE
2017-10-04 22:28:43 +00:00
}
2017-02-22 18:20:54 +00:00
message CallMessage {
message Offer {
optional uint64 id = 1;
optional string description = 2;
}
message Answer {
optional uint64 id = 1;
optional string description = 2;
}
message IceUpdate {
optional uint64 id = 1;
optional string sdpMid = 2;
optional uint32 sdpMLineIndex = 3;
optional string sdp = 4;
}
message Busy {
optional uint64 id = 1;
}
message Hangup {
optional uint64 id = 1;
}
optional Offer offer = 1;
optional Answer answer = 2;
repeated IceUpdate iceUpdate = 3;
optional Hangup hangup = 4;
optional Busy busy = 5;
}
message DataMessage {
2014-03-12 19:52:19 +00:00
enum Flags {
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
END_SESSION = 1;
EXPIRATION_TIMER_UPDATE = 2;
Profiles (#1453) * Add AES-GCM encryption for profiles With tests. * Add profileKey to DataMessage protobuf // FREEBIE * Decrypt and save profile names // FREEBIE * Save incoming profile keys * Move pad/unpad to crypto module // FREEBIE * Support fetching avatars from the cdn // FREEBIE * Translate failed authentication errors When AES-GCM authentication fails, webcrypto returns a very generic error. The same error is thrown for invalid length inputs, but our earlier checks in decryptProfile should rule out those failure modes and leave us safe to assume that we either had bad ciphertext or the wrong key. // FREEBIE * Handle profile avatars (wip) and log decrypt errors // FREEBIE * Display profile avatars Synced contact avatars will still override profile avatars. * Display profile names in convo list Only if we don't have a synced contact name. // FREEBIE * Make cdn url an environment config Use different ones for staging and production // FREEBIE * Display profile name in conversation header * Display profile name in group messages * Update conversation header if profile avatar changes // FREEBIE * Style profile names small with ~ * Save profileKeys from contact sync messages // FREEBIE * Save profile keys from provisioning messages For standalone accounts, generate a random profile key. // FREEBIE * Special case for one-time sync of our profile key Android will use a contact sync message to sync a profile key from Android clients who have just upgraded and generated their profile key. Normally we should receive this data in a provisioning message. // FREEBIE * Infer profile sharing from synced data messages * Populate profile keys on outgoing messages Requires that `profileSharing` be set on the conversation. // FREEBIE * Support for the profile key update flag When receiving a message with this flag, don't init a message record, just process the profile key and move on. // FREEBIE * Display profile names in group member list * Refresh contact's profile on profile key changes // FREEBIE * Catch errors on profile save // FREEBIE * Save our own synced contact info Don't return early if we get a contact sync for our own number // FREEBIE
2017-09-11 16:50:35 +00:00
PROFILE_KEY_UPDATE = 4;
2014-01-15 07:46:05 +00:00
}
message Quote {
message QuotedAttachment {
optional string contentType = 1;
optional string fileName = 2;
optional AttachmentPointer thumbnail = 3;
}
optional uint64 id = 1;
optional string author = 2;
optional string text = 3;
repeated QuotedAttachment attachments = 4;
}
message Contact {
message Name {
optional string givenName = 1;
optional string familyName = 2;
optional string prefix = 3;
optional string suffix = 4;
optional string middleName = 5;
optional string displayName = 6;
}
message Phone {
enum Type {
HOME = 1;
MOBILE = 2;
WORK = 3;
CUSTOM = 4;
}
optional string value = 1;
optional Type type = 2;
optional string label = 3;
}
message Email {
enum Type {
HOME = 1;
MOBILE = 2;
WORK = 3;
CUSTOM = 4;
}
optional string value = 1;
optional Type type = 2;
optional string label = 3;
}
message PostalAddress {
enum Type {
HOME = 1;
WORK = 2;
CUSTOM = 3;
}
optional Type type = 1;
optional string label = 2;
optional string street = 3;
optional string pobox = 4;
optional string neighborhood = 5;
optional string city = 6;
optional string region = 7;
optional string postcode = 8;
optional string country = 9;
}
message Avatar {
optional AttachmentPointer avatar = 1;
optional bool isProfile = 2;
}
optional Name name = 1;
repeated Phone number = 3;
repeated Email email = 4;
repeated PostalAddress address = 5;
optional Avatar avatar = 6;
optional string organization = 7;
}
2019-01-16 03:03:56 +00:00
message Preview {
optional string url = 1;
optional string title = 2;
optional AttachmentPointer image = 3;
}
message Sticker {
optional bytes packId = 1;
optional bytes packKey = 2;
optional uint32 stickerId = 3;
optional AttachmentPointer data = 4;
}
2019-12-16 17:45:57 +00:00
message Reaction {
optional string emoji = 1;
optional bool remove = 2;
optional string targetAuthorE164 = 3;
optional string targetAuthorUuid = 4;
optional uint64 targetTimestamp = 5;
}
enum ProtocolVersion {
option allow_alias = true;
2019-10-03 19:03:46 +00:00
INITIAL = 0;
MESSAGE_TIMERS = 1;
VIEW_ONCE = 2;
VIEW_ONCE_VIDEO = 3;
2019-12-16 17:45:57 +00:00
REACTIONS = 4;
CURRENT = 4;
}
optional string body = 1;
repeated AttachmentPointer attachments = 2;
optional GroupContext group = 3;
optional uint32 flags = 4;
optional uint32 expireTimer = 5;
optional bytes profileKey = 6;
optional uint64 timestamp = 7;
optional Quote quote = 8;
repeated Contact contact = 9;
repeated Preview preview = 10;
optional Sticker sticker = 11;
optional uint32 requiredProtocolVersion = 12;
2019-08-05 20:53:15 +00:00
optional bool isViewOnce = 14;
2019-12-16 17:45:57 +00:00
optional Reaction reaction = 16;
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
}
message NullMessage {
optional bytes padding = 1;
}
message ReceiptMessage {
enum Type {
DELIVERY = 0;
READ = 1;
}
optional Type type = 1;
repeated uint64 timestamp = 2;
}
2018-11-14 19:10:32 +00:00
message TypingMessage {
enum Action {
STARTED = 0;
STOPPED = 1;
}
optional uint64 timestamp = 1;
optional Action action = 2;
optional bytes groupId = 3;
}
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
message Verified {
enum State {
DEFAULT = 0;
VERIFIED = 1;
UNVERIFIED = 2;
}
optional string destination = 1;
optional bytes identityKey = 2;
optional State state = 3;
optional bytes nullMessage = 4;
}
message SyncMessage {
message Sent {
message UnidentifiedDeliveryStatus {
optional string destination = 1;
optional bool unidentified = 2;
}
optional string destination = 1;
optional uint64 timestamp = 2;
optional DataMessage message = 3;
optional uint64 expirationStartTimestamp = 4;
repeated UnidentifiedDeliveryStatus unidentifiedStatus = 5;
optional bool isRecipientUpdate = 6 [default = false];
}
message Contacts {
optional AttachmentPointer blob = 1;
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
optional bool complete = 2 [default = false];
}
message Groups {
optional AttachmentPointer blob = 1;
}
message Blocked {
repeated string numbers = 1;
repeated bytes groupIds = 2;
}
2015-06-19 22:34:41 +00:00
message Request {
enum Type {
Feature: Blue check marks for read messages if opted in (#1489) * Refactor delivery receipt event handler * Rename the delivery receipt event For less ambiguity with read receipts. * Rename synced read event For less ambiguity with read receipts from other Signal users. * Add support for incoming receipt messages Handle ReceiptMessages, which may include encrypted delivery receipts or read receipts from recipients of our sent messages. // FREEBIE * Rename ReadReceipts to ReadSyncs * Render read messages with blue double checks * Send read receipts to senders of incoming messages // FREEBIE * Move ReadSyncs to their own file // FREEBIE * Fixup old comments on read receipts (now read syncs) And some variable renaming for extra clarity. // FREEBIE * Add global setting for read receipts Don't send read receipt messages unless the setting is enabled. Don't process read receipts if the setting is disabled. // FREEBIE * Sync read receipt setting from mobile Toggling this setting on your mobile device should sync it to Desktop. When linking, use the setting in the provisioning message. // FREEBIE * Send receipt messages silently Avoid generating phantom messages on ios // FREEBIE * Save recipients on the outgoing message models For accurate tracking and display of sent/delivered/read state, even if group membership changes later. // FREEBIE * Fix conversation type in profile key update handling // FREEBIE * Set recipients on synced sent messages * Render saved recipients in message detail if available For older messages, where we did not save the intended set of recipients at the time of sending, fall back to the current group membership. // FREEBIE * Record who has been successfully sent to // FREEBIE * Record who a message has been delivered to * Invert the not-clickable class * Fix readReceipt setting sync when linking * Render per recipient sent/delivered/read status In the message detail view for outgoing messages, render each recipient's individual sent/delivered/read status with respect to this message, as long as there are no errors associated with the recipient (ie, safety number changes, user not registered, etc...) since the error icon is displayed in that case. *Messages sent before this change may not have per-recipient status lists and will simply show no status icon. // FREEBIE * Add configuration sync request Send these requests in a one-off fashion when: 1. We have just setup from a chrome app import 2. We have just upgraded to read-receipt support // FREEBIE * Expose sendRequestConfigurationSyncMessage // FREEBIE * Fix handling of incoming delivery receipts - union with array FREEBIE
2017-10-04 22:28:43 +00:00
UNKNOWN = 0;
CONTACTS = 1;
GROUPS = 2;
BLOCKED = 3;
CONFIGURATION = 4;
2015-06-19 22:34:41 +00:00
}
2015-06-19 22:34:41 +00:00
optional Type type = 1;
}
message Read {
optional string sender = 1;
optional uint64 timestamp = 2;
}
2015-06-19 22:34:41 +00:00
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
message Configuration {
optional bool readReceipts = 1;
optional bool unidentifiedDeliveryIndicators = 2;
2018-11-14 19:10:32 +00:00
optional bool typingIndicators = 3;
2019-01-16 03:03:56 +00:00
optional bool linkPreviews = 4;
Feature: Blue check marks for read messages if opted in (#1489) * Refactor delivery receipt event handler * Rename the delivery receipt event For less ambiguity with read receipts. * Rename synced read event For less ambiguity with read receipts from other Signal users. * Add support for incoming receipt messages Handle ReceiptMessages, which may include encrypted delivery receipts or read receipts from recipients of our sent messages. // FREEBIE * Rename ReadReceipts to ReadSyncs * Render read messages with blue double checks * Send read receipts to senders of incoming messages // FREEBIE * Move ReadSyncs to their own file // FREEBIE * Fixup old comments on read receipts (now read syncs) And some variable renaming for extra clarity. // FREEBIE * Add global setting for read receipts Don't send read receipt messages unless the setting is enabled. Don't process read receipts if the setting is disabled. // FREEBIE * Sync read receipt setting from mobile Toggling this setting on your mobile device should sync it to Desktop. When linking, use the setting in the provisioning message. // FREEBIE * Send receipt messages silently Avoid generating phantom messages on ios // FREEBIE * Save recipients on the outgoing message models For accurate tracking and display of sent/delivered/read state, even if group membership changes later. // FREEBIE * Fix conversation type in profile key update handling // FREEBIE * Set recipients on synced sent messages * Render saved recipients in message detail if available For older messages, where we did not save the intended set of recipients at the time of sending, fall back to the current group membership. // FREEBIE * Record who has been successfully sent to // FREEBIE * Record who a message has been delivered to * Invert the not-clickable class * Fix readReceipt setting sync when linking * Render per recipient sent/delivered/read status In the message detail view for outgoing messages, render each recipient's individual sent/delivered/read status with respect to this message, as long as there are no errors associated with the recipient (ie, safety number changes, user not registered, etc...) since the error icon is displayed in that case. *Messages sent before this change may not have per-recipient status lists and will simply show no status icon. // FREEBIE * Add configuration sync request Send these requests in a one-off fashion when: 1. We have just setup from a chrome app import 2. We have just upgraded to read-receipt support // FREEBIE * Expose sendRequestConfigurationSyncMessage // FREEBIE * Fix handling of incoming delivery receipts - union with array FREEBIE
2017-10-04 22:28:43 +00:00
}
message StickerPackOperation {
enum Type {
INSTALL = 0;
REMOVE = 1;
}
optional bytes packId = 1;
optional bytes packKey = 2;
optional Type type = 3;
}
2019-08-05 20:53:15 +00:00
message ViewOnceOpen {
2019-06-26 19:33:13 +00:00
optional string sender = 1;
optional uint64 timestamp = 2;
}
optional Sent sent = 1;
optional Contacts contacts = 2;
optional Groups groups = 3;
optional Request request = 4;
repeated Read read = 5;
optional Blocked blocked = 6;
optional Verified verified = 7;
optional Configuration configuration = 9;
optional bytes padding = 8;
repeated StickerPackOperation stickerPackOperation = 10;
2019-08-05 20:53:15 +00:00
optional ViewOnceOpen viewOnceOpen = 11;
}
message AttachmentPointer {
2017-05-10 22:16:19 +00:00
enum Flags {
VOICE_MESSAGE = 1;
}
optional fixed64 id = 1;
optional string contentType = 2;
optional bytes key = 3;
2017-03-08 00:54:15 +00:00
optional uint32 size = 4;
optional bytes thumbnail = 5;
optional bytes digest = 6;
optional string fileName = 7;
2017-05-10 22:16:19 +00:00
optional uint32 flags = 8;
Sync Protocol Buffers with `libsignal-service-java` (#2046) Synchronizes our protocol buffers with `libsignal-service-java` project. **Changes** - [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`. ⚠️~~Workaround: Rename back to `textsecure`.~~ Changed all protobuf `package` names across our project. - [x] Rename `java_` metadata. - [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`. - [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be unreferenced in our project. - [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems to be unused) - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to `configuration`. - [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`. - [x] Add `AttachmentPointer` `width` and `height`. - [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to match server. --- commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:41:24 2018 -0500 Rename protobuf `package`: `textsecure` --> `signalservice` Brings us closer to `libsignal-service-java`. commit 91612880a5bf2c9ae8a9334877ac24e91102b905 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 19:19:35 2018 -0500 Rename `SyncMessage.Settings` to `SyncMessage.Configuration` commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 20:16:43 2018 -0500 Rename `ReadReceipt` `timestamps` --> `timestamp` commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Wed Feb 14 18:43:42 2018 -0500 Rename `IncomingPushMessageSignal.proto` to `SignalService.proto` This matches the `libsignal-service-java` filename. commit fd4bfd76af57ffa44178caf21d350cca211dc048 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:24:36 2018 -0500 Revert protobuf `package` to `textsecure` This was a breaking change and would need to be introduced with additional changes. commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5 Author: Daniel Gasienica <daniel@gasienica.ch> Date: Tue Feb 13 16:09:55 2018 -0500 Sync service protocol buffers with Java project Snapshot: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
2018-02-15 19:59:46 +00:00
optional uint32 width = 9;
optional uint32 height = 10;
optional string caption = 11;
}
message GroupContext {
enum Type {
UNKNOWN = 0;
UPDATE = 1;
DELIVER = 2;
QUIT = 3;
REQUEST_INFO = 4;
}
optional bytes id = 1;
optional Type type = 2;
optional string name = 3;
repeated string members = 4;
optional AttachmentPointer avatar = 5;
}
message ContactDetails {
message Avatar {
optional string contentType = 1;
optional uint32 length = 2;
}
optional string number = 1;
optional string name = 2;
optional Avatar avatar = 3;
optional string color = 4;
optional Verified verified = 5;
optional bytes profileKey = 6;
optional bool blocked = 7;
optional uint32 expireTimer = 8;
}
message GroupDetails {
message Avatar {
optional string contentType = 1;
optional uint32 length = 2;
}
optional bytes id = 1;
optional string name = 2;
repeated string members = 3;
optional Avatar avatar = 4;
optional bool active = 5 [default = true];
optional uint32 expireTimer = 6;
optional string color = 7;
optional bool blocked = 8;
}