IncomingPushMessageSignal.proto 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package textsecure;
  2. option java_package = "org.whispersystems.textsecure.internal.push";
  3. option java_outer_classname = "TextSecureProtos";
  4. message Envelope {
  5. enum Type {
  6. UNKNOWN = 0;
  7. CIPHERTEXT = 1;
  8. KEY_EXCHANGE = 2;
  9. PREKEY_BUNDLE = 3;
  10. RECEIPT = 5;
  11. }
  12. optional Type type = 1;
  13. optional string source = 2;
  14. optional uint32 sourceDevice = 7;
  15. optional string relay = 3;
  16. optional uint64 timestamp = 5;
  17. optional bytes legacyMessage = 6; // Contains an encrypted DataMessage
  18. optional bytes content = 8; // Contains an encrypted Content
  19. }
  20. message Content {
  21. optional DataMessage dataMessage = 1;
  22. optional SyncMessage syncMessage = 2;
  23. }
  24. message DataMessage {
  25. enum Flags {
  26. END_SESSION = 1;
  27. EXPIRATION_TIMER_UPDATE = 2;
  28. }
  29. optional string body = 1;
  30. repeated AttachmentPointer attachments = 2;
  31. optional GroupContext group = 3;
  32. optional uint32 flags = 4;
  33. optional uint32 expireTimer = 5;
  34. }
  35. message SyncMessage {
  36. message Sent {
  37. optional string destination = 1;
  38. optional uint64 timestamp = 2;
  39. optional DataMessage message = 3;
  40. optional uint64 expirationStartTimestamp = 4;
  41. }
  42. message Contacts {
  43. optional AttachmentPointer blob = 1;
  44. }
  45. message Groups {
  46. optional AttachmentPointer blob = 1;
  47. }
  48. message Blocked {
  49. repeated string numbers = 1;
  50. }
  51. message Request {
  52. enum Type {
  53. UNKNOWN = 0;
  54. CONTACTS = 1;
  55. GROUPS = 2;
  56. BLOCKED = 3;
  57. }
  58. optional Type type = 1;
  59. }
  60. message Read {
  61. optional string sender = 1;
  62. optional uint64 timestamp = 2;
  63. }
  64. optional Sent sent = 1;
  65. optional Contacts contacts = 2;
  66. optional Groups groups = 3;
  67. optional Request request = 4;
  68. repeated Read read = 5;
  69. optional Blocked blocked = 6;
  70. }
  71. message AttachmentPointer {
  72. optional fixed64 id = 1;
  73. optional string contentType = 2;
  74. optional bytes key = 3;
  75. }
  76. message GroupContext {
  77. enum Type {
  78. UNKNOWN = 0;
  79. UPDATE = 1;
  80. DELIVER = 2;
  81. QUIT = 3;
  82. }
  83. optional bytes id = 1;
  84. optional Type type = 2;
  85. optional string name = 3;
  86. repeated string members = 4;
  87. optional AttachmentPointer avatar = 5;
  88. }
  89. message Avatar {
  90. optional string contentType = 1;
  91. optional uint32 length = 2;
  92. }
  93. message GroupDetails {
  94. optional bytes id = 1;
  95. optional string name = 2;
  96. repeated string members = 3;
  97. optional Avatar avatar = 4;
  98. optional bool active = 5 [default = true];
  99. }
  100. message ContactDetails {
  101. optional string number = 1;
  102. optional string name = 2;
  103. optional Avatar avatar = 3;
  104. optional string color = 4;
  105. }