libsignal-skyzopedia 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,948 @@
1
+ /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
2
+ "use strict";
3
+
4
+ var $protobuf = require("protobufjs/minimal");
5
+
6
+ // Common aliases
7
+ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
8
+
9
+ // Exported root namespace
10
+ var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
11
+
12
+ $root.textsecure = (function () {
13
+
14
+ /**
15
+ * Namespace textsecure.
16
+ * @exports textsecure
17
+ * @namespace
18
+ */
19
+ var textsecure = {};
20
+
21
+ textsecure.WhisperMessage = (function () {
22
+
23
+ /**
24
+ * Properties of a WhisperMessage.
25
+ * @memberof textsecure
26
+ * @interface IWhisperMessage
27
+ * @property {Uint8Array|null} [ephemeralKey] WhisperMessage ephemeralKey
28
+ * @property {number|null} [counter] WhisperMessage counter
29
+ * @property {number|null} [previousCounter] WhisperMessage previousCounter
30
+ * @property {Uint8Array|null} [ciphertext] WhisperMessage ciphertext
31
+ */
32
+
33
+ /**
34
+ * Constructs a new WhisperMessage.
35
+ * @memberof textsecure
36
+ * @classdesc Represents a WhisperMessage.
37
+ * @implements IWhisperMessage
38
+ * @constructor
39
+ * @param {textsecure.IWhisperMessage=} [properties] Properties to set
40
+ */
41
+ function WhisperMessage(properties) {
42
+ if (properties)
43
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
44
+ if (properties[keys[i]] != null)
45
+ this[keys[i]] = properties[keys[i]];
46
+ }
47
+
48
+ /**
49
+ * WhisperMessage ephemeralKey.
50
+ * @member {Uint8Array} ephemeralKey
51
+ * @memberof textsecure.WhisperMessage
52
+ * @instance
53
+ */
54
+ WhisperMessage.prototype.ephemeralKey = $util.newBuffer([]);
55
+
56
+ /**
57
+ * WhisperMessage counter.
58
+ * @member {number} counter
59
+ * @memberof textsecure.WhisperMessage
60
+ * @instance
61
+ */
62
+ WhisperMessage.prototype.counter = 0;
63
+
64
+ /**
65
+ * WhisperMessage previousCounter.
66
+ * @member {number} previousCounter
67
+ * @memberof textsecure.WhisperMessage
68
+ * @instance
69
+ */
70
+ WhisperMessage.prototype.previousCounter = 0;
71
+
72
+ /**
73
+ * WhisperMessage ciphertext.
74
+ * @member {Uint8Array} ciphertext
75
+ * @memberof textsecure.WhisperMessage
76
+ * @instance
77
+ */
78
+ WhisperMessage.prototype.ciphertext = $util.newBuffer([]);
79
+
80
+ /**
81
+ * Creates a new WhisperMessage instance using the specified properties.
82
+ * @function create
83
+ * @memberof textsecure.WhisperMessage
84
+ * @static
85
+ * @param {textsecure.IWhisperMessage=} [properties] Properties to set
86
+ * @returns {textsecure.WhisperMessage} WhisperMessage instance
87
+ */
88
+ WhisperMessage.create = function create(properties) {
89
+ return new WhisperMessage(properties);
90
+ };
91
+
92
+ /**
93
+ * Encodes the specified WhisperMessage message. Does not implicitly {@link textsecure.WhisperMessage.verify|verify} messages.
94
+ * @function encode
95
+ * @memberof textsecure.WhisperMessage
96
+ * @static
97
+ * @param {textsecure.IWhisperMessage} message WhisperMessage message or plain object to encode
98
+ * @param {$protobuf.Writer} [writer] Writer to encode to
99
+ * @returns {$protobuf.Writer} Writer
100
+ */
101
+ WhisperMessage.encode = function encode(message, writer) {
102
+ if (!writer)
103
+ writer = $Writer.create();
104
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
105
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ephemeralKey);
106
+ if (message.counter != null && message.hasOwnProperty("counter"))
107
+ writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.counter);
108
+ if (message.previousCounter != null && message.hasOwnProperty("previousCounter"))
109
+ writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.previousCounter);
110
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))
111
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.ciphertext);
112
+ return writer;
113
+ };
114
+
115
+ /**
116
+ * Encodes the specified WhisperMessage message, length delimited. Does not implicitly {@link textsecure.WhisperMessage.verify|verify} messages.
117
+ * @function encodeDelimited
118
+ * @memberof textsecure.WhisperMessage
119
+ * @static
120
+ * @param {textsecure.IWhisperMessage} message WhisperMessage message or plain object to encode
121
+ * @param {$protobuf.Writer} [writer] Writer to encode to
122
+ * @returns {$protobuf.Writer} Writer
123
+ */
124
+ WhisperMessage.encodeDelimited = function encodeDelimited(message, writer) {
125
+ return this.encode(message, writer).ldelim();
126
+ };
127
+
128
+ /**
129
+ * Decodes a WhisperMessage message from the specified reader or buffer.
130
+ * @function decode
131
+ * @memberof textsecure.WhisperMessage
132
+ * @static
133
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
134
+ * @param {number} [length] Message length if known beforehand
135
+ * @returns {textsecure.WhisperMessage} WhisperMessage
136
+ * @throws {Error} If the payload is not a reader or valid buffer
137
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
138
+ */
139
+ WhisperMessage.decode = function decode(reader, length) {
140
+ if (!(reader instanceof $Reader)) {
141
+ reader = $Reader.create(reader);
142
+ }
143
+
144
+ var end = length === undefined ? reader.len : reader.pos + length;
145
+ var message = new $root.textsecure.WhisperMessage();
146
+
147
+ for (; reader.pos < end;) {
148
+ var tag = reader.uint32();
149
+ switch (tag >>> 3) {
150
+ case 1:
151
+ message.ephemeralKey = reader.bytes();
152
+ break;
153
+ case 2:
154
+ message.counter = reader.uint32();
155
+ break;
156
+ case 3:
157
+ message.previousCounter = reader.uint32();
158
+ break;
159
+ case 4:
160
+ message.ciphertext = reader.bytes();
161
+ break;
162
+ default:
163
+ reader.skipType(tag & 7);
164
+ break;
165
+ }
166
+ }
167
+
168
+ return message;
169
+ };
170
+
171
+ /**
172
+ * Decodes a WhisperMessage message from the specified reader or buffer, length delimited.
173
+ * @function decodeDelimited
174
+ * @memberof textsecure.WhisperMessage
175
+ * @static
176
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
177
+ * @returns {textsecure.WhisperMessage} WhisperMessage
178
+ * @throws {Error} If the payload is not a reader or valid buffer
179
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
180
+ */
181
+ WhisperMessage.decodeDelimited = function decodeDelimited(reader) {
182
+ if (!(reader instanceof $Reader))
183
+ reader = new $Reader(reader);
184
+ return this.decode(reader, reader.uint32());
185
+ };
186
+
187
+ /**
188
+ * Verifies a WhisperMessage message.
189
+ * @function verify
190
+ * @memberof textsecure.WhisperMessage
191
+ * @static
192
+ * @param {Object.<string,*>} message Plain object to verify
193
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
194
+ */
195
+ WhisperMessage.verify = function verify(message) {
196
+ if (typeof message !== "object" || message === null)
197
+ return "object expected";
198
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
199
+ if (!(message.ephemeralKey && typeof message.ephemeralKey.length === "number" || $util.isString(message.ephemeralKey)))
200
+ return "ephemeralKey: buffer expected";
201
+ if (message.counter != null && message.hasOwnProperty("counter"))
202
+ if (!$util.isInteger(message.counter))
203
+ return "counter: integer expected";
204
+ if (message.previousCounter != null && message.hasOwnProperty("previousCounter"))
205
+ if (!$util.isInteger(message.previousCounter))
206
+ return "previousCounter: integer expected";
207
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))
208
+ if (!(message.ciphertext && typeof message.ciphertext.length === "number" || $util.isString(message.ciphertext)))
209
+ return "ciphertext: buffer expected";
210
+ return null;
211
+ };
212
+
213
+ /**
214
+ * Creates a WhisperMessage message from a plain object. Also converts values to their respective internal types.
215
+ * @function fromObject
216
+ * @memberof textsecure.WhisperMessage
217
+ * @static
218
+ * @param {Object.<string,*>} object Plain object
219
+ * @returns {textsecure.WhisperMessage} WhisperMessage
220
+ */
221
+ WhisperMessage.fromObject = function fromObject(object) {
222
+ if (object instanceof $root.textsecure.WhisperMessage)
223
+ return object;
224
+ var message = new $root.textsecure.WhisperMessage();
225
+ if (object.ephemeralKey != null)
226
+ if (typeof object.ephemeralKey === "string")
227
+ $util.base64.decode(object.ephemeralKey, message.ephemeralKey = $util.newBuffer($util.base64.length(object.ephemeralKey)), 0);
228
+ else if (object.ephemeralKey.length)
229
+ message.ephemeralKey = object.ephemeralKey;
230
+ if (object.counter != null)
231
+ message.counter = object.counter >>> 0;
232
+ if (object.previousCounter != null)
233
+ message.previousCounter = object.previousCounter >>> 0;
234
+ if (object.ciphertext != null)
235
+ if (typeof object.ciphertext === "string")
236
+ $util.base64.decode(object.ciphertext, message.ciphertext = $util.newBuffer($util.base64.length(object.ciphertext)), 0);
237
+ else if (object.ciphertext.length)
238
+ message.ciphertext = object.ciphertext;
239
+ return message;
240
+ };
241
+
242
+ /**
243
+ * Creates a plain object from a WhisperMessage message. Also converts values to other types if specified.
244
+ * @function toObject
245
+ * @memberof textsecure.WhisperMessage
246
+ * @static
247
+ * @param {textsecure.WhisperMessage} message WhisperMessage
248
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
249
+ * @returns {Object.<string,*>} Plain object
250
+ */
251
+ WhisperMessage.toObject = function toObject(message, options) {
252
+ if (!options)
253
+ options = {};
254
+ var object = {};
255
+ if (options.defaults) {
256
+ if (options.bytes === String)
257
+ object.ephemeralKey = "";
258
+ else {
259
+ object.ephemeralKey = [];
260
+ if (options.bytes !== Array)
261
+ object.ephemeralKey = $util.newBuffer(object.ephemeralKey);
262
+ }
263
+ object.counter = 0;
264
+ object.previousCounter = 0;
265
+ if (options.bytes === String)
266
+ object.ciphertext = "";
267
+ else {
268
+ object.ciphertext = [];
269
+ if (options.bytes !== Array)
270
+ object.ciphertext = $util.newBuffer(object.ciphertext);
271
+ }
272
+ }
273
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
274
+ object.ephemeralKey = options.bytes === String ? $util.base64.encode(message.ephemeralKey, 0, message.ephemeralKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.ephemeralKey) : message.ephemeralKey;
275
+ if (message.counter != null && message.hasOwnProperty("counter"))
276
+ object.counter = message.counter;
277
+ if (message.previousCounter != null && message.hasOwnProperty("previousCounter"))
278
+ object.previousCounter = message.previousCounter;
279
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))
280
+ object.ciphertext = options.bytes === String ? $util.base64.encode(message.ciphertext, 0, message.ciphertext.length) : options.bytes === Array ? Array.prototype.slice.call(message.ciphertext) : message.ciphertext;
281
+ return object;
282
+ };
283
+
284
+ /**
285
+ * Converts this WhisperMessage to JSON.
286
+ * @function toJSON
287
+ * @memberof textsecure.WhisperMessage
288
+ * @instance
289
+ * @returns {Object.<string,*>} JSON object
290
+ */
291
+ WhisperMessage.prototype.toJSON = function toJSON() {
292
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
293
+ };
294
+
295
+ return WhisperMessage;
296
+ })();
297
+
298
+ textsecure.PreKeyWhisperMessage = (function () {
299
+
300
+ /**
301
+ * Properties of a PreKeyWhisperMessage.
302
+ * @memberof textsecure
303
+ * @interface IPreKeyWhisperMessage
304
+ * @property {number|null} [registrationId] PreKeyWhisperMessage registrationId
305
+ * @property {number|null} [preKeyId] PreKeyWhisperMessage preKeyId
306
+ * @property {number|null} [signedPreKeyId] PreKeyWhisperMessage signedPreKeyId
307
+ * @property {Uint8Array|null} [baseKey] PreKeyWhisperMessage baseKey
308
+ * @property {Uint8Array|null} [identityKey] PreKeyWhisperMessage identityKey
309
+ * @property {Uint8Array|null} [message] PreKeyWhisperMessage message
310
+ */
311
+
312
+ /**
313
+ * Constructs a new PreKeyWhisperMessage.
314
+ * @memberof textsecure
315
+ * @classdesc Represents a PreKeyWhisperMessage.
316
+ * @implements IPreKeyWhisperMessage
317
+ * @constructor
318
+ * @param {textsecure.IPreKeyWhisperMessage=} [properties] Properties to set
319
+ */
320
+ function PreKeyWhisperMessage(properties) {
321
+ if (properties)
322
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
323
+ if (properties[keys[i]] != null)
324
+ this[keys[i]] = properties[keys[i]];
325
+ }
326
+
327
+ /**
328
+ * PreKeyWhisperMessage registrationId.
329
+ * @member {number} registrationId
330
+ * @memberof textsecure.PreKeyWhisperMessage
331
+ * @instance
332
+ */
333
+ PreKeyWhisperMessage.prototype.registrationId = 0;
334
+
335
+ /**
336
+ * PreKeyWhisperMessage preKeyId.
337
+ * @member {number} preKeyId
338
+ * @memberof textsecure.PreKeyWhisperMessage
339
+ * @instance
340
+ */
341
+ PreKeyWhisperMessage.prototype.preKeyId = 0;
342
+
343
+ /**
344
+ * PreKeyWhisperMessage signedPreKeyId.
345
+ * @member {number} signedPreKeyId
346
+ * @memberof textsecure.PreKeyWhisperMessage
347
+ * @instance
348
+ */
349
+ PreKeyWhisperMessage.prototype.signedPreKeyId = 0;
350
+
351
+ /**
352
+ * PreKeyWhisperMessage baseKey.
353
+ * @member {Uint8Array} baseKey
354
+ * @memberof textsecure.PreKeyWhisperMessage
355
+ * @instance
356
+ */
357
+ PreKeyWhisperMessage.prototype.baseKey = $util.newBuffer([]);
358
+
359
+ /**
360
+ * PreKeyWhisperMessage identityKey.
361
+ * @member {Uint8Array} identityKey
362
+ * @memberof textsecure.PreKeyWhisperMessage
363
+ * @instance
364
+ */
365
+ PreKeyWhisperMessage.prototype.identityKey = $util.newBuffer([]);
366
+
367
+ /**
368
+ * PreKeyWhisperMessage message.
369
+ * @member {Uint8Array} message
370
+ * @memberof textsecure.PreKeyWhisperMessage
371
+ * @instance
372
+ */
373
+ PreKeyWhisperMessage.prototype.message = $util.newBuffer([]);
374
+
375
+ /**
376
+ * Creates a new PreKeyWhisperMessage instance using the specified properties.
377
+ * @function create
378
+ * @memberof textsecure.PreKeyWhisperMessage
379
+ * @static
380
+ * @param {textsecure.IPreKeyWhisperMessage=} [properties] Properties to set
381
+ * @returns {textsecure.PreKeyWhisperMessage} PreKeyWhisperMessage instance
382
+ */
383
+ PreKeyWhisperMessage.create = function create(properties) {
384
+ return new PreKeyWhisperMessage(properties);
385
+ };
386
+
387
+ /**
388
+ * Encodes the specified PreKeyWhisperMessage message. Does not implicitly {@link textsecure.PreKeyWhisperMessage.verify|verify} messages.
389
+ * @function encode
390
+ * @memberof textsecure.PreKeyWhisperMessage
391
+ * @static
392
+ * @param {textsecure.IPreKeyWhisperMessage} message PreKeyWhisperMessage message or plain object to encode
393
+ * @param {$protobuf.Writer} [writer] Writer to encode to
394
+ * @returns {$protobuf.Writer} Writer
395
+ */
396
+ PreKeyWhisperMessage.encode = function encode(message, writer) {
397
+ if (!writer)
398
+ writer = $Writer.create();
399
+ if (message.preKeyId != null && message.hasOwnProperty("preKeyId"))
400
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.preKeyId);
401
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
402
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.baseKey);
403
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
404
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.identityKey);
405
+ if (message.message != null && message.hasOwnProperty("message"))
406
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.message);
407
+ if (message.registrationId != null && message.hasOwnProperty("registrationId"))
408
+ writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.registrationId);
409
+ if (message.signedPreKeyId != null && message.hasOwnProperty("signedPreKeyId"))
410
+ writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.signedPreKeyId);
411
+ return writer;
412
+ };
413
+
414
+ /**
415
+ * Encodes the specified PreKeyWhisperMessage message, length delimited. Does not implicitly {@link textsecure.PreKeyWhisperMessage.verify|verify} messages.
416
+ * @function encodeDelimited
417
+ * @memberof textsecure.PreKeyWhisperMessage
418
+ * @static
419
+ * @param {textsecure.IPreKeyWhisperMessage} message PreKeyWhisperMessage message or plain object to encode
420
+ * @param {$protobuf.Writer} [writer] Writer to encode to
421
+ * @returns {$protobuf.Writer} Writer
422
+ */
423
+ PreKeyWhisperMessage.encodeDelimited = function encodeDelimited(message, writer) {
424
+ return this.encode(message, writer).ldelim();
425
+ };
426
+
427
+ /**
428
+ * Decodes a PreKeyWhisperMessage message from the specified reader or buffer.
429
+ * @function decode
430
+ * @memberof textsecure.PreKeyWhisperMessage
431
+ * @static
432
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
433
+ * @param {number} [length] Message length if known beforehand
434
+ * @returns {textsecure.PreKeyWhisperMessage} PreKeyWhisperMessage
435
+ * @throws {Error} If the payload is not a reader or valid buffer
436
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
437
+ */
438
+ PreKeyWhisperMessage.decode = function decode(reader, length) {
439
+ if (!(reader instanceof $Reader)) {
440
+ reader = $Reader.create(reader);
441
+ }
442
+
443
+ var end = length === undefined ? reader.len : reader.pos + length;
444
+ var message = new $root.textsecure.PreKeyWhisperMessage();
445
+
446
+ for (; reader.pos < end;) {
447
+ var tag = reader.uint32();
448
+ switch (tag >>> 3) {
449
+ case 5:
450
+ message.registrationId = reader.uint32();
451
+ break;
452
+ case 1:
453
+ message.preKeyId = reader.uint32();
454
+ break;
455
+ case 6:
456
+ message.signedPreKeyId = reader.uint32();
457
+ break;
458
+ case 2:
459
+ message.baseKey = reader.bytes();
460
+ break;
461
+ case 3:
462
+ message.identityKey = reader.bytes();
463
+ break;
464
+ case 4:
465
+ message.message = reader.bytes();
466
+ break;
467
+ default:
468
+ reader.skipType(tag & 7);
469
+ break;
470
+ }
471
+ }
472
+
473
+ return message;
474
+ };
475
+
476
+ /**
477
+ * Decodes a PreKeyWhisperMessage message from the specified reader or buffer, length delimited.
478
+ * @function decodeDelimited
479
+ * @memberof textsecure.PreKeyWhisperMessage
480
+ * @static
481
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
482
+ * @returns {textsecure.PreKeyWhisperMessage} PreKeyWhisperMessage
483
+ * @throws {Error} If the payload is not a reader or valid buffer
484
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
485
+ */
486
+ PreKeyWhisperMessage.decodeDelimited = function decodeDelimited(reader) {
487
+ if (!(reader instanceof $Reader))
488
+ reader = new $Reader(reader);
489
+ return this.decode(reader, reader.uint32());
490
+ };
491
+
492
+ /**
493
+ * Verifies a PreKeyWhisperMessage message.
494
+ * @function verify
495
+ * @memberof textsecure.PreKeyWhisperMessage
496
+ * @static
497
+ * @param {Object.<string,*>} message Plain object to verify
498
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
499
+ */
500
+ PreKeyWhisperMessage.verify = function verify(message) {
501
+ if (typeof message !== "object" || message === null)
502
+ return "object expected";
503
+ if (message.registrationId != null && message.hasOwnProperty("registrationId"))
504
+ if (!$util.isInteger(message.registrationId))
505
+ return "registrationId: integer expected";
506
+ if (message.preKeyId != null && message.hasOwnProperty("preKeyId"))
507
+ if (!$util.isInteger(message.preKeyId))
508
+ return "preKeyId: integer expected";
509
+ if (message.signedPreKeyId != null && message.hasOwnProperty("signedPreKeyId"))
510
+ if (!$util.isInteger(message.signedPreKeyId))
511
+ return "signedPreKeyId: integer expected";
512
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
513
+ if (!(message.baseKey && typeof message.baseKey.length === "number" || $util.isString(message.baseKey)))
514
+ return "baseKey: buffer expected";
515
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
516
+ if (!(message.identityKey && typeof message.identityKey.length === "number" || $util.isString(message.identityKey)))
517
+ return "identityKey: buffer expected";
518
+ if (message.message != null && message.hasOwnProperty("message"))
519
+ if (!(message.message && typeof message.message.length === "number" || $util.isString(message.message)))
520
+ return "message: buffer expected";
521
+ return null;
522
+ };
523
+
524
+ /**
525
+ * Creates a PreKeyWhisperMessage message from a plain object. Also converts values to their respective internal types.
526
+ * @function fromObject
527
+ * @memberof textsecure.PreKeyWhisperMessage
528
+ * @static
529
+ * @param {Object.<string,*>} object Plain object
530
+ * @returns {textsecure.PreKeyWhisperMessage} PreKeyWhisperMessage
531
+ */
532
+ PreKeyWhisperMessage.fromObject = function fromObject(object) {
533
+ if (object instanceof $root.textsecure.PreKeyWhisperMessage)
534
+ return object;
535
+ var message = new $root.textsecure.PreKeyWhisperMessage();
536
+ if (object.registrationId != null)
537
+ message.registrationId = object.registrationId >>> 0;
538
+ if (object.preKeyId != null)
539
+ message.preKeyId = object.preKeyId >>> 0;
540
+ if (object.signedPreKeyId != null)
541
+ message.signedPreKeyId = object.signedPreKeyId >>> 0;
542
+ if (object.baseKey != null)
543
+ if (typeof object.baseKey === "string")
544
+ $util.base64.decode(object.baseKey, message.baseKey = $util.newBuffer($util.base64.length(object.baseKey)), 0);
545
+ else if (object.baseKey.length)
546
+ message.baseKey = object.baseKey;
547
+ if (object.identityKey != null)
548
+ if (typeof object.identityKey === "string")
549
+ $util.base64.decode(object.identityKey, message.identityKey = $util.newBuffer($util.base64.length(object.identityKey)), 0);
550
+ else if (object.identityKey.length)
551
+ message.identityKey = object.identityKey;
552
+ if (object.message != null)
553
+ if (typeof object.message === "string")
554
+ $util.base64.decode(object.message, message.message = $util.newBuffer($util.base64.length(object.message)), 0);
555
+ else if (object.message.length)
556
+ message.message = object.message;
557
+ return message;
558
+ };
559
+
560
+ /**
561
+ * Creates a plain object from a PreKeyWhisperMessage message. Also converts values to other types if specified.
562
+ * @function toObject
563
+ * @memberof textsecure.PreKeyWhisperMessage
564
+ * @static
565
+ * @param {textsecure.PreKeyWhisperMessage} message PreKeyWhisperMessage
566
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
567
+ * @returns {Object.<string,*>} Plain object
568
+ */
569
+ PreKeyWhisperMessage.toObject = function toObject(message, options) {
570
+ if (!options)
571
+ options = {};
572
+ var object = {};
573
+ if (options.defaults) {
574
+ object.preKeyId = 0;
575
+ if (options.bytes === String)
576
+ object.baseKey = "";
577
+ else {
578
+ object.baseKey = [];
579
+ if (options.bytes !== Array)
580
+ object.baseKey = $util.newBuffer(object.baseKey);
581
+ }
582
+ if (options.bytes === String)
583
+ object.identityKey = "";
584
+ else {
585
+ object.identityKey = [];
586
+ if (options.bytes !== Array)
587
+ object.identityKey = $util.newBuffer(object.identityKey);
588
+ }
589
+ if (options.bytes === String)
590
+ object.message = "";
591
+ else {
592
+ object.message = [];
593
+ if (options.bytes !== Array)
594
+ object.message = $util.newBuffer(object.message);
595
+ }
596
+ object.registrationId = 0;
597
+ object.signedPreKeyId = 0;
598
+ }
599
+ if (message.preKeyId != null && message.hasOwnProperty("preKeyId"))
600
+ object.preKeyId = message.preKeyId;
601
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
602
+ object.baseKey = options.bytes === String ? $util.base64.encode(message.baseKey, 0, message.baseKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.baseKey) : message.baseKey;
603
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
604
+ object.identityKey = options.bytes === String ? $util.base64.encode(message.identityKey, 0, message.identityKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityKey) : message.identityKey;
605
+ if (message.message != null && message.hasOwnProperty("message"))
606
+ object.message = options.bytes === String ? $util.base64.encode(message.message, 0, message.message.length) : options.bytes === Array ? Array.prototype.slice.call(message.message) : message.message;
607
+ if (message.registrationId != null && message.hasOwnProperty("registrationId"))
608
+ object.registrationId = message.registrationId;
609
+ if (message.signedPreKeyId != null && message.hasOwnProperty("signedPreKeyId"))
610
+ object.signedPreKeyId = message.signedPreKeyId;
611
+ return object;
612
+ };
613
+
614
+ /**
615
+ * Converts this PreKeyWhisperMessage to JSON.
616
+ * @function toJSON
617
+ * @memberof textsecure.PreKeyWhisperMessage
618
+ * @instance
619
+ * @returns {Object.<string,*>} JSON object
620
+ */
621
+ PreKeyWhisperMessage.prototype.toJSON = function toJSON() {
622
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
623
+ };
624
+
625
+ return PreKeyWhisperMessage;
626
+ })();
627
+
628
+ textsecure.KeyExchangeMessage = (function () {
629
+
630
+ /**
631
+ * Properties of a KeyExchangeMessage.
632
+ * @memberof textsecure
633
+ * @interface IKeyExchangeMessage
634
+ * @property {number|null} [id] KeyExchangeMessage id
635
+ * @property {Uint8Array|null} [baseKey] KeyExchangeMessage baseKey
636
+ * @property {Uint8Array|null} [ephemeralKey] KeyExchangeMessage ephemeralKey
637
+ * @property {Uint8Array|null} [identityKey] KeyExchangeMessage identityKey
638
+ * @property {Uint8Array|null} [baseKeySignature] KeyExchangeMessage baseKeySignature
639
+ */
640
+
641
+ /**
642
+ * Constructs a new KeyExchangeMessage.
643
+ * @memberof textsecure
644
+ * @classdesc Represents a KeyExchangeMessage.
645
+ * @implements IKeyExchangeMessage
646
+ * @constructor
647
+ * @param {textsecure.IKeyExchangeMessage=} [properties] Properties to set
648
+ */
649
+ function KeyExchangeMessage(properties) {
650
+ if (properties)
651
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
652
+ if (properties[keys[i]] != null)
653
+ this[keys[i]] = properties[keys[i]];
654
+ }
655
+
656
+ /**
657
+ * KeyExchangeMessage id.
658
+ * @member {number} id
659
+ * @memberof textsecure.KeyExchangeMessage
660
+ * @instance
661
+ */
662
+ KeyExchangeMessage.prototype.id = 0;
663
+
664
+ /**
665
+ * KeyExchangeMessage baseKey.
666
+ * @member {Uint8Array} baseKey
667
+ * @memberof textsecure.KeyExchangeMessage
668
+ * @instance
669
+ */
670
+ KeyExchangeMessage.prototype.baseKey = $util.newBuffer([]);
671
+
672
+ /**
673
+ * KeyExchangeMessage ephemeralKey.
674
+ * @member {Uint8Array} ephemeralKey
675
+ * @memberof textsecure.KeyExchangeMessage
676
+ * @instance
677
+ */
678
+ KeyExchangeMessage.prototype.ephemeralKey = $util.newBuffer([]);
679
+
680
+ /**
681
+ * KeyExchangeMessage identityKey.
682
+ * @member {Uint8Array} identityKey
683
+ * @memberof textsecure.KeyExchangeMessage
684
+ * @instance
685
+ */
686
+ KeyExchangeMessage.prototype.identityKey = $util.newBuffer([]);
687
+
688
+ /**
689
+ * KeyExchangeMessage baseKeySignature.
690
+ * @member {Uint8Array} baseKeySignature
691
+ * @memberof textsecure.KeyExchangeMessage
692
+ * @instance
693
+ */
694
+ KeyExchangeMessage.prototype.baseKeySignature = $util.newBuffer([]);
695
+
696
+ /**
697
+ * Creates a new KeyExchangeMessage instance using the specified properties.
698
+ * @function create
699
+ * @memberof textsecure.KeyExchangeMessage
700
+ * @static
701
+ * @param {textsecure.IKeyExchangeMessage=} [properties] Properties to set
702
+ * @returns {textsecure.KeyExchangeMessage} KeyExchangeMessage instance
703
+ */
704
+ KeyExchangeMessage.create = function create(properties) {
705
+ return new KeyExchangeMessage(properties);
706
+ };
707
+
708
+ /**
709
+ * Encodes the specified KeyExchangeMessage message. Does not implicitly {@link textsecure.KeyExchangeMessage.verify|verify} messages.
710
+ * @function encode
711
+ * @memberof textsecure.KeyExchangeMessage
712
+ * @static
713
+ * @param {textsecure.IKeyExchangeMessage} message KeyExchangeMessage message or plain object to encode
714
+ * @param {$protobuf.Writer} [writer] Writer to encode to
715
+ * @returns {$protobuf.Writer} Writer
716
+ */
717
+ KeyExchangeMessage.encode = function encode(message, writer) {
718
+ if (!writer)
719
+ writer = $Writer.create();
720
+ if (message.id != null && message.hasOwnProperty("id"))
721
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);
722
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
723
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.baseKey);
724
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
725
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.ephemeralKey);
726
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
727
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.identityKey);
728
+ if (message.baseKeySignature != null && message.hasOwnProperty("baseKeySignature"))
729
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.baseKeySignature);
730
+ return writer;
731
+ };
732
+
733
+ /**
734
+ * Encodes the specified KeyExchangeMessage message, length delimited. Does not implicitly {@link textsecure.KeyExchangeMessage.verify|verify} messages.
735
+ * @function encodeDelimited
736
+ * @memberof textsecure.KeyExchangeMessage
737
+ * @static
738
+ * @param {textsecure.IKeyExchangeMessage} message KeyExchangeMessage message or plain object to encode
739
+ * @param {$protobuf.Writer} [writer] Writer to encode to
740
+ * @returns {$protobuf.Writer} Writer
741
+ */
742
+ KeyExchangeMessage.encodeDelimited = function encodeDelimited(message, writer) {
743
+ return this.encode(message, writer).ldelim();
744
+ };
745
+
746
+ /**
747
+ * Decodes a KeyExchangeMessage message from the specified reader or buffer.
748
+ * @function decode
749
+ * @memberof textsecure.KeyExchangeMessage
750
+ * @static
751
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
752
+ * @param {number} [length] Message length if known beforehand
753
+ * @returns {textsecure.KeyExchangeMessage} KeyExchangeMessage
754
+ * @throws {Error} If the payload is not a reader or valid buffer
755
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
756
+ */
757
+ KeyExchangeMessage.decode = function decode(reader, length) {
758
+ if (!(reader instanceof $Reader)) {
759
+ reader = $Reader.create(reader);
760
+ }
761
+
762
+ var end = length === undefined ? reader.len : reader.pos + length;
763
+ var message = new $root.textsecure.KeyExchangeMessage();
764
+
765
+ for (; reader.pos < end;) {
766
+ var tag = reader.uint32();
767
+ switch (tag >>> 3) {
768
+ case 1:
769
+ message.id = reader.uint32();
770
+ break;
771
+ case 2:
772
+ message.baseKey = reader.bytes();
773
+ break;
774
+ case 3:
775
+ message.ephemeralKey = reader.bytes();
776
+ break;
777
+ case 4:
778
+ message.identityKey = reader.bytes();
779
+ break;
780
+ case 5:
781
+ message.baseKeySignature = reader.bytes();
782
+ break;
783
+ default:
784
+ reader.skipType(tag & 7);
785
+ break;
786
+ }
787
+ }
788
+
789
+ return message;
790
+ };
791
+
792
+ /**
793
+ * Decodes a KeyExchangeMessage message from the specified reader or buffer, length delimited.
794
+ * @function decodeDelimited
795
+ * @memberof textsecure.KeyExchangeMessage
796
+ * @static
797
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
798
+ * @returns {textsecure.KeyExchangeMessage} KeyExchangeMessage
799
+ * @throws {Error} If the payload is not a reader or valid buffer
800
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
801
+ */
802
+ KeyExchangeMessage.decodeDelimited = function decodeDelimited(reader) {
803
+ if (!(reader instanceof $Reader))
804
+ reader = new $Reader(reader);
805
+ return this.decode(reader, reader.uint32());
806
+ };
807
+
808
+ /**
809
+ * Verifies a KeyExchangeMessage message.
810
+ * @function verify
811
+ * @memberof textsecure.KeyExchangeMessage
812
+ * @static
813
+ * @param {Object.<string,*>} message Plain object to verify
814
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
815
+ */
816
+ KeyExchangeMessage.verify = function verify(message) {
817
+ if (typeof message !== "object" || message === null)
818
+ return "object expected";
819
+ if (message.id != null && message.hasOwnProperty("id"))
820
+ if (!$util.isInteger(message.id))
821
+ return "id: integer expected";
822
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
823
+ if (!(message.baseKey && typeof message.baseKey.length === "number" || $util.isString(message.baseKey)))
824
+ return "baseKey: buffer expected";
825
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
826
+ if (!(message.ephemeralKey && typeof message.ephemeralKey.length === "number" || $util.isString(message.ephemeralKey)))
827
+ return "ephemeralKey: buffer expected";
828
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
829
+ if (!(message.identityKey && typeof message.identityKey.length === "number" || $util.isString(message.identityKey)))
830
+ return "identityKey: buffer expected";
831
+ if (message.baseKeySignature != null && message.hasOwnProperty("baseKeySignature"))
832
+ if (!(message.baseKeySignature && typeof message.baseKeySignature.length === "number" || $util.isString(message.baseKeySignature)))
833
+ return "baseKeySignature: buffer expected";
834
+ return null;
835
+ };
836
+
837
+ /**
838
+ * Creates a KeyExchangeMessage message from a plain object. Also converts values to their respective internal types.
839
+ * @function fromObject
840
+ * @memberof textsecure.KeyExchangeMessage
841
+ * @static
842
+ * @param {Object.<string,*>} object Plain object
843
+ * @returns {textsecure.KeyExchangeMessage} KeyExchangeMessage
844
+ */
845
+ KeyExchangeMessage.fromObject = function fromObject(object) {
846
+ if (object instanceof $root.textsecure.KeyExchangeMessage)
847
+ return object;
848
+ var message = new $root.textsecure.KeyExchangeMessage();
849
+ if (object.id != null)
850
+ message.id = object.id >>> 0;
851
+ if (object.baseKey != null)
852
+ if (typeof object.baseKey === "string")
853
+ $util.base64.decode(object.baseKey, message.baseKey = $util.newBuffer($util.base64.length(object.baseKey)), 0);
854
+ else if (object.baseKey.length)
855
+ message.baseKey = object.baseKey;
856
+ if (object.ephemeralKey != null)
857
+ if (typeof object.ephemeralKey === "string")
858
+ $util.base64.decode(object.ephemeralKey, message.ephemeralKey = $util.newBuffer($util.base64.length(object.ephemeralKey)), 0);
859
+ else if (object.ephemeralKey.length)
860
+ message.ephemeralKey = object.ephemeralKey;
861
+ if (object.identityKey != null)
862
+ if (typeof object.identityKey === "string")
863
+ $util.base64.decode(object.identityKey, message.identityKey = $util.newBuffer($util.base64.length(object.identityKey)), 0);
864
+ else if (object.identityKey.length)
865
+ message.identityKey = object.identityKey;
866
+ if (object.baseKeySignature != null)
867
+ if (typeof object.baseKeySignature === "string")
868
+ $util.base64.decode(object.baseKeySignature, message.baseKeySignature = $util.newBuffer($util.base64.length(object.baseKeySignature)), 0);
869
+ else if (object.baseKeySignature.length)
870
+ message.baseKeySignature = object.baseKeySignature;
871
+ return message;
872
+ };
873
+
874
+ /**
875
+ * Creates a plain object from a KeyExchangeMessage message. Also converts values to other types if specified.
876
+ * @function toObject
877
+ * @memberof textsecure.KeyExchangeMessage
878
+ * @static
879
+ * @param {textsecure.KeyExchangeMessage} message KeyExchangeMessage
880
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
881
+ * @returns {Object.<string,*>} Plain object
882
+ */
883
+ KeyExchangeMessage.toObject = function toObject(message, options) {
884
+ if (!options)
885
+ options = {};
886
+ var object = {};
887
+ if (options.defaults) {
888
+ object.id = 0;
889
+ if (options.bytes === String)
890
+ object.baseKey = "";
891
+ else {
892
+ object.baseKey = [];
893
+ if (options.bytes !== Array)
894
+ object.baseKey = $util.newBuffer(object.baseKey);
895
+ }
896
+ if (options.bytes === String)
897
+ object.ephemeralKey = "";
898
+ else {
899
+ object.ephemeralKey = [];
900
+ if (options.bytes !== Array)
901
+ object.ephemeralKey = $util.newBuffer(object.ephemeralKey);
902
+ }
903
+ if (options.bytes === String)
904
+ object.identityKey = "";
905
+ else {
906
+ object.identityKey = [];
907
+ if (options.bytes !== Array)
908
+ object.identityKey = $util.newBuffer(object.identityKey);
909
+ }
910
+ if (options.bytes === String)
911
+ object.baseKeySignature = "";
912
+ else {
913
+ object.baseKeySignature = [];
914
+ if (options.bytes !== Array)
915
+ object.baseKeySignature = $util.newBuffer(object.baseKeySignature);
916
+ }
917
+ }
918
+ if (message.id != null && message.hasOwnProperty("id"))
919
+ object.id = message.id;
920
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
921
+ object.baseKey = options.bytes === String ? $util.base64.encode(message.baseKey, 0, message.baseKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.baseKey) : message.baseKey;
922
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
923
+ object.ephemeralKey = options.bytes === String ? $util.base64.encode(message.ephemeralKey, 0, message.ephemeralKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.ephemeralKey) : message.ephemeralKey;
924
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
925
+ object.identityKey = options.bytes === String ? $util.base64.encode(message.identityKey, 0, message.identityKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityKey) : message.identityKey;
926
+ if (message.baseKeySignature != null && message.hasOwnProperty("baseKeySignature"))
927
+ object.baseKeySignature = options.bytes === String ? $util.base64.encode(message.baseKeySignature, 0, message.baseKeySignature.length) : options.bytes === Array ? Array.prototype.slice.call(message.baseKeySignature) : message.baseKeySignature;
928
+ return object;
929
+ };
930
+
931
+ /**
932
+ * Converts this KeyExchangeMessage to JSON.
933
+ * @function toJSON
934
+ * @memberof textsecure.KeyExchangeMessage
935
+ * @instance
936
+ * @returns {Object.<string,*>} JSON object
937
+ */
938
+ KeyExchangeMessage.prototype.toJSON = function toJSON() {
939
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
940
+ };
941
+
942
+ return KeyExchangeMessage;
943
+ })();
944
+
945
+ return textsecure;
946
+ })();
947
+
948
+ module.exports = $root;