projects/aports·blob master · refs

1357 lines · 61.9 KiB

1Patch-Source: https://github.com/tgalal/python-axolotl/pull/46
2---
3From f23e151c2f27043c7261eb07dd50f269abf51dce Mon Sep 17 00:00:00 2001
4From: Alfred Wingate <[email protected]>
5Date: Fri, 28 Feb 2025 22:16:38 +0200
6Subject: [PATCH] Regenerate protos with libprotoc 3.21.9
7
8https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
9
10Bug: https://bugs.gentoo.org/936053
11Signed-off-by: Alfred Wingate <[email protected]>
12---
13 axolotl/protocol/whisperprotos_pb2.py | 348 +---------
14 axolotl/state/storageprotos_pb2.py | 932 ++------------------------
15 setup.py | 2 +-
16 tox.ini | 2 +-
17 4 files changed, 66 insertions(+), 1218 deletions(-)
18
19diff --git a/axolotl/protocol/whisperprotos_pb2.py b/axolotl/protocol/whisperprotos_pb2.py
20index 7b5ead4..3aadedc 100644
21--- a/axolotl/protocol/whisperprotos_pb2.py
22+++ b/axolotl/protocol/whisperprotos_pb2.py
23@@ -1,13 +1,11 @@
24+# -*- coding: utf-8 -*-
25 # Generated by the protocol buffer compiler. DO NOT EDIT!
26-# source: WhisperTextProtocol.proto
27-
28-import sys
29-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
30+# source: axolotl/protobuf/WhisperTextProtocol.proto
31+"""Generated protocol buffer code."""
32+from google.protobuf.internal import builder as _builder
33 from google.protobuf import descriptor as _descriptor
34-from google.protobuf import message as _message
35-from google.protobuf import reflection as _reflection
36+from google.protobuf import descriptor_pool as _descriptor_pool
37 from google.protobuf import symbol_database as _symbol_database
38-from google.protobuf import descriptor_pb2
39 # @@protoc_insertion_point(imports)
40
41 _sym_db = _symbol_database.Default()
42@@ -15,326 +13,22 @@
43
44
45
46-DESCRIPTOR = _descriptor.FileDescriptor(
47- name='WhisperTextProtocol.proto',
48- package='textsecure',
49- serialized_pb=_b('\n\x19WhisperTextProtocol.proto\x12\ntextsecure\"b\n\x0eWhisperMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"\x8f\x01\n\x14PreKeyWhisperMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\x42\x37\n&org.whispersystems.libaxolotl.protocolB\rWhisperProtos')
50-)
51-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
52-
53-
54-
55-
56-_WHISPERMESSAGE = _descriptor.Descriptor(
57- name='WhisperMessage',
58- full_name='textsecure.WhisperMessage',
59- filename=None,
60- file=DESCRIPTOR,
61- containing_type=None,
62- fields=[
63- _descriptor.FieldDescriptor(
64- name='ratchetKey', full_name='textsecure.WhisperMessage.ratchetKey', index=0,
65- number=1, type=12, cpp_type=9, label=1,
66- has_default_value=False, default_value=_b(""),
67- message_type=None, enum_type=None, containing_type=None,
68- is_extension=False, extension_scope=None,
69- options=None),
70- _descriptor.FieldDescriptor(
71- name='counter', full_name='textsecure.WhisperMessage.counter', index=1,
72- number=2, type=13, cpp_type=3, label=1,
73- has_default_value=False, default_value=0,
74- message_type=None, enum_type=None, containing_type=None,
75- is_extension=False, extension_scope=None,
76- options=None),
77- _descriptor.FieldDescriptor(
78- name='previousCounter', full_name='textsecure.WhisperMessage.previousCounter', index=2,
79- number=3, type=13, cpp_type=3, label=1,
80- has_default_value=False, default_value=0,
81- message_type=None, enum_type=None, containing_type=None,
82- is_extension=False, extension_scope=None,
83- options=None),
84- _descriptor.FieldDescriptor(
85- name='ciphertext', full_name='textsecure.WhisperMessage.ciphertext', index=3,
86- number=4, type=12, cpp_type=9, label=1,
87- has_default_value=False, default_value=_b(""),
88- message_type=None, enum_type=None, containing_type=None,
89- is_extension=False, extension_scope=None,
90- options=None),
91- ],
92- extensions=[
93- ],
94- nested_types=[],
95- enum_types=[
96- ],
97- options=None,
98- is_extendable=False,
99- extension_ranges=[],
100- oneofs=[
101- ],
102- serialized_start=41,
103- serialized_end=139,
104-)
105-
106-
107-_PREKEYWHISPERMESSAGE = _descriptor.Descriptor(
108- name='PreKeyWhisperMessage',
109- full_name='textsecure.PreKeyWhisperMessage',
110- filename=None,
111- file=DESCRIPTOR,
112- containing_type=None,
113- fields=[
114- _descriptor.FieldDescriptor(
115- name='registrationId', full_name='textsecure.PreKeyWhisperMessage.registrationId', index=0,
116- number=5, type=13, cpp_type=3, label=1,
117- has_default_value=False, default_value=0,
118- message_type=None, enum_type=None, containing_type=None,
119- is_extension=False, extension_scope=None,
120- options=None),
121- _descriptor.FieldDescriptor(
122- name='preKeyId', full_name='textsecure.PreKeyWhisperMessage.preKeyId', index=1,
123- number=1, type=13, cpp_type=3, label=1,
124- has_default_value=False, default_value=0,
125- message_type=None, enum_type=None, containing_type=None,
126- is_extension=False, extension_scope=None,
127- options=None),
128- _descriptor.FieldDescriptor(
129- name='signedPreKeyId', full_name='textsecure.PreKeyWhisperMessage.signedPreKeyId', index=2,
130- number=6, type=13, cpp_type=3, label=1,
131- has_default_value=False, default_value=0,
132- message_type=None, enum_type=None, containing_type=None,
133- is_extension=False, extension_scope=None,
134- options=None),
135- _descriptor.FieldDescriptor(
136- name='baseKey', full_name='textsecure.PreKeyWhisperMessage.baseKey', index=3,
137- number=2, type=12, cpp_type=9, label=1,
138- has_default_value=False, default_value=_b(""),
139- message_type=None, enum_type=None, containing_type=None,
140- is_extension=False, extension_scope=None,
141- options=None),
142- _descriptor.FieldDescriptor(
143- name='identityKey', full_name='textsecure.PreKeyWhisperMessage.identityKey', index=4,
144- number=3, type=12, cpp_type=9, label=1,
145- has_default_value=False, default_value=_b(""),
146- message_type=None, enum_type=None, containing_type=None,
147- is_extension=False, extension_scope=None,
148- options=None),
149- _descriptor.FieldDescriptor(
150- name='message', full_name='textsecure.PreKeyWhisperMessage.message', index=5,
151- number=4, type=12, cpp_type=9, label=1,
152- has_default_value=False, default_value=_b(""),
153- message_type=None, enum_type=None, containing_type=None,
154- is_extension=False, extension_scope=None,
155- options=None),
156- ],
157- extensions=[
158- ],
159- nested_types=[],
160- enum_types=[
161- ],
162- options=None,
163- is_extendable=False,
164- extension_ranges=[],
165- oneofs=[
166- ],
167- serialized_start=142,
168- serialized_end=285,
169-)
170-
171-
172-_KEYEXCHANGEMESSAGE = _descriptor.Descriptor(
173- name='KeyExchangeMessage',
174- full_name='textsecure.KeyExchangeMessage',
175- filename=None,
176- file=DESCRIPTOR,
177- containing_type=None,
178- fields=[
179- _descriptor.FieldDescriptor(
180- name='id', full_name='textsecure.KeyExchangeMessage.id', index=0,
181- number=1, type=13, cpp_type=3, label=1,
182- has_default_value=False, default_value=0,
183- message_type=None, enum_type=None, containing_type=None,
184- is_extension=False, extension_scope=None,
185- options=None),
186- _descriptor.FieldDescriptor(
187- name='baseKey', full_name='textsecure.KeyExchangeMessage.baseKey', index=1,
188- number=2, type=12, cpp_type=9, label=1,
189- has_default_value=False, default_value=_b(""),
190- message_type=None, enum_type=None, containing_type=None,
191- is_extension=False, extension_scope=None,
192- options=None),
193- _descriptor.FieldDescriptor(
194- name='ratchetKey', full_name='textsecure.KeyExchangeMessage.ratchetKey', index=2,
195- number=3, type=12, cpp_type=9, label=1,
196- has_default_value=False, default_value=_b(""),
197- message_type=None, enum_type=None, containing_type=None,
198- is_extension=False, extension_scope=None,
199- options=None),
200- _descriptor.FieldDescriptor(
201- name='identityKey', full_name='textsecure.KeyExchangeMessage.identityKey', index=3,
202- number=4, type=12, cpp_type=9, label=1,
203- has_default_value=False, default_value=_b(""),
204- message_type=None, enum_type=None, containing_type=None,
205- is_extension=False, extension_scope=None,
206- options=None),
207- _descriptor.FieldDescriptor(
208- name='baseKeySignature', full_name='textsecure.KeyExchangeMessage.baseKeySignature', index=4,
209- number=5, type=12, cpp_type=9, label=1,
210- has_default_value=False, default_value=_b(""),
211- message_type=None, enum_type=None, containing_type=None,
212- is_extension=False, extension_scope=None,
213- options=None),
214- ],
215- extensions=[
216- ],
217- nested_types=[],
218- enum_types=[
219- ],
220- options=None,
221- is_extendable=False,
222- extension_ranges=[],
223- oneofs=[
224- ],
225- serialized_start=287,
226- serialized_end=403,
227-)
228-
229-
230-_SENDERKEYMESSAGE = _descriptor.Descriptor(
231- name='SenderKeyMessage',
232- full_name='textsecure.SenderKeyMessage',
233- filename=None,
234- file=DESCRIPTOR,
235- containing_type=None,
236- fields=[
237- _descriptor.FieldDescriptor(
238- name='id', full_name='textsecure.SenderKeyMessage.id', index=0,
239- number=1, type=13, cpp_type=3, label=1,
240- has_default_value=False, default_value=0,
241- message_type=None, enum_type=None, containing_type=None,
242- is_extension=False, extension_scope=None,
243- options=None),
244- _descriptor.FieldDescriptor(
245- name='iteration', full_name='textsecure.SenderKeyMessage.iteration', index=1,
246- number=2, type=13, cpp_type=3, label=1,
247- has_default_value=False, default_value=0,
248- message_type=None, enum_type=None, containing_type=None,
249- is_extension=False, extension_scope=None,
250- options=None),
251- _descriptor.FieldDescriptor(
252- name='ciphertext', full_name='textsecure.SenderKeyMessage.ciphertext', index=2,
253- number=3, type=12, cpp_type=9, label=1,
254- has_default_value=False, default_value=_b(""),
255- message_type=None, enum_type=None, containing_type=None,
256- is_extension=False, extension_scope=None,
257- options=None),
258- ],
259- extensions=[
260- ],
261- nested_types=[],
262- enum_types=[
263- ],
264- options=None,
265- is_extendable=False,
266- extension_ranges=[],
267- oneofs=[
268- ],
269- serialized_start=405,
270- serialized_end=474,
271-)
272-
273-
274-_SENDERKEYDISTRIBUTIONMESSAGE = _descriptor.Descriptor(
275- name='SenderKeyDistributionMessage',
276- full_name='textsecure.SenderKeyDistributionMessage',
277- filename=None,
278- file=DESCRIPTOR,
279- containing_type=None,
280- fields=[
281- _descriptor.FieldDescriptor(
282- name='id', full_name='textsecure.SenderKeyDistributionMessage.id', index=0,
283- number=1, type=13, cpp_type=3, label=1,
284- has_default_value=False, default_value=0,
285- message_type=None, enum_type=None, containing_type=None,
286- is_extension=False, extension_scope=None,
287- options=None),
288- _descriptor.FieldDescriptor(
289- name='iteration', full_name='textsecure.SenderKeyDistributionMessage.iteration', index=1,
290- number=2, type=13, cpp_type=3, label=1,
291- has_default_value=False, default_value=0,
292- message_type=None, enum_type=None, containing_type=None,
293- is_extension=False, extension_scope=None,
294- options=None),
295- _descriptor.FieldDescriptor(
296- name='chainKey', full_name='textsecure.SenderKeyDistributionMessage.chainKey', index=2,
297- number=3, type=12, cpp_type=9, label=1,
298- has_default_value=False, default_value=_b(""),
299- message_type=None, enum_type=None, containing_type=None,
300- is_extension=False, extension_scope=None,
301- options=None),
302- _descriptor.FieldDescriptor(
303- name='signingKey', full_name='textsecure.SenderKeyDistributionMessage.signingKey', index=3,
304- number=4, type=12, cpp_type=9, label=1,
305- has_default_value=False, default_value=_b(""),
306- message_type=None, enum_type=None, containing_type=None,
307- is_extension=False, extension_scope=None,
308- options=None),
309- ],
310- extensions=[
311- ],
312- nested_types=[],
313- enum_types=[
314- ],
315- options=None,
316- is_extendable=False,
317- extension_ranges=[],
318- oneofs=[
319- ],
320- serialized_start=476,
321- serialized_end=575,
322-)
323-
324-DESCRIPTOR.message_types_by_name['WhisperMessage'] = _WHISPERMESSAGE
325-DESCRIPTOR.message_types_by_name['PreKeyWhisperMessage'] = _PREKEYWHISPERMESSAGE
326-DESCRIPTOR.message_types_by_name['KeyExchangeMessage'] = _KEYEXCHANGEMESSAGE
327-DESCRIPTOR.message_types_by_name['SenderKeyMessage'] = _SENDERKEYMESSAGE
328-DESCRIPTOR.message_types_by_name['SenderKeyDistributionMessage'] = _SENDERKEYDISTRIBUTIONMESSAGE
329-
330-WhisperMessage = _reflection.GeneratedProtocolMessageType('WhisperMessage', (_message.Message,), dict(
331- DESCRIPTOR = _WHISPERMESSAGE,
332- __module__ = 'WhisperTextProtocol_pb2'
333- # @@protoc_insertion_point(class_scope:textsecure.WhisperMessage)
334- ))
335-_sym_db.RegisterMessage(WhisperMessage)
336-
337-PreKeyWhisperMessage = _reflection.GeneratedProtocolMessageType('PreKeyWhisperMessage', (_message.Message,), dict(
338- DESCRIPTOR = _PREKEYWHISPERMESSAGE,
339- __module__ = 'WhisperTextProtocol_pb2'
340- # @@protoc_insertion_point(class_scope:textsecure.PreKeyWhisperMessage)
341- ))
342-_sym_db.RegisterMessage(PreKeyWhisperMessage)
343-
344-KeyExchangeMessage = _reflection.GeneratedProtocolMessageType('KeyExchangeMessage', (_message.Message,), dict(
345- DESCRIPTOR = _KEYEXCHANGEMESSAGE,
346- __module__ = 'WhisperTextProtocol_pb2'
347- # @@protoc_insertion_point(class_scope:textsecure.KeyExchangeMessage)
348- ))
349-_sym_db.RegisterMessage(KeyExchangeMessage)
350-
351-SenderKeyMessage = _reflection.GeneratedProtocolMessageType('SenderKeyMessage', (_message.Message,), dict(
352- DESCRIPTOR = _SENDERKEYMESSAGE,
353- __module__ = 'WhisperTextProtocol_pb2'
354- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyMessage)
355- ))
356-_sym_db.RegisterMessage(SenderKeyMessage)
357-
358-SenderKeyDistributionMessage = _reflection.GeneratedProtocolMessageType('SenderKeyDistributionMessage', (_message.Message,), dict(
359- DESCRIPTOR = _SENDERKEYDISTRIBUTIONMESSAGE,
360- __module__ = 'WhisperTextProtocol_pb2'
361- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyDistributionMessage)
362- ))
363-_sym_db.RegisterMessage(SenderKeyDistributionMessage)
364+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*axolotl/protobuf/WhisperTextProtocol.proto\x12\ntextsecure\"b\n\x0eWhisperMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"\x8f\x01\n\x14PreKeyWhisperMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\x42\x37\n&org.whispersystems.libaxolotl.protocolB\rWhisperProtos')
365
366+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
367+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'axolotl.protobuf.WhisperTextProtocol_pb2', globals())
368+if _descriptor._USE_C_DESCRIPTORS == False:
369
370-DESCRIPTOR.has_options = True
371-DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n&org.whispersystems.libaxolotl.protocolB\rWhisperProtos'))
372+ DESCRIPTOR._options = None
373+ DESCRIPTOR._serialized_options = b'\n&org.whispersystems.libaxolotl.protocolB\rWhisperProtos'
374+ _WHISPERMESSAGE._serialized_start=58
375+ _WHISPERMESSAGE._serialized_end=156
376+ _PREKEYWHISPERMESSAGE._serialized_start=159
377+ _PREKEYWHISPERMESSAGE._serialized_end=302
378+ _KEYEXCHANGEMESSAGE._serialized_start=304
379+ _KEYEXCHANGEMESSAGE._serialized_end=420
380+ _SENDERKEYMESSAGE._serialized_start=422
381+ _SENDERKEYMESSAGE._serialized_end=491
382+ _SENDERKEYDISTRIBUTIONMESSAGE._serialized_start=493
383+ _SENDERKEYDISTRIBUTIONMESSAGE._serialized_end=592
384 # @@protoc_insertion_point(module_scope)
385diff --git a/axolotl/state/storageprotos_pb2.py b/axolotl/state/storageprotos_pb2.py
386index 20bb325..8454449 100644
387--- a/axolotl/state/storageprotos_pb2.py
388+++ b/axolotl/state/storageprotos_pb2.py
389@@ -1,13 +1,11 @@
390+# -*- coding: utf-8 -*-
391 # Generated by the protocol buffer compiler. DO NOT EDIT!
392-# source: LocalStorageProtocol.proto
393-
394-import sys
395-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
396+# source: axolotl/protobuf/LocalStorageProtocol.proto
397+"""Generated protocol buffer code."""
398+from google.protobuf.internal import builder as _builder
399 from google.protobuf import descriptor as _descriptor
400-from google.protobuf import message as _message
401-from google.protobuf import reflection as _reflection
402+from google.protobuf import descriptor_pool as _descriptor_pool
403 from google.protobuf import symbol_database as _symbol_database
404-from google.protobuf import descriptor_pb2
405 # @@protoc_insertion_point(imports)
406
407 _sym_db = _symbol_database.Default()
408@@ -15,886 +13,42 @@
409
410
411
412-DESCRIPTOR = _descriptor.FileDescriptor(
413- name='LocalStorageProtocol.proto',
414- package='textsecure',
415- serialized_pb=_b('\n\x1aLocalStorageProtocol.proto\x12\ntextsecure\"\xd3\x08\n\x10SessionStructure\x12\x16\n\x0esessionVersion\x18\x01 \x01(\r\x12\x1b\n\x13localIdentityPublic\x18\x02 \x01(\x0c\x12\x1c\n\x14remoteIdentityPublic\x18\x03 \x01(\x0c\x12\x0f\n\x07rootKey\x18\x04 \x01(\x0c\x12\x17\n\x0fpreviousCounter\x18\x05 \x01(\r\x12\x37\n\x0bsenderChain\x18\x06 \x01(\x0b\x32\".textsecure.SessionStructure.Chain\x12:\n\x0ereceiverChains\x18\x07 \x03(\x0b\x32\".textsecure.SessionStructure.Chain\x12K\n\x12pendingKeyExchange\x18\x08 \x01(\x0b\x32/.textsecure.SessionStructure.PendingKeyExchange\x12\x41\n\rpendingPreKey\x18\t \x01(\x0b\x32*.textsecure.SessionStructure.PendingPreKey\x12\x1c\n\x14remoteRegistrationId\x18\n \x01(\r\x12\x1b\n\x13localRegistrationId\x18\x0b \x01(\r\x12\x14\n\x0cneedsRefresh\x18\x0c \x01(\x08\x12\x14\n\x0c\x61liceBaseKey\x18\r \x01(\x0c\x1a\xb9\x02\n\x05\x43hain\x12\x18\n\x10senderRatchetKey\x18\x01 \x01(\x0c\x12\x1f\n\x17senderRatchetKeyPrivate\x18\x02 \x01(\x0c\x12=\n\x08\x63hainKey\x18\x03 \x01(\x0b\x32+.textsecure.SessionStructure.Chain.ChainKey\x12\x42\n\x0bmessageKeys\x18\x04 \x03(\x0b\x32-.textsecure.SessionStructure.Chain.MessageKey\x1a&\n\x08\x43hainKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x1aJ\n\nMessageKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tcipherKey\x18\x02 \x01(\x0c\x12\x0e\n\x06macKey\x18\x03 \x01(\x0c\x12\n\n\x02iv\x18\x04 \x01(\x0c\x1a\xcd\x01\n\x12PendingKeyExchange\x12\x10\n\x08sequence\x18\x01 \x01(\r\x12\x14\n\x0clocalBaseKey\x18\x02 \x01(\x0c\x12\x1b\n\x13localBaseKeyPrivate\x18\x03 \x01(\x0c\x12\x17\n\x0flocalRatchetKey\x18\x04 \x01(\x0c\x12\x1e\n\x16localRatchetKeyPrivate\x18\x05 \x01(\x0c\x12\x18\n\x10localIdentityKey\x18\x07 \x01(\x0c\x12\x1f\n\x17localIdentityKeyPrivate\x18\x08 \x01(\x0c\x1aJ\n\rPendingPreKey\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x03 \x01(\x05\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\"\x7f\n\x0fRecordStructure\x12\x34\n\x0e\x63urrentSession\x18\x01 \x01(\x0b\x32\x1c.textsecure.SessionStructure\x12\x36\n\x10previousSessions\x18\x02 \x03(\x0b\x32\x1c.textsecure.SessionStructure\"J\n\x15PreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"v\n\x1bSignedPreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\x12\x11\n\ttimestamp\x18\x05 \x01(\x06\"A\n\x18IdentityKeyPairStructure\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\"\xb8\x03\n\x17SenderKeyStateStructure\x12\x13\n\x0bsenderKeyId\x18\x01 \x01(\r\x12J\n\x0esenderChainKey\x18\x02 \x01(\x0b\x32\x32.textsecure.SenderKeyStateStructure.SenderChainKey\x12N\n\x10senderSigningKey\x18\x03 \x01(\x0b\x32\x34.textsecure.SenderKeyStateStructure.SenderSigningKey\x12O\n\x11senderMessageKeys\x18\x04 \x03(\x0b\x32\x34.textsecure.SenderKeyStateStructure.SenderMessageKey\x1a\x31\n\x0eSenderChainKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderMessageKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderSigningKey\x12\x0e\n\x06public\x18\x01 \x01(\x0c\x12\x0f\n\x07private\x18\x02 \x01(\x0c\"X\n\x18SenderKeyRecordStructure\x12<\n\x0fsenderKeyStates\x18\x01 \x03(\x0b\x32#.textsecure.SenderKeyStateStructureB4\n#org.whispersystems.libaxolotl.stateB\rStorageProtos')
416-)
417-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
418-
419-
420-
421-
422-_SESSIONSTRUCTURE_CHAIN_CHAINKEY = _descriptor.Descriptor(
423- name='ChainKey',
424- full_name='textsecure.SessionStructure.Chain.ChainKey',
425- filename=None,
426- file=DESCRIPTOR,
427- containing_type=None,
428- fields=[
429- _descriptor.FieldDescriptor(
430- name='index', full_name='textsecure.SessionStructure.Chain.ChainKey.index', index=0,
431- number=1, type=13, cpp_type=3, label=1,
432- has_default_value=False, default_value=0,
433- message_type=None, enum_type=None, containing_type=None,
434- is_extension=False, extension_scope=None,
435- options=None),
436- _descriptor.FieldDescriptor(
437- name='key', full_name='textsecure.SessionStructure.Chain.ChainKey.key', index=1,
438- number=2, type=12, cpp_type=9, label=1,
439- has_default_value=False, default_value=_b(""),
440- message_type=None, enum_type=None, containing_type=None,
441- is_extension=False, extension_scope=None,
442- options=None),
443- ],
444- extensions=[
445- ],
446- nested_types=[],
447- enum_types=[
448- ],
449- options=None,
450- is_extendable=False,
451- extension_ranges=[],
452- oneofs=[
453- ],
454- serialized_start=752,
455- serialized_end=790,
456-)
457-
458-_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY = _descriptor.Descriptor(
459- name='MessageKey',
460- full_name='textsecure.SessionStructure.Chain.MessageKey',
461- filename=None,
462- file=DESCRIPTOR,
463- containing_type=None,
464- fields=[
465- _descriptor.FieldDescriptor(
466- name='index', full_name='textsecure.SessionStructure.Chain.MessageKey.index', index=0,
467- number=1, type=13, cpp_type=3, label=1,
468- has_default_value=False, default_value=0,
469- message_type=None, enum_type=None, containing_type=None,
470- is_extension=False, extension_scope=None,
471- options=None),
472- _descriptor.FieldDescriptor(
473- name='cipherKey', full_name='textsecure.SessionStructure.Chain.MessageKey.cipherKey', index=1,
474- number=2, type=12, cpp_type=9, label=1,
475- has_default_value=False, default_value=_b(""),
476- message_type=None, enum_type=None, containing_type=None,
477- is_extension=False, extension_scope=None,
478- options=None),
479- _descriptor.FieldDescriptor(
480- name='macKey', full_name='textsecure.SessionStructure.Chain.MessageKey.macKey', index=2,
481- number=3, type=12, cpp_type=9, label=1,
482- has_default_value=False, default_value=_b(""),
483- message_type=None, enum_type=None, containing_type=None,
484- is_extension=False, extension_scope=None,
485- options=None),
486- _descriptor.FieldDescriptor(
487- name='iv', full_name='textsecure.SessionStructure.Chain.MessageKey.iv', index=3,
488- number=4, type=12, cpp_type=9, label=1,
489- has_default_value=False, default_value=_b(""),
490- message_type=None, enum_type=None, containing_type=None,
491- is_extension=False, extension_scope=None,
492- options=None),
493- ],
494- extensions=[
495- ],
496- nested_types=[],
497- enum_types=[
498- ],
499- options=None,
500- is_extendable=False,
501- extension_ranges=[],
502- oneofs=[
503- ],
504- serialized_start=792,
505- serialized_end=866,
506-)
507-
508-_SESSIONSTRUCTURE_CHAIN = _descriptor.Descriptor(
509- name='Chain',
510- full_name='textsecure.SessionStructure.Chain',
511- filename=None,
512- file=DESCRIPTOR,
513- containing_type=None,
514- fields=[
515- _descriptor.FieldDescriptor(
516- name='senderRatchetKey', full_name='textsecure.SessionStructure.Chain.senderRatchetKey', index=0,
517- number=1, type=12, cpp_type=9, label=1,
518- has_default_value=False, default_value=_b(""),
519- message_type=None, enum_type=None, containing_type=None,
520- is_extension=False, extension_scope=None,
521- options=None),
522- _descriptor.FieldDescriptor(
523- name='senderRatchetKeyPrivate', full_name='textsecure.SessionStructure.Chain.senderRatchetKeyPrivate', index=1,
524- number=2, type=12, cpp_type=9, label=1,
525- has_default_value=False, default_value=_b(""),
526- message_type=None, enum_type=None, containing_type=None,
527- is_extension=False, extension_scope=None,
528- options=None),
529- _descriptor.FieldDescriptor(
530- name='chainKey', full_name='textsecure.SessionStructure.Chain.chainKey', index=2,
531- number=3, type=11, cpp_type=10, label=1,
532- has_default_value=False, default_value=None,
533- message_type=None, enum_type=None, containing_type=None,
534- is_extension=False, extension_scope=None,
535- options=None),
536- _descriptor.FieldDescriptor(
537- name='messageKeys', full_name='textsecure.SessionStructure.Chain.messageKeys', index=3,
538- number=4, type=11, cpp_type=10, label=3,
539- has_default_value=False, default_value=[],
540- message_type=None, enum_type=None, containing_type=None,
541- is_extension=False, extension_scope=None,
542- options=None),
543- ],
544- extensions=[
545- ],
546- nested_types=[_SESSIONSTRUCTURE_CHAIN_CHAINKEY, _SESSIONSTRUCTURE_CHAIN_MESSAGEKEY, ],
547- enum_types=[
548- ],
549- options=None,
550- is_extendable=False,
551- extension_ranges=[],
552- oneofs=[
553- ],
554- serialized_start=553,
555- serialized_end=866,
556-)
557-
558-_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE = _descriptor.Descriptor(
559- name='PendingKeyExchange',
560- full_name='textsecure.SessionStructure.PendingKeyExchange',
561- filename=None,
562- file=DESCRIPTOR,
563- containing_type=None,
564- fields=[
565- _descriptor.FieldDescriptor(
566- name='sequence', full_name='textsecure.SessionStructure.PendingKeyExchange.sequence', index=0,
567- number=1, type=13, cpp_type=3, label=1,
568- has_default_value=False, default_value=0,
569- message_type=None, enum_type=None, containing_type=None,
570- is_extension=False, extension_scope=None,
571- options=None),
572- _descriptor.FieldDescriptor(
573- name='localBaseKey', full_name='textsecure.SessionStructure.PendingKeyExchange.localBaseKey', index=1,
574- number=2, type=12, cpp_type=9, label=1,
575- has_default_value=False, default_value=_b(""),
576- message_type=None, enum_type=None, containing_type=None,
577- is_extension=False, extension_scope=None,
578- options=None),
579- _descriptor.FieldDescriptor(
580- name='localBaseKeyPrivate', full_name='textsecure.SessionStructure.PendingKeyExchange.localBaseKeyPrivate', index=2,
581- number=3, type=12, cpp_type=9, label=1,
582- has_default_value=False, default_value=_b(""),
583- message_type=None, enum_type=None, containing_type=None,
584- is_extension=False, extension_scope=None,
585- options=None),
586- _descriptor.FieldDescriptor(
587- name='localRatchetKey', full_name='textsecure.SessionStructure.PendingKeyExchange.localRatchetKey', index=3,
588- number=4, type=12, cpp_type=9, label=1,
589- has_default_value=False, default_value=_b(""),
590- message_type=None, enum_type=None, containing_type=None,
591- is_extension=False, extension_scope=None,
592- options=None),
593- _descriptor.FieldDescriptor(
594- name='localRatchetKeyPrivate', full_name='textsecure.SessionStructure.PendingKeyExchange.localRatchetKeyPrivate', index=4,
595- number=5, type=12, cpp_type=9, label=1,
596- has_default_value=False, default_value=_b(""),
597- message_type=None, enum_type=None, containing_type=None,
598- is_extension=False, extension_scope=None,
599- options=None),
600- _descriptor.FieldDescriptor(
601- name='localIdentityKey', full_name='textsecure.SessionStructure.PendingKeyExchange.localIdentityKey', index=5,
602- number=7, type=12, cpp_type=9, label=1,
603- has_default_value=False, default_value=_b(""),
604- message_type=None, enum_type=None, containing_type=None,
605- is_extension=False, extension_scope=None,
606- options=None),
607- _descriptor.FieldDescriptor(
608- name='localIdentityKeyPrivate', full_name='textsecure.SessionStructure.PendingKeyExchange.localIdentityKeyPrivate', index=6,
609- number=8, type=12, cpp_type=9, label=1,
610- has_default_value=False, default_value=_b(""),
611- message_type=None, enum_type=None, containing_type=None,
612- is_extension=False, extension_scope=None,
613- options=None),
614- ],
615- extensions=[
616- ],
617- nested_types=[],
618- enum_types=[
619- ],
620- options=None,
621- is_extendable=False,
622- extension_ranges=[],
623- oneofs=[
624- ],
625- serialized_start=869,
626- serialized_end=1074,
627-)
628-
629-_SESSIONSTRUCTURE_PENDINGPREKEY = _descriptor.Descriptor(
630- name='PendingPreKey',
631- full_name='textsecure.SessionStructure.PendingPreKey',
632- filename=None,
633- file=DESCRIPTOR,
634- containing_type=None,
635- fields=[
636- _descriptor.FieldDescriptor(
637- name='preKeyId', full_name='textsecure.SessionStructure.PendingPreKey.preKeyId', index=0,
638- number=1, type=13, cpp_type=3, label=1,
639- has_default_value=False, default_value=0,
640- message_type=None, enum_type=None, containing_type=None,
641- is_extension=False, extension_scope=None,
642- options=None),
643- _descriptor.FieldDescriptor(
644- name='signedPreKeyId', full_name='textsecure.SessionStructure.PendingPreKey.signedPreKeyId', index=1,
645- number=3, type=5, cpp_type=1, label=1,
646- has_default_value=False, default_value=0,
647- message_type=None, enum_type=None, containing_type=None,
648- is_extension=False, extension_scope=None,
649- options=None),
650- _descriptor.FieldDescriptor(
651- name='baseKey', full_name='textsecure.SessionStructure.PendingPreKey.baseKey', index=2,
652- number=2, type=12, cpp_type=9, label=1,
653- has_default_value=False, default_value=_b(""),
654- message_type=None, enum_type=None, containing_type=None,
655- is_extension=False, extension_scope=None,
656- options=None),
657- ],
658- extensions=[
659- ],
660- nested_types=[],
661- enum_types=[
662- ],
663- options=None,
664- is_extendable=False,
665- extension_ranges=[],
666- oneofs=[
667- ],
668- serialized_start=1076,
669- serialized_end=1150,
670-)
671-
672-_SESSIONSTRUCTURE = _descriptor.Descriptor(
673- name='SessionStructure',
674- full_name='textsecure.SessionStructure',
675- filename=None,
676- file=DESCRIPTOR,
677- containing_type=None,
678- fields=[
679- _descriptor.FieldDescriptor(
680- name='sessionVersion', full_name='textsecure.SessionStructure.sessionVersion', index=0,
681- number=1, type=13, cpp_type=3, label=1,
682- has_default_value=False, default_value=0,
683- message_type=None, enum_type=None, containing_type=None,
684- is_extension=False, extension_scope=None,
685- options=None),
686- _descriptor.FieldDescriptor(
687- name='localIdentityPublic', full_name='textsecure.SessionStructure.localIdentityPublic', index=1,
688- number=2, type=12, cpp_type=9, label=1,
689- has_default_value=False, default_value=_b(""),
690- message_type=None, enum_type=None, containing_type=None,
691- is_extension=False, extension_scope=None,
692- options=None),
693- _descriptor.FieldDescriptor(
694- name='remoteIdentityPublic', full_name='textsecure.SessionStructure.remoteIdentityPublic', index=2,
695- number=3, type=12, cpp_type=9, label=1,
696- has_default_value=False, default_value=_b(""),
697- message_type=None, enum_type=None, containing_type=None,
698- is_extension=False, extension_scope=None,
699- options=None),
700- _descriptor.FieldDescriptor(
701- name='rootKey', full_name='textsecure.SessionStructure.rootKey', index=3,
702- number=4, type=12, cpp_type=9, label=1,
703- has_default_value=False, default_value=_b(""),
704- message_type=None, enum_type=None, containing_type=None,
705- is_extension=False, extension_scope=None,
706- options=None),
707- _descriptor.FieldDescriptor(
708- name='previousCounter', full_name='textsecure.SessionStructure.previousCounter', index=4,
709- number=5, type=13, cpp_type=3, label=1,
710- has_default_value=False, default_value=0,
711- message_type=None, enum_type=None, containing_type=None,
712- is_extension=False, extension_scope=None,
713- options=None),
714- _descriptor.FieldDescriptor(
715- name='senderChain', full_name='textsecure.SessionStructure.senderChain', index=5,
716- number=6, type=11, cpp_type=10, label=1,
717- has_default_value=False, default_value=None,
718- message_type=None, enum_type=None, containing_type=None,
719- is_extension=False, extension_scope=None,
720- options=None),
721- _descriptor.FieldDescriptor(
722- name='receiverChains', full_name='textsecure.SessionStructure.receiverChains', index=6,
723- number=7, type=11, cpp_type=10, label=3,
724- has_default_value=False, default_value=[],
725- message_type=None, enum_type=None, containing_type=None,
726- is_extension=False, extension_scope=None,
727- options=None),
728- _descriptor.FieldDescriptor(
729- name='pendingKeyExchange', full_name='textsecure.SessionStructure.pendingKeyExchange', index=7,
730- number=8, type=11, cpp_type=10, label=1,
731- has_default_value=False, default_value=None,
732- message_type=None, enum_type=None, containing_type=None,
733- is_extension=False, extension_scope=None,
734- options=None),
735- _descriptor.FieldDescriptor(
736- name='pendingPreKey', full_name='textsecure.SessionStructure.pendingPreKey', index=8,
737- number=9, type=11, cpp_type=10, label=1,
738- has_default_value=False, default_value=None,
739- message_type=None, enum_type=None, containing_type=None,
740- is_extension=False, extension_scope=None,
741- options=None),
742- _descriptor.FieldDescriptor(
743- name='remoteRegistrationId', full_name='textsecure.SessionStructure.remoteRegistrationId', index=9,
744- number=10, type=13, cpp_type=3, label=1,
745- has_default_value=False, default_value=0,
746- message_type=None, enum_type=None, containing_type=None,
747- is_extension=False, extension_scope=None,
748- options=None),
749- _descriptor.FieldDescriptor(
750- name='localRegistrationId', full_name='textsecure.SessionStructure.localRegistrationId', index=10,
751- number=11, type=13, cpp_type=3, label=1,
752- has_default_value=False, default_value=0,
753- message_type=None, enum_type=None, containing_type=None,
754- is_extension=False, extension_scope=None,
755- options=None),
756- _descriptor.FieldDescriptor(
757- name='needsRefresh', full_name='textsecure.SessionStructure.needsRefresh', index=11,
758- number=12, type=8, cpp_type=7, label=1,
759- has_default_value=False, default_value=False,
760- message_type=None, enum_type=None, containing_type=None,
761- is_extension=False, extension_scope=None,
762- options=None),
763- _descriptor.FieldDescriptor(
764- name='aliceBaseKey', full_name='textsecure.SessionStructure.aliceBaseKey', index=12,
765- number=13, type=12, cpp_type=9, label=1,
766- has_default_value=False, default_value=_b(""),
767- message_type=None, enum_type=None, containing_type=None,
768- is_extension=False, extension_scope=None,
769- options=None),
770- ],
771- extensions=[
772- ],
773- nested_types=[_SESSIONSTRUCTURE_CHAIN, _SESSIONSTRUCTURE_PENDINGKEYEXCHANGE, _SESSIONSTRUCTURE_PENDINGPREKEY, ],
774- enum_types=[
775- ],
776- options=None,
777- is_extendable=False,
778- extension_ranges=[],
779- oneofs=[
780- ],
781- serialized_start=43,
782- serialized_end=1150,
783-)
784-
785-
786-_RECORDSTRUCTURE = _descriptor.Descriptor(
787- name='RecordStructure',
788- full_name='textsecure.RecordStructure',
789- filename=None,
790- file=DESCRIPTOR,
791- containing_type=None,
792- fields=[
793- _descriptor.FieldDescriptor(
794- name='currentSession', full_name='textsecure.RecordStructure.currentSession', index=0,
795- number=1, type=11, cpp_type=10, label=1,
796- has_default_value=False, default_value=None,
797- message_type=None, enum_type=None, containing_type=None,
798- is_extension=False, extension_scope=None,
799- options=None),
800- _descriptor.FieldDescriptor(
801- name='previousSessions', full_name='textsecure.RecordStructure.previousSessions', index=1,
802- number=2, type=11, cpp_type=10, label=3,
803- has_default_value=False, default_value=[],
804- message_type=None, enum_type=None, containing_type=None,
805- is_extension=False, extension_scope=None,
806- options=None),
807- ],
808- extensions=[
809- ],
810- nested_types=[],
811- enum_types=[
812- ],
813- options=None,
814- is_extendable=False,
815- extension_ranges=[],
816- oneofs=[
817- ],
818- serialized_start=1152,
819- serialized_end=1279,
820-)
821-
822-
823-_PREKEYRECORDSTRUCTURE = _descriptor.Descriptor(
824- name='PreKeyRecordStructure',
825- full_name='textsecure.PreKeyRecordStructure',
826- filename=None,
827- file=DESCRIPTOR,
828- containing_type=None,
829- fields=[
830- _descriptor.FieldDescriptor(
831- name='id', full_name='textsecure.PreKeyRecordStructure.id', index=0,
832- number=1, type=13, cpp_type=3, label=1,
833- has_default_value=False, default_value=0,
834- message_type=None, enum_type=None, containing_type=None,
835- is_extension=False, extension_scope=None,
836- options=None),
837- _descriptor.FieldDescriptor(
838- name='publicKey', full_name='textsecure.PreKeyRecordStructure.publicKey', index=1,
839- number=2, type=12, cpp_type=9, label=1,
840- has_default_value=False, default_value=_b(""),
841- message_type=None, enum_type=None, containing_type=None,
842- is_extension=False, extension_scope=None,
843- options=None),
844- _descriptor.FieldDescriptor(
845- name='privateKey', full_name='textsecure.PreKeyRecordStructure.privateKey', index=2,
846- number=3, type=12, cpp_type=9, label=1,
847- has_default_value=False, default_value=_b(""),
848- message_type=None, enum_type=None, containing_type=None,
849- is_extension=False, extension_scope=None,
850- options=None),
851- ],
852- extensions=[
853- ],
854- nested_types=[],
855- enum_types=[
856- ],
857- options=None,
858- is_extendable=False,
859- extension_ranges=[],
860- oneofs=[
861- ],
862- serialized_start=1281,
863- serialized_end=1355,
864-)
865-
866-
867-_SIGNEDPREKEYRECORDSTRUCTURE = _descriptor.Descriptor(
868- name='SignedPreKeyRecordStructure',
869- full_name='textsecure.SignedPreKeyRecordStructure',
870- filename=None,
871- file=DESCRIPTOR,
872- containing_type=None,
873- fields=[
874- _descriptor.FieldDescriptor(
875- name='id', full_name='textsecure.SignedPreKeyRecordStructure.id', index=0,
876- number=1, type=13, cpp_type=3, label=1,
877- has_default_value=False, default_value=0,
878- message_type=None, enum_type=None, containing_type=None,
879- is_extension=False, extension_scope=None,
880- options=None),
881- _descriptor.FieldDescriptor(
882- name='publicKey', full_name='textsecure.SignedPreKeyRecordStructure.publicKey', index=1,
883- number=2, type=12, cpp_type=9, label=1,
884- has_default_value=False, default_value=_b(""),
885- message_type=None, enum_type=None, containing_type=None,
886- is_extension=False, extension_scope=None,
887- options=None),
888- _descriptor.FieldDescriptor(
889- name='privateKey', full_name='textsecure.SignedPreKeyRecordStructure.privateKey', index=2,
890- number=3, type=12, cpp_type=9, label=1,
891- has_default_value=False, default_value=_b(""),
892- message_type=None, enum_type=None, containing_type=None,
893- is_extension=False, extension_scope=None,
894- options=None),
895- _descriptor.FieldDescriptor(
896- name='signature', full_name='textsecure.SignedPreKeyRecordStructure.signature', index=3,
897- number=4, type=12, cpp_type=9, label=1,
898- has_default_value=False, default_value=_b(""),
899- message_type=None, enum_type=None, containing_type=None,
900- is_extension=False, extension_scope=None,
901- options=None),
902- _descriptor.FieldDescriptor(
903- name='timestamp', full_name='textsecure.SignedPreKeyRecordStructure.timestamp', index=4,
904- number=5, type=6, cpp_type=4, label=1,
905- has_default_value=False, default_value=0,
906- message_type=None, enum_type=None, containing_type=None,
907- is_extension=False, extension_scope=None,
908- options=None),
909- ],
910- extensions=[
911- ],
912- nested_types=[],
913- enum_types=[
914- ],
915- options=None,
916- is_extendable=False,
917- extension_ranges=[],
918- oneofs=[
919- ],
920- serialized_start=1357,
921- serialized_end=1475,
922-)
923-
924-
925-_IDENTITYKEYPAIRSTRUCTURE = _descriptor.Descriptor(
926- name='IdentityKeyPairStructure',
927- full_name='textsecure.IdentityKeyPairStructure',
928- filename=None,
929- file=DESCRIPTOR,
930- containing_type=None,
931- fields=[
932- _descriptor.FieldDescriptor(
933- name='publicKey', full_name='textsecure.IdentityKeyPairStructure.publicKey', index=0,
934- number=1, type=12, cpp_type=9, label=1,
935- has_default_value=False, default_value=_b(""),
936- message_type=None, enum_type=None, containing_type=None,
937- is_extension=False, extension_scope=None,
938- options=None),
939- _descriptor.FieldDescriptor(
940- name='privateKey', full_name='textsecure.IdentityKeyPairStructure.privateKey', index=1,
941- number=2, type=12, cpp_type=9, label=1,
942- has_default_value=False, default_value=_b(""),
943- message_type=None, enum_type=None, containing_type=None,
944- is_extension=False, extension_scope=None,
945- options=None),
946- ],
947- extensions=[
948- ],
949- nested_types=[],
950- enum_types=[
951- ],
952- options=None,
953- is_extendable=False,
954- extension_ranges=[],
955- oneofs=[
956- ],
957- serialized_start=1477,
958- serialized_end=1542,
959-)
960-
961-
962-_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY = _descriptor.Descriptor(
963- name='SenderChainKey',
964- full_name='textsecure.SenderKeyStateStructure.SenderChainKey',
965- filename=None,
966- file=DESCRIPTOR,
967- containing_type=None,
968- fields=[
969- _descriptor.FieldDescriptor(
970- name='iteration', full_name='textsecure.SenderKeyStateStructure.SenderChainKey.iteration', index=0,
971- number=1, type=13, cpp_type=3, label=1,
972- has_default_value=False, default_value=0,
973- message_type=None, enum_type=None, containing_type=None,
974- is_extension=False, extension_scope=None,
975- options=None),
976- _descriptor.FieldDescriptor(
977- name='seed', full_name='textsecure.SenderKeyStateStructure.SenderChainKey.seed', index=1,
978- number=2, type=12, cpp_type=9, label=1,
979- has_default_value=False, default_value=_b(""),
980- message_type=None, enum_type=None, containing_type=None,
981- is_extension=False, extension_scope=None,
982- options=None),
983- ],
984- extensions=[
985- ],
986- nested_types=[],
987- enum_types=[
988- ],
989- options=None,
990- is_extendable=False,
991- extension_ranges=[],
992- oneofs=[
993- ],
994- serialized_start=1830,
995- serialized_end=1879,
996-)
997-
998-_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY = _descriptor.Descriptor(
999- name='SenderMessageKey',
1000- full_name='textsecure.SenderKeyStateStructure.SenderMessageKey',
1001- filename=None,
1002- file=DESCRIPTOR,
1003- containing_type=None,
1004- fields=[
1005- _descriptor.FieldDescriptor(
1006- name='iteration', full_name='textsecure.SenderKeyStateStructure.SenderMessageKey.iteration', index=0,
1007- number=1, type=13, cpp_type=3, label=1,
1008- has_default_value=False, default_value=0,
1009- message_type=None, enum_type=None, containing_type=None,
1010- is_extension=False, extension_scope=None,
1011- options=None),
1012- _descriptor.FieldDescriptor(
1013- name='seed', full_name='textsecure.SenderKeyStateStructure.SenderMessageKey.seed', index=1,
1014- number=2, type=12, cpp_type=9, label=1,
1015- has_default_value=False, default_value=_b(""),
1016- message_type=None, enum_type=None, containing_type=None,
1017- is_extension=False, extension_scope=None,
1018- options=None),
1019- ],
1020- extensions=[
1021- ],
1022- nested_types=[],
1023- enum_types=[
1024- ],
1025- options=None,
1026- is_extendable=False,
1027- extension_ranges=[],
1028- oneofs=[
1029- ],
1030- serialized_start=1881,
1031- serialized_end=1932,
1032-)
1033-
1034-_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY = _descriptor.Descriptor(
1035- name='SenderSigningKey',
1036- full_name='textsecure.SenderKeyStateStructure.SenderSigningKey',
1037- filename=None,
1038- file=DESCRIPTOR,
1039- containing_type=None,
1040- fields=[
1041- _descriptor.FieldDescriptor(
1042- name='public', full_name='textsecure.SenderKeyStateStructure.SenderSigningKey.public', index=0,
1043- number=1, type=12, cpp_type=9, label=1,
1044- has_default_value=False, default_value=_b(""),
1045- message_type=None, enum_type=None, containing_type=None,
1046- is_extension=False, extension_scope=None,
1047- options=None),
1048- _descriptor.FieldDescriptor(
1049- name='private', full_name='textsecure.SenderKeyStateStructure.SenderSigningKey.private', index=1,
1050- number=2, type=12, cpp_type=9, label=1,
1051- has_default_value=False, default_value=_b(""),
1052- message_type=None, enum_type=None, containing_type=None,
1053- is_extension=False, extension_scope=None,
1054- options=None),
1055- ],
1056- extensions=[
1057- ],
1058- nested_types=[],
1059- enum_types=[
1060- ],
1061- options=None,
1062- is_extendable=False,
1063- extension_ranges=[],
1064- oneofs=[
1065- ],
1066- serialized_start=1934,
1067- serialized_end=1985,
1068-)
1069-
1070-_SENDERKEYSTATESTRUCTURE = _descriptor.Descriptor(
1071- name='SenderKeyStateStructure',
1072- full_name='textsecure.SenderKeyStateStructure',
1073- filename=None,
1074- file=DESCRIPTOR,
1075- containing_type=None,
1076- fields=[
1077- _descriptor.FieldDescriptor(
1078- name='senderKeyId', full_name='textsecure.SenderKeyStateStructure.senderKeyId', index=0,
1079- number=1, type=13, cpp_type=3, label=1,
1080- has_default_value=False, default_value=0,
1081- message_type=None, enum_type=None, containing_type=None,
1082- is_extension=False, extension_scope=None,
1083- options=None),
1084- _descriptor.FieldDescriptor(
1085- name='senderChainKey', full_name='textsecure.SenderKeyStateStructure.senderChainKey', index=1,
1086- number=2, type=11, cpp_type=10, label=1,
1087- has_default_value=False, default_value=None,
1088- message_type=None, enum_type=None, containing_type=None,
1089- is_extension=False, extension_scope=None,
1090- options=None),
1091- _descriptor.FieldDescriptor(
1092- name='senderSigningKey', full_name='textsecure.SenderKeyStateStructure.senderSigningKey', index=2,
1093- number=3, type=11, cpp_type=10, label=1,
1094- has_default_value=False, default_value=None,
1095- message_type=None, enum_type=None, containing_type=None,
1096- is_extension=False, extension_scope=None,
1097- options=None),
1098- _descriptor.FieldDescriptor(
1099- name='senderMessageKeys', full_name='textsecure.SenderKeyStateStructure.senderMessageKeys', index=3,
1100- number=4, type=11, cpp_type=10, label=3,
1101- has_default_value=False, default_value=[],
1102- message_type=None, enum_type=None, containing_type=None,
1103- is_extension=False, extension_scope=None,
1104- options=None),
1105- ],
1106- extensions=[
1107- ],
1108- nested_types=[_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY, _SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY, _SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY, ],
1109- enum_types=[
1110- ],
1111- options=None,
1112- is_extendable=False,
1113- extension_ranges=[],
1114- oneofs=[
1115- ],
1116- serialized_start=1545,
1117- serialized_end=1985,
1118-)
1119-
1120-
1121-_SENDERKEYRECORDSTRUCTURE = _descriptor.Descriptor(
1122- name='SenderKeyRecordStructure',
1123- full_name='textsecure.SenderKeyRecordStructure',
1124- filename=None,
1125- file=DESCRIPTOR,
1126- containing_type=None,
1127- fields=[
1128- _descriptor.FieldDescriptor(
1129- name='senderKeyStates', full_name='textsecure.SenderKeyRecordStructure.senderKeyStates', index=0,
1130- number=1, type=11, cpp_type=10, label=3,
1131- has_default_value=False, default_value=[],
1132- message_type=None, enum_type=None, containing_type=None,
1133- is_extension=False, extension_scope=None,
1134- options=None),
1135- ],
1136- extensions=[
1137- ],
1138- nested_types=[],
1139- enum_types=[
1140- ],
1141- options=None,
1142- is_extendable=False,
1143- extension_ranges=[],
1144- oneofs=[
1145- ],
1146- serialized_start=1987,
1147- serialized_end=2075,
1148-)
1149-
1150-_SESSIONSTRUCTURE_CHAIN_CHAINKEY.containing_type = _SESSIONSTRUCTURE_CHAIN
1151-_SESSIONSTRUCTURE_CHAIN_MESSAGEKEY.containing_type = _SESSIONSTRUCTURE_CHAIN
1152-_SESSIONSTRUCTURE_CHAIN.fields_by_name['chainKey'].message_type = _SESSIONSTRUCTURE_CHAIN_CHAINKEY
1153-_SESSIONSTRUCTURE_CHAIN.fields_by_name['messageKeys'].message_type = _SESSIONSTRUCTURE_CHAIN_MESSAGEKEY
1154-_SESSIONSTRUCTURE_CHAIN.containing_type = _SESSIONSTRUCTURE
1155-_SESSIONSTRUCTURE_PENDINGKEYEXCHANGE.containing_type = _SESSIONSTRUCTURE
1156-_SESSIONSTRUCTURE_PENDINGPREKEY.containing_type = _SESSIONSTRUCTURE
1157-_SESSIONSTRUCTURE.fields_by_name['senderChain'].message_type = _SESSIONSTRUCTURE_CHAIN
1158-_SESSIONSTRUCTURE.fields_by_name['receiverChains'].message_type = _SESSIONSTRUCTURE_CHAIN
1159-_SESSIONSTRUCTURE.fields_by_name['pendingKeyExchange'].message_type = _SESSIONSTRUCTURE_PENDINGKEYEXCHANGE
1160-_SESSIONSTRUCTURE.fields_by_name['pendingPreKey'].message_type = _SESSIONSTRUCTURE_PENDINGPREKEY
1161-_RECORDSTRUCTURE.fields_by_name['currentSession'].message_type = _SESSIONSTRUCTURE
1162-_RECORDSTRUCTURE.fields_by_name['previousSessions'].message_type = _SESSIONSTRUCTURE
1163-_SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY.containing_type = _SENDERKEYSTATESTRUCTURE
1164-_SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY.containing_type = _SENDERKEYSTATESTRUCTURE
1165-_SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY.containing_type = _SENDERKEYSTATESTRUCTURE
1166-_SENDERKEYSTATESTRUCTURE.fields_by_name['senderChainKey'].message_type = _SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY
1167-_SENDERKEYSTATESTRUCTURE.fields_by_name['senderSigningKey'].message_type = _SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY
1168-_SENDERKEYSTATESTRUCTURE.fields_by_name['senderMessageKeys'].message_type = _SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY
1169-_SENDERKEYRECORDSTRUCTURE.fields_by_name['senderKeyStates'].message_type = _SENDERKEYSTATESTRUCTURE
1170-DESCRIPTOR.message_types_by_name['SessionStructure'] = _SESSIONSTRUCTURE
1171-DESCRIPTOR.message_types_by_name['RecordStructure'] = _RECORDSTRUCTURE
1172-DESCRIPTOR.message_types_by_name['PreKeyRecordStructure'] = _PREKEYRECORDSTRUCTURE
1173-DESCRIPTOR.message_types_by_name['SignedPreKeyRecordStructure'] = _SIGNEDPREKEYRECORDSTRUCTURE
1174-DESCRIPTOR.message_types_by_name['IdentityKeyPairStructure'] = _IDENTITYKEYPAIRSTRUCTURE
1175-DESCRIPTOR.message_types_by_name['SenderKeyStateStructure'] = _SENDERKEYSTATESTRUCTURE
1176-DESCRIPTOR.message_types_by_name['SenderKeyRecordStructure'] = _SENDERKEYRECORDSTRUCTURE
1177-
1178-SessionStructure = _reflection.GeneratedProtocolMessageType('SessionStructure', (_message.Message,), dict(
1179-
1180- Chain = _reflection.GeneratedProtocolMessageType('Chain', (_message.Message,), dict(
1181-
1182- ChainKey = _reflection.GeneratedProtocolMessageType('ChainKey', (_message.Message,), dict(
1183- DESCRIPTOR = _SESSIONSTRUCTURE_CHAIN_CHAINKEY,
1184- __module__ = 'LocalStorageProtocol_pb2'
1185- # @@protoc_insertion_point(class_scope:textsecure.SessionStructure.Chain.ChainKey)
1186- ))
1187- ,
1188-
1189- MessageKey = _reflection.GeneratedProtocolMessageType('MessageKey', (_message.Message,), dict(
1190- DESCRIPTOR = _SESSIONSTRUCTURE_CHAIN_MESSAGEKEY,
1191- __module__ = 'LocalStorageProtocol_pb2'
1192- # @@protoc_insertion_point(class_scope:textsecure.SessionStructure.Chain.MessageKey)
1193- ))
1194- ,
1195- DESCRIPTOR = _SESSIONSTRUCTURE_CHAIN,
1196- __module__ = 'LocalStorageProtocol_pb2'
1197- # @@protoc_insertion_point(class_scope:textsecure.SessionStructure.Chain)
1198- ))
1199- ,
1200-
1201- PendingKeyExchange = _reflection.GeneratedProtocolMessageType('PendingKeyExchange', (_message.Message,), dict(
1202- DESCRIPTOR = _SESSIONSTRUCTURE_PENDINGKEYEXCHANGE,
1203- __module__ = 'LocalStorageProtocol_pb2'
1204- # @@protoc_insertion_point(class_scope:textsecure.SessionStructure.PendingKeyExchange)
1205- ))
1206- ,
1207-
1208- PendingPreKey = _reflection.GeneratedProtocolMessageType('PendingPreKey', (_message.Message,), dict(
1209- DESCRIPTOR = _SESSIONSTRUCTURE_PENDINGPREKEY,
1210- __module__ = 'LocalStorageProtocol_pb2'
1211- # @@protoc_insertion_point(class_scope:textsecure.SessionStructure.PendingPreKey)
1212- ))
1213- ,
1214- DESCRIPTOR = _SESSIONSTRUCTURE,
1215- __module__ = 'LocalStorageProtocol_pb2'
1216- # @@protoc_insertion_point(class_scope:textsecure.SessionStructure)
1217- ))
1218-_sym_db.RegisterMessage(SessionStructure)
1219-_sym_db.RegisterMessage(SessionStructure.Chain)
1220-_sym_db.RegisterMessage(SessionStructure.Chain.ChainKey)
1221-_sym_db.RegisterMessage(SessionStructure.Chain.MessageKey)
1222-_sym_db.RegisterMessage(SessionStructure.PendingKeyExchange)
1223-_sym_db.RegisterMessage(SessionStructure.PendingPreKey)
1224-
1225-RecordStructure = _reflection.GeneratedProtocolMessageType('RecordStructure', (_message.Message,), dict(
1226- DESCRIPTOR = _RECORDSTRUCTURE,
1227- __module__ = 'LocalStorageProtocol_pb2'
1228- # @@protoc_insertion_point(class_scope:textsecure.RecordStructure)
1229- ))
1230-_sym_db.RegisterMessage(RecordStructure)
1231-
1232-PreKeyRecordStructure = _reflection.GeneratedProtocolMessageType('PreKeyRecordStructure', (_message.Message,), dict(
1233- DESCRIPTOR = _PREKEYRECORDSTRUCTURE,
1234- __module__ = 'LocalStorageProtocol_pb2'
1235- # @@protoc_insertion_point(class_scope:textsecure.PreKeyRecordStructure)
1236- ))
1237-_sym_db.RegisterMessage(PreKeyRecordStructure)
1238-
1239-SignedPreKeyRecordStructure = _reflection.GeneratedProtocolMessageType('SignedPreKeyRecordStructure', (_message.Message,), dict(
1240- DESCRIPTOR = _SIGNEDPREKEYRECORDSTRUCTURE,
1241- __module__ = 'LocalStorageProtocol_pb2'
1242- # @@protoc_insertion_point(class_scope:textsecure.SignedPreKeyRecordStructure)
1243- ))
1244-_sym_db.RegisterMessage(SignedPreKeyRecordStructure)
1245-
1246-IdentityKeyPairStructure = _reflection.GeneratedProtocolMessageType('IdentityKeyPairStructure', (_message.Message,), dict(
1247- DESCRIPTOR = _IDENTITYKEYPAIRSTRUCTURE,
1248- __module__ = 'LocalStorageProtocol_pb2'
1249- # @@protoc_insertion_point(class_scope:textsecure.IdentityKeyPairStructure)
1250- ))
1251-_sym_db.RegisterMessage(IdentityKeyPairStructure)
1252-
1253-SenderKeyStateStructure = _reflection.GeneratedProtocolMessageType('SenderKeyStateStructure', (_message.Message,), dict(
1254-
1255- SenderChainKey = _reflection.GeneratedProtocolMessageType('SenderChainKey', (_message.Message,), dict(
1256- DESCRIPTOR = _SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY,
1257- __module__ = 'LocalStorageProtocol_pb2'
1258- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure.SenderChainKey)
1259- ))
1260- ,
1261-
1262- SenderMessageKey = _reflection.GeneratedProtocolMessageType('SenderMessageKey', (_message.Message,), dict(
1263- DESCRIPTOR = _SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY,
1264- __module__ = 'LocalStorageProtocol_pb2'
1265- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure.SenderMessageKey)
1266- ))
1267- ,
1268-
1269- SenderSigningKey = _reflection.GeneratedProtocolMessageType('SenderSigningKey', (_message.Message,), dict(
1270- DESCRIPTOR = _SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY,
1271- __module__ = 'LocalStorageProtocol_pb2'
1272- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure.SenderSigningKey)
1273- ))
1274- ,
1275- DESCRIPTOR = _SENDERKEYSTATESTRUCTURE,
1276- __module__ = 'LocalStorageProtocol_pb2'
1277- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure)
1278- ))
1279-_sym_db.RegisterMessage(SenderKeyStateStructure)
1280-_sym_db.RegisterMessage(SenderKeyStateStructure.SenderChainKey)
1281-_sym_db.RegisterMessage(SenderKeyStateStructure.SenderMessageKey)
1282-_sym_db.RegisterMessage(SenderKeyStateStructure.SenderSigningKey)
1283-
1284-SenderKeyRecordStructure = _reflection.GeneratedProtocolMessageType('SenderKeyRecordStructure', (_message.Message,), dict(
1285- DESCRIPTOR = _SENDERKEYRECORDSTRUCTURE,
1286- __module__ = 'LocalStorageProtocol_pb2'
1287- # @@protoc_insertion_point(class_scope:textsecure.SenderKeyRecordStructure)
1288- ))
1289-_sym_db.RegisterMessage(SenderKeyRecordStructure)
1290-
1291-
1292-DESCRIPTOR.has_options = True
1293-DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n#org.whispersystems.libaxolotl.stateB\rStorageProtos'))
1294+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+axolotl/protobuf/LocalStorageProtocol.proto\x12\ntextsecure\"\xd3\x08\n\x10SessionStructure\x12\x16\n\x0esessionVersion\x18\x01 \x01(\r\x12\x1b\n\x13localIdentityPublic\x18\x02 \x01(\x0c\x12\x1c\n\x14remoteIdentityPublic\x18\x03 \x01(\x0c\x12\x0f\n\x07rootKey\x18\x04 \x01(\x0c\x12\x17\n\x0fpreviousCounter\x18\x05 \x01(\r\x12\x37\n\x0bsenderChain\x18\x06 \x01(\x0b\x32\".textsecure.SessionStructure.Chain\x12:\n\x0ereceiverChains\x18\x07 \x03(\x0b\x32\".textsecure.SessionStructure.Chain\x12K\n\x12pendingKeyExchange\x18\x08 \x01(\x0b\x32/.textsecure.SessionStructure.PendingKeyExchange\x12\x41\n\rpendingPreKey\x18\t \x01(\x0b\x32*.textsecure.SessionStructure.PendingPreKey\x12\x1c\n\x14remoteRegistrationId\x18\n \x01(\r\x12\x1b\n\x13localRegistrationId\x18\x0b \x01(\r\x12\x14\n\x0cneedsRefresh\x18\x0c \x01(\x08\x12\x14\n\x0c\x61liceBaseKey\x18\r \x01(\x0c\x1a\xb9\x02\n\x05\x43hain\x12\x18\n\x10senderRatchetKey\x18\x01 \x01(\x0c\x12\x1f\n\x17senderRatchetKeyPrivate\x18\x02 \x01(\x0c\x12=\n\x08\x63hainKey\x18\x03 \x01(\x0b\x32+.textsecure.SessionStructure.Chain.ChainKey\x12\x42\n\x0bmessageKeys\x18\x04 \x03(\x0b\x32-.textsecure.SessionStructure.Chain.MessageKey\x1a&\n\x08\x43hainKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x1aJ\n\nMessageKey\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tcipherKey\x18\x02 \x01(\x0c\x12\x0e\n\x06macKey\x18\x03 \x01(\x0c\x12\n\n\x02iv\x18\x04 \x01(\x0c\x1a\xcd\x01\n\x12PendingKeyExchange\x12\x10\n\x08sequence\x18\x01 \x01(\r\x12\x14\n\x0clocalBaseKey\x18\x02 \x01(\x0c\x12\x1b\n\x13localBaseKeyPrivate\x18\x03 \x01(\x0c\x12\x17\n\x0flocalRatchetKey\x18\x04 \x01(\x0c\x12\x1e\n\x16localRatchetKeyPrivate\x18\x05 \x01(\x0c\x12\x18\n\x10localIdentityKey\x18\x07 \x01(\x0c\x12\x1f\n\x17localIdentityKeyPrivate\x18\x08 \x01(\x0c\x1aJ\n\rPendingPreKey\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x03 \x01(\x05\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\"\x7f\n\x0fRecordStructure\x12\x34\n\x0e\x63urrentSession\x18\x01 \x01(\x0b\x32\x1c.textsecure.SessionStructure\x12\x36\n\x10previousSessions\x18\x02 \x03(\x0b\x32\x1c.textsecure.SessionStructure\"J\n\x15PreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"v\n\x1bSignedPreKeyRecordStructure\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\x12\x11\n\ttimestamp\x18\x05 \x01(\x06\"A\n\x18IdentityKeyPairStructure\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\"\xb8\x03\n\x17SenderKeyStateStructure\x12\x13\n\x0bsenderKeyId\x18\x01 \x01(\r\x12J\n\x0esenderChainKey\x18\x02 \x01(\x0b\x32\x32.textsecure.SenderKeyStateStructure.SenderChainKey\x12N\n\x10senderSigningKey\x18\x03 \x01(\x0b\x32\x34.textsecure.SenderKeyStateStructure.SenderSigningKey\x12O\n\x11senderMessageKeys\x18\x04 \x03(\x0b\x32\x34.textsecure.SenderKeyStateStructure.SenderMessageKey\x1a\x31\n\x0eSenderChainKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderMessageKey\x12\x11\n\titeration\x18\x01 \x01(\r\x12\x0c\n\x04seed\x18\x02 \x01(\x0c\x1a\x33\n\x10SenderSigningKey\x12\x0e\n\x06public\x18\x01 \x01(\x0c\x12\x0f\n\x07private\x18\x02 \x01(\x0c\"X\n\x18SenderKeyRecordStructure\x12<\n\x0fsenderKeyStates\x18\x01 \x03(\x0b\x32#.textsecure.SenderKeyStateStructureB4\n#org.whispersystems.libaxolotl.stateB\rStorageProtos')
1295+
1296+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
1297+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'axolotl.protobuf.LocalStorageProtocol_pb2', globals())
1298+if _descriptor._USE_C_DESCRIPTORS == False:
1299+
1300+ DESCRIPTOR._options = None
1301+ DESCRIPTOR._serialized_options = b'\n#org.whispersystems.libaxolotl.stateB\rStorageProtos'
1302+ _SESSIONSTRUCTURE._serialized_start=60
1303+ _SESSIONSTRUCTURE._serialized_end=1167
1304+ _SESSIONSTRUCTURE_CHAIN._serialized_start=570
1305+ _SESSIONSTRUCTURE_CHAIN._serialized_end=883
1306+ _SESSIONSTRUCTURE_CHAIN_CHAINKEY._serialized_start=769
1307+ _SESSIONSTRUCTURE_CHAIN_CHAINKEY._serialized_end=807
1308+ _SESSIONSTRUCTURE_CHAIN_MESSAGEKEY._serialized_start=809
1309+ _SESSIONSTRUCTURE_CHAIN_MESSAGEKEY._serialized_end=883
1310+ _SESSIONSTRUCTURE_PENDINGKEYEXCHANGE._serialized_start=886
1311+ _SESSIONSTRUCTURE_PENDINGKEYEXCHANGE._serialized_end=1091
1312+ _SESSIONSTRUCTURE_PENDINGPREKEY._serialized_start=1093
1313+ _SESSIONSTRUCTURE_PENDINGPREKEY._serialized_end=1167
1314+ _RECORDSTRUCTURE._serialized_start=1169
1315+ _RECORDSTRUCTURE._serialized_end=1296
1316+ _PREKEYRECORDSTRUCTURE._serialized_start=1298
1317+ _PREKEYRECORDSTRUCTURE._serialized_end=1372
1318+ _SIGNEDPREKEYRECORDSTRUCTURE._serialized_start=1374
1319+ _SIGNEDPREKEYRECORDSTRUCTURE._serialized_end=1492
1320+ _IDENTITYKEYPAIRSTRUCTURE._serialized_start=1494
1321+ _IDENTITYKEYPAIRSTRUCTURE._serialized_end=1559
1322+ _SENDERKEYSTATESTRUCTURE._serialized_start=1562
1323+ _SENDERKEYSTATESTRUCTURE._serialized_end=2002
1324+ _SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY._serialized_start=1847
1325+ _SENDERKEYSTATESTRUCTURE_SENDERCHAINKEY._serialized_end=1896
1326+ _SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY._serialized_start=1898
1327+ _SENDERKEYSTATESTRUCTURE_SENDERMESSAGEKEY._serialized_end=1949
1328+ _SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY._serialized_start=1951
1329+ _SENDERKEYSTATESTRUCTURE_SENDERSIGNINGKEY._serialized_end=2002
1330+ _SENDERKEYRECORDSTRUCTURE._serialized_start=2004
1331+ _SENDERKEYRECORDSTRUCTURE._serialized_end=2092
1332 # @@protoc_insertion_point(module_scope)
1333diff --git a/setup.py b/setup.py
1334index 1207794..db186dd 100644
1335--- a/setup.py
1336+++ b/setup.py
1337@@ -5,7 +5,7 @@
1338 import axolotl
1339 from setuptools import find_packages, setup
1340
1341-deps = ['cryptography', 'python-axolotl-curve25519>=0.4.1', 'protobuf>=3.0.0.b2']
1342+deps = ['cryptography', 'python-axolotl-curve25519>=0.4.1', 'protobuf>=3.20.0']
1343
1344 setup(
1345 name='python-axolotl',
1346diff --git a/tox.ini b/tox.ini
1347index 789aa20..21ca5d7 100644
1348--- a/tox.ini
1349+++ b/tox.ini
1350@@ -11,6 +11,6 @@ envlist = py26, py27, py32, py33, py35, py36, py37
1351 commands = nosetests axolotl.tests
1352 deps =
1353 nose
1354- protobuf==3.0.0b2
1355+ protobuf>=3.20.0
1356 cryptography
1357 python-axolotl-curve25519