aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/whispersystems/libaxolotl/state
diff options
context:
space:
mode:
authorMoxie Marlinspike <moxie@thoughtcrime.org>2014-11-24 12:54:30 -0800
committerMoxie Marlinspike <moxie@thoughtcrime.org>2014-11-24 12:54:30 -0800
commit60800e155612bea797eed93c67046a23d26054cc (patch)
treed88368c1c26162e27e790195133ca2b526597afe /src/main/java/org/whispersystems/libaxolotl/state
Break out into separate repo.
Diffstat (limited to 'src/main/java/org/whispersystems/libaxolotl/state')
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/AxolotlStore.java6
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/IdentityKeyStore.java57
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/PreKeyBundle.java96
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/PreKeyRecord.java51
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/PreKeyStore.java42
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/SessionRecord.java117
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/SessionState.java509
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/SessionStore.java68
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyRecord.java61
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyStore.java47
-rw-r--r--src/main/java/org/whispersystems/libaxolotl/state/StorageProtos.java11779
11 files changed, 12833 insertions, 0 deletions
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/AxolotlStore.java b/src/main/java/org/whispersystems/libaxolotl/state/AxolotlStore.java
new file mode 100644
index 00000000..2fda9a21
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/AxolotlStore.java
@@ -0,0 +1,6 @@
+package org.whispersystems.libaxolotl.state;
+
+public interface AxolotlStore
+ extends IdentityKeyStore, PreKeyStore, SessionStore, SignedPreKeyStore
+{
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/IdentityKeyStore.java b/src/main/java/org/whispersystems/libaxolotl/state/IdentityKeyStore.java
new file mode 100644
index 00000000..d2024f78
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/IdentityKeyStore.java
@@ -0,0 +1,57 @@
+package org.whispersystems.libaxolotl.state;
+
+import org.whispersystems.libaxolotl.IdentityKey;
+import org.whispersystems.libaxolotl.IdentityKeyPair;
+
+/**
+ * Provides an interface to identity information.
+ *
+ * @author Moxie Marlinspike
+ */
+public interface IdentityKeyStore {
+
+ /**
+ * Get the local client's identity key pair.
+ *
+ * @return The local client's persistent identity key pair.
+ */
+ public IdentityKeyPair getIdentityKeyPair();
+
+ /**
+ * Return the local client's registration ID.
+ * <p>
+ * Clients should maintain a registration ID, a random number
+ * between 1 and 16380 that's generated once at install time.
+ *
+ * @return the local client's registration ID.
+ */
+ public int getLocalRegistrationId();
+
+ /**
+ * Save a remote client's identity key
+ * <p>
+ * Store a remote client's identity key as trusted.
+ *
+ * @param recipientId The recipient ID of the remote client.
+ * @param identityKey The remote client's identity key.
+ */
+ public void saveIdentity(long recipientId, IdentityKey identityKey);
+
+
+ /**
+ * Verify a remote client's identity key.
+ * <p>
+ * Determine whether a remote client's identity is trusted. Convention is
+ * that the TextSecure protocol is 'trust on first use.' This means that
+ * an identity key is considered 'trusted' if there is no entry for the recipient
+ * in the local store, or if it matches the saved key for a recipient in the local
+ * store. Only if it mismatches an entry in the local store is it considered
+ * 'untrusted.'
+ *
+ * @param recipientId The recipient ID of the remote client.
+ * @param identityKey The identity key to verify.
+ * @return true if trusted, false if untrusted.
+ */
+ public boolean isTrustedIdentity(long recipientId, IdentityKey identityKey);
+
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/PreKeyBundle.java b/src/main/java/org/whispersystems/libaxolotl/state/PreKeyBundle.java
new file mode 100644
index 00000000..772bcc14
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/PreKeyBundle.java
@@ -0,0 +1,96 @@
+package org.whispersystems.libaxolotl.state;
+
+import org.whispersystems.libaxolotl.IdentityKey;
+import org.whispersystems.libaxolotl.ecc.ECPublicKey;
+
+/**
+ * A class that contains a remote PreKey and collection
+ * of associated items.
+ *
+ * @author Moxie Marlinspike
+ */
+public class PreKeyBundle {
+
+ private int registrationId;
+
+ private int deviceId;
+
+ private int preKeyId;
+ private ECPublicKey preKeyPublic;
+
+ private int signedPreKeyId;
+ private ECPublicKey signedPreKeyPublic;
+ private byte[] signedPreKeySignature;
+
+ private IdentityKey identityKey;
+
+ public PreKeyBundle(int registrationId, int deviceId, int preKeyId, ECPublicKey preKeyPublic,
+ int signedPreKeyId, ECPublicKey signedPreKeyPublic, byte[] signedPreKeySignature,
+ IdentityKey identityKey)
+ {
+ this.registrationId = registrationId;
+ this.deviceId = deviceId;
+ this.preKeyId = preKeyId;
+ this.preKeyPublic = preKeyPublic;
+ this.signedPreKeyId = signedPreKeyId;
+ this.signedPreKeyPublic = signedPreKeyPublic;
+ this.signedPreKeySignature = signedPreKeySignature;
+ this.identityKey = identityKey;
+ }
+
+ /**
+ * @return the device ID this PreKey belongs to.
+ */
+ public int getDeviceId() {
+ return deviceId;
+ }
+
+ /**
+ * @return the unique key ID for this PreKey.
+ */
+ public int getPreKeyId() {
+ return preKeyId;
+ }
+
+ /**
+ * @return the public key for this PreKey.
+ */
+ public ECPublicKey getPreKey() {
+ return preKeyPublic;
+ }
+
+ /**
+ * @return the unique key ID for this signed prekey.
+ */
+ public int getSignedPreKeyId() {
+ return signedPreKeyId;
+ }
+
+ /**
+ * @return the signed prekey for this PreKeyBundle.
+ */
+ public ECPublicKey getSignedPreKey() {
+ return signedPreKeyPublic;
+ }
+
+ /**
+ * @return the signature over the signed prekey.
+ */
+ public byte[] getSignedPreKeySignature() {
+ return signedPreKeySignature;
+ }
+
+ /**
+ * @return the {@link org.whispersystems.libaxolotl.IdentityKey} of this PreKeys owner.
+ */
+ public IdentityKey getIdentityKey() {
+ return identityKey;
+ }
+
+ /**
+ * @return the registration ID associated with this PreKey.
+ */
+ public int getRegistrationId() {
+ return registrationId;
+ }
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/PreKeyRecord.java b/src/main/java/org/whispersystems/libaxolotl/state/PreKeyRecord.java
new file mode 100644
index 00000000..0ea905f4
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/PreKeyRecord.java
@@ -0,0 +1,51 @@
+package org.whispersystems.libaxolotl.state;
+
+import com.google.protobuf.ByteString;
+
+import org.whispersystems.libaxolotl.InvalidKeyException;
+import org.whispersystems.libaxolotl.ecc.Curve;
+import org.whispersystems.libaxolotl.ecc.ECKeyPair;
+import org.whispersystems.libaxolotl.ecc.ECPrivateKey;
+import org.whispersystems.libaxolotl.ecc.ECPublicKey;
+
+import java.io.IOException;
+
+import static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure;
+
+public class PreKeyRecord {
+
+ private PreKeyRecordStructure structure;
+
+ public PreKeyRecord(int id, ECKeyPair keyPair) {
+ this.structure = PreKeyRecordStructure.newBuilder()
+ .setId(id)
+ .setPublicKey(ByteString.copyFrom(keyPair.getPublicKey()
+ .serialize()))
+ .setPrivateKey(ByteString.copyFrom(keyPair.getPrivateKey()
+ .serialize()))
+ .build();
+ }
+
+ public PreKeyRecord(byte[] serialized) throws IOException {
+ this.structure = PreKeyRecordStructure.parseFrom(serialized);
+ }
+
+ public int getId() {
+ return this.structure.getId();
+ }
+
+ public ECKeyPair getKeyPair() {
+ try {
+ ECPublicKey publicKey = Curve.decodePoint(this.structure.getPublicKey().toByteArray(), 0);
+ ECPrivateKey privateKey = Curve.decodePrivatePoint(this.structure.getPrivateKey().toByteArray());
+
+ return new ECKeyPair(publicKey, privateKey);
+ } catch (InvalidKeyException e) {
+ throw new AssertionError(e);
+ }
+ }
+
+ public byte[] serialize() {
+ return this.structure.toByteArray();
+ }
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/PreKeyStore.java b/src/main/java/org/whispersystems/libaxolotl/state/PreKeyStore.java
new file mode 100644
index 00000000..7dc5e626
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/PreKeyStore.java
@@ -0,0 +1,42 @@
+package org.whispersystems.libaxolotl.state;
+
+import org.whispersystems.libaxolotl.InvalidKeyIdException;
+
+/**
+ * An interface describing the local storage of {@link PreKeyRecord}s.
+ *
+ * @author Moxie Marlinspike
+ */
+public interface PreKeyStore {
+
+ /**
+ * Load a local PreKeyRecord.
+ *
+ * @param preKeyId the ID of the local PreKeyRecord.
+ * @return the corresponding PreKeyRecord.
+ * @throws InvalidKeyIdException when there is no corresponding PreKeyRecord.
+ */
+ public PreKeyRecord loadPreKey(int preKeyId) throws InvalidKeyIdException;
+
+ /**
+ * Store a local PreKeyRecord.
+ *
+ * @param preKeyId the ID of the PreKeyRecord to store.
+ * @param record the PreKeyRecord.
+ */
+ public void storePreKey(int preKeyId, PreKeyRecord record);
+
+ /**
+ * @param preKeyId A PreKeyRecord ID.
+ * @return true if the store has a record for the preKeyId, otherwise false.
+ */
+ public boolean containsPreKey(int preKeyId);
+
+ /**
+ * Delete a PreKeyRecord from local storage.
+ *
+ * @param preKeyId The ID of the PreKeyRecord to remove.
+ */
+ public void removePreKey(int preKeyId);
+
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/SessionRecord.java b/src/main/java/org/whispersystems/libaxolotl/state/SessionRecord.java
new file mode 100644
index 00000000..76c64922
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/SessionRecord.java
@@ -0,0 +1,117 @@
+package org.whispersystems.libaxolotl.state;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+import static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure;
+import static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure;
+
+/**
+ * A SessionRecord encapsulates the state of an ongoing session.
+ *
+ * @author Moxie Marlinspike
+ */
+public class SessionRecord {
+
+ private static final int ARCHIVED_STATES_MAX_LENGTH = 40;
+
+ private SessionState sessionState = new SessionState();
+ private LinkedList<SessionState> previousStates = new LinkedList<>();
+ private boolean fresh = false;
+
+ public SessionRecord() {
+ this.fresh = true;
+ }
+
+ public SessionRecord(SessionState sessionState) {
+ this.sessionState = sessionState;
+ this.fresh = false;
+ }
+
+ public SessionRecord(byte[] serialized) throws IOException {
+ RecordStructure record = RecordStructure.parseFrom(serialized);
+ this.sessionState = new SessionState(record.getCurrentSession());
+ this.fresh = false;
+
+ for (SessionStructure previousStructure : record.getPreviousSessionsList()) {
+ previousStates.add(new SessionState(previousStructure));
+ }
+ }
+
+ public boolean hasSessionState(int version, byte[] aliceBaseKey) {
+ if (sessionState.getSessionVersion() == version &&
+ Arrays.equals(aliceBaseKey, sessionState.getAliceBaseKey()))
+ {
+ return true;
+ }
+
+ for (SessionState state : previousStates) {
+ if (state.getSessionVersion() == version &&
+ Arrays.equals(aliceBaseKey, state.getAliceBaseKey()))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public SessionState getSessionState() {
+ return sessionState;
+ }
+
+ /**
+ * @return the list of all currently maintained "previous" session states.
+ */
+ public List<SessionState> getPreviousSessionStates() {
+ return previousStates;
+ }
+
+
+ public boolean isFresh() {
+ return fresh;
+ }
+
+ /**
+ * Move the current {@link SessionState} into the list of "previous" session states,
+ * and replace the current {@link org.whispersystems.libaxolotl.state.SessionState}
+ * with a fresh reset instance.
+ */
+ public void archiveCurrentState() {
+ promoteState(new SessionState());
+ }
+
+ public void promoteState(SessionState promotedState) {
+ this.previousStates.addFirst(sessionState);
+ this.sessionState = promotedState;
+
+ if (previousStates.size() > ARCHIVED_STATES_MAX_LENGTH) {
+ previousStates.removeLast();
+ }
+ }
+
+ public void setState(SessionState sessionState) {
+ this.sessionState = sessionState;
+ }
+
+ /**
+ * @return a serialized version of the current SessionRecord.
+ */
+ public byte[] serialize() {
+ List<SessionStructure> previousStructures = new LinkedList<>();
+
+ for (SessionState previousState : previousStates) {
+ previousStructures.add(previousState.getStructure());
+ }
+
+ RecordStructure record = RecordStructure.newBuilder()
+ .setCurrentSession(sessionState.getStructure())
+ .addAllPreviousSessions(previousStructures)
+ .build();
+
+ return record.toByteArray();
+ }
+
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/SessionState.java b/src/main/java/org/whispersystems/libaxolotl/state/SessionState.java
new file mode 100644
index 00000000..9b2b1e2a
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/SessionState.java
@@ -0,0 +1,509 @@
+/**
+ * Copyright (C) 2014 Open Whisper Systems
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package org.whispersystems.libaxolotl.state;
+
+import android.util.Log;
+
+import com.google.protobuf.ByteString;
+
+import org.whispersystems.libaxolotl.IdentityKey;
+import org.whispersystems.libaxolotl.IdentityKeyPair;
+import org.whispersystems.libaxolotl.InvalidKeyException;
+import org.whispersystems.libaxolotl.ecc.Curve;
+import org.whispersystems.libaxolotl.ecc.ECKeyPair;
+import org.whispersystems.libaxolotl.ecc.ECPrivateKey;
+import org.whispersystems.libaxolotl.ecc.ECPublicKey;
+import org.whispersystems.libaxolotl.kdf.HKDF;
+import org.whispersystems.libaxolotl.ratchet.ChainKey;
+import org.whispersystems.libaxolotl.ratchet.MessageKeys;
+import org.whispersystems.libaxolotl.ratchet.RootKey;
+import org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain;
+import org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange;
+import org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey;
+import org.whispersystems.libaxolotl.util.Pair;
+import org.whispersystems.libaxolotl.util.guava.Optional;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+import static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure;
+
+public class SessionState {
+
+ private SessionStructure sessionStructure;
+
+ public SessionState() {
+ this.sessionStructure = SessionStructure.newBuilder().build();
+ }
+
+ public SessionState(SessionStructure sessionStructure) {
+ this.sessionStructure = sessionStructure;
+ }
+
+ public SessionState(SessionState copy) {
+ this.sessionStructure = copy.sessionStructure.toBuilder().build();
+ }
+
+ public SessionStructure getStructure() {
+ return sessionStructure;
+ }
+
+ public byte[] getAliceBaseKey() {
+ return this.sessionStructure.getAliceBaseKey().toByteArray();
+ }
+
+ public void setAliceBaseKey(byte[] aliceBaseKey) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setAliceBaseKey(ByteString.copyFrom(aliceBaseKey))
+ .build();
+ }
+
+ public void setSessionVersion(int version) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setSessionVersion(version)
+ .build();
+ }
+
+ public int getSessionVersion() {
+ int sessionVersion = this.sessionStructure.getSessionVersion();
+
+ if (sessionVersion == 0) return 2;
+ else return sessionVersion;
+ }
+
+ public void setRemoteIdentityKey(IdentityKey identityKey) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setRemoteIdentityPublic(ByteString.copyFrom(identityKey.serialize()))
+ .build();
+ }
+
+ public void setLocalIdentityKey(IdentityKey identityKey) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setLocalIdentityPublic(ByteString.copyFrom(identityKey.serialize()))
+ .build();
+ }
+
+ public IdentityKey getRemoteIdentityKey() {
+ try {
+ if (!this.sessionStructure.hasRemoteIdentityPublic()) {
+ return null;
+ }
+
+ return new IdentityKey(this.sessionStructure.getRemoteIdentityPublic().toByteArray(), 0);
+ } catch (InvalidKeyException e) {
+ Log.w("SessionRecordV2", e);
+ return null;
+ }
+ }
+
+ public IdentityKey getLocalIdentityKey() {
+ try {
+ return new IdentityKey(this.sessionStructure.getLocalIdentityPublic().toByteArray(), 0);
+ } catch (InvalidKeyException e) {
+ throw new AssertionError(e);
+ }
+ }
+
+ public int getPreviousCounter() {
+ return sessionStructure.getPreviousCounter();
+ }
+
+ public void setPreviousCounter(int previousCounter) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setPreviousCounter(previousCounter)
+ .build();
+ }
+
+ public RootKey getRootKey() {
+ return new RootKey(HKDF.createFor(getSessionVersion()),
+ this.sessionStructure.getRootKey().toByteArray());
+ }
+
+ public void setRootKey(RootKey rootKey) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setRootKey(ByteString.copyFrom(rootKey.getKeyBytes()))
+ .build();
+ }
+
+ public ECPublicKey getSenderRatchetKey() {
+ try {
+ return Curve.decodePoint(sessionStructure.getSenderChain().getSenderRatchetKey().toByteArray(), 0);
+ } catch (InvalidKeyException e) {
+ throw new AssertionError(e);
+ }
+ }
+
+ public ECKeyPair getSenderRatchetKeyPair() {
+ ECPublicKey publicKey = getSenderRatchetKey();
+ ECPrivateKey privateKey = Curve.decodePrivatePoint(sessionStructure.getSenderChain()
+ .getSenderRatchetKeyPrivate()
+ .toByteArray());
+
+ return new ECKeyPair(publicKey, privateKey);
+ }
+
+ public boolean hasReceiverChain(ECPublicKey senderEphemeral) {
+ return getReceiverChain(senderEphemeral) != null;
+ }
+
+ public boolean hasSenderChain() {
+ return sessionStructure.hasSenderChain();
+ }
+
+ private Pair<Chain,Integer> getReceiverChain(ECPublicKey senderEphemeral) {
+ List<Chain> receiverChains = sessionStructure.getReceiverChainsList();
+ int index = 0;
+
+ for (Chain receiverChain : receiverChains) {
+ try {
+ ECPublicKey chainSenderRatchetKey = Curve.decodePoint(receiverChain.getSenderRatchetKey().toByteArray(), 0);
+
+ if (chainSenderRatchetKey.equals(senderEphemeral)) {
+ return new Pair<>(receiverChain,index);
+ }
+ } catch (InvalidKeyException e) {
+ Log.w("SessionRecordV2", e);
+ }
+
+ index++;
+ }
+
+ return null;
+ }
+
+ public ChainKey getReceiverChainKey(ECPublicKey senderEphemeral) {
+ Pair<Chain,Integer> receiverChainAndIndex = getReceiverChain(senderEphemeral);
+ Chain receiverChain = receiverChainAndIndex.first();
+
+ if (receiverChain == null) {
+ return null;
+ } else {
+ return new ChainKey(HKDF.createFor(getSessionVersion()),
+ receiverChain.getChainKey().getKey().toByteArray(),
+ receiverChain.getChainKey().getIndex());
+ }
+ }
+
+ public void addReceiverChain(ECPublicKey senderRatchetKey, ChainKey chainKey) {
+ Chain.ChainKey chainKeyStructure = Chain.ChainKey.newBuilder()
+ .setKey(ByteString.copyFrom(chainKey.getKey()))
+ .setIndex(chainKey.getIndex())
+ .build();
+
+ Chain chain = Chain.newBuilder()
+ .setChainKey(chainKeyStructure)
+ .setSenderRatchetKey(ByteString.copyFrom(senderRatchetKey.serialize()))
+ .build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder().addReceiverChains(chain).build();
+
+ if (this.sessionStructure.getReceiverChainsList().size() > 5) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .removeReceiverChains(0)
+ .build();
+ }
+ }
+
+ public void setSenderChain(ECKeyPair senderRatchetKeyPair, ChainKey chainKey) {
+ Chain.ChainKey chainKeyStructure = Chain.ChainKey.newBuilder()
+ .setKey(ByteString.copyFrom(chainKey.getKey()))
+ .setIndex(chainKey.getIndex())
+ .build();
+
+ Chain senderChain = Chain.newBuilder()
+ .setSenderRatchetKey(ByteString.copyFrom(senderRatchetKeyPair.getPublicKey().serialize()))
+ .setSenderRatchetKeyPrivate(ByteString.copyFrom(senderRatchetKeyPair.getPrivateKey().serialize()))
+ .setChainKey(chainKeyStructure)
+ .build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder().setSenderChain(senderChain).build();
+ }
+
+ public ChainKey getSenderChainKey() {
+ Chain.ChainKey chainKeyStructure = sessionStructure.getSenderChain().getChainKey();
+ return new ChainKey(HKDF.createFor(getSessionVersion()),
+ chainKeyStructure.getKey().toByteArray(), chainKeyStructure.getIndex());
+ }
+
+
+ public void setSenderChainKey(ChainKey nextChainKey) {
+ Chain.ChainKey chainKey = Chain.ChainKey.newBuilder()
+ .setKey(ByteString.copyFrom(nextChainKey.getKey()))
+ .setIndex(nextChainKey.getIndex())
+ .build();
+
+ Chain chain = sessionStructure.getSenderChain().toBuilder()
+ .setChainKey(chainKey).build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder().setSenderChain(chain).build();
+ }
+
+ public boolean hasMessageKeys(ECPublicKey senderEphemeral, int counter) {
+ Pair<Chain,Integer> chainAndIndex = getReceiverChain(senderEphemeral);
+ Chain chain = chainAndIndex.first();
+
+ if (chain == null) {
+ return false;
+ }
+
+ List<Chain.MessageKey> messageKeyList = chain.getMessageKeysList();
+
+ for (Chain.MessageKey messageKey : messageKeyList) {
+ if (messageKey.getIndex() == counter) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public MessageKeys removeMessageKeys(ECPublicKey senderEphemeral, int counter) {
+ Pair<Chain,Integer> chainAndIndex = getReceiverChain(senderEphemeral);
+ Chain chain = chainAndIndex.first();
+
+ if (chain == null) {
+ return null;
+ }
+
+ List<Chain.MessageKey> messageKeyList = new LinkedList<>(chain.getMessageKeysList());
+ Iterator<Chain.MessageKey> messageKeyIterator = messageKeyList.iterator();
+ MessageKeys result = null;
+
+ while (messageKeyIterator.hasNext()) {
+ Chain.MessageKey messageKey = messageKeyIterator.next();
+
+ if (messageKey.getIndex() == counter) {
+ result = new MessageKeys(new SecretKeySpec(messageKey.getCipherKey().toByteArray(), "AES"),
+ new SecretKeySpec(messageKey.getMacKey().toByteArray(), "HmacSHA256"),
+ new IvParameterSpec(messageKey.getIv().toByteArray()),
+ messageKey.getIndex());
+
+ messageKeyIterator.remove();
+ break;
+ }
+ }
+
+ Chain updatedChain = chain.toBuilder().clearMessageKeys()
+ .addAllMessageKeys(messageKeyList)
+ .build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setReceiverChains(chainAndIndex.second(), updatedChain)
+ .build();
+
+ return result;
+ }
+
+ public void setMessageKeys(ECPublicKey senderEphemeral, MessageKeys messageKeys) {
+ Pair<Chain,Integer> chainAndIndex = getReceiverChain(senderEphemeral);
+ Chain chain = chainAndIndex.first();
+ Chain.MessageKey messageKeyStructure = Chain.MessageKey.newBuilder()
+ .setCipherKey(ByteString.copyFrom(messageKeys.getCipherKey().getEncoded()))
+ .setMacKey(ByteString.copyFrom(messageKeys.getMacKey().getEncoded()))
+ .setIndex(messageKeys.getCounter())
+ .setIv(ByteString.copyFrom(messageKeys.getIv().getIV()))
+ .build();
+
+ Chain updatedChain = chain.toBuilder()
+ .addMessageKeys(messageKeyStructure)
+ .build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setReceiverChains(chainAndIndex.second(), updatedChain)
+ .build();
+ }
+
+ public void setReceiverChainKey(ECPublicKey senderEphemeral, ChainKey chainKey) {
+ Pair<Chain,Integer> chainAndIndex = getReceiverChain(senderEphemeral);
+ Chain chain = chainAndIndex.first();
+
+ Chain.ChainKey chainKeyStructure = Chain.ChainKey.newBuilder()
+ .setKey(ByteString.copyFrom(chainKey.getKey()))
+ .setIndex(chainKey.getIndex())
+ .build();
+
+ Chain updatedChain = chain.toBuilder().setChainKey(chainKeyStructure).build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setReceiverChains(chainAndIndex.second(), updatedChain)
+ .build();
+ }
+
+ public void setPendingKeyExchange(int sequence,
+ ECKeyPair ourBaseKey,
+ ECKeyPair ourRatchetKey,
+ IdentityKeyPair ourIdentityKey)
+ {
+ PendingKeyExchange structure =
+ PendingKeyExchange.newBuilder()
+ .setSequence(sequence)
+ .setLocalBaseKey(ByteString.copyFrom(ourBaseKey.getPublicKey().serialize()))
+ .setLocalBaseKeyPrivate(ByteString.copyFrom(ourBaseKey.getPrivateKey().serialize()))
+ .setLocalRatchetKey(ByteString.copyFrom(ourRatchetKey.getPublicKey().serialize()))
+ .setLocalRatchetKeyPrivate(ByteString.copyFrom(ourRatchetKey.getPrivateKey().serialize()))
+ .setLocalIdentityKey(ByteString.copyFrom(ourIdentityKey.getPublicKey().serialize()))
+ .setLocalIdentityKeyPrivate(ByteString.copyFrom(ourIdentityKey.getPrivateKey().serialize()))
+ .build();
+
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setPendingKeyExchange(structure)
+ .build();
+ }
+
+ public int getPendingKeyExchangeSequence() {
+ return sessionStructure.getPendingKeyExchange().getSequence();
+ }
+
+ public ECKeyPair getPendingKeyExchangeBaseKey() throws InvalidKeyException {
+ ECPublicKey publicKey = Curve.decodePoint(sessionStructure.getPendingKeyExchange()
+ .getLocalBaseKey().toByteArray(), 0);
+
+ ECPrivateKey privateKey = Curve.decodePrivatePoint(sessionStructure.getPendingKeyExchange()
+ .getLocalBaseKeyPrivate()
+ .toByteArray());
+
+ return new ECKeyPair(publicKey, privateKey);
+ }
+
+ public ECKeyPair getPendingKeyExchangeRatchetKey() throws InvalidKeyException {
+ ECPublicKey publicKey = Curve.decodePoint(sessionStructure.getPendingKeyExchange()
+ .getLocalRatchetKey().toByteArray(), 0);
+
+ ECPrivateKey privateKey = Curve.decodePrivatePoint(sessionStructure.getPendingKeyExchange()
+ .getLocalRatchetKeyPrivate()
+ .toByteArray());
+
+ return new ECKeyPair(publicKey, privateKey);
+ }
+
+ public IdentityKeyPair getPendingKeyExchangeIdentityKey() throws InvalidKeyException {
+ IdentityKey publicKey = new IdentityKey(sessionStructure.getPendingKeyExchange()
+ .getLocalIdentityKey().toByteArray(), 0);
+
+ ECPrivateKey privateKey = Curve.decodePrivatePoint(sessionStructure.getPendingKeyExchange()
+ .getLocalIdentityKeyPrivate()
+ .toByteArray());
+
+ return new IdentityKeyPair(publicKey, privateKey);
+ }
+
+ public boolean hasPendingKeyExchange() {
+ return sessionStructure.hasPendingKeyExchange();
+ }
+
+ public void setUnacknowledgedPreKeyMessage(Optional<Integer> preKeyId, int signedPreKeyId, ECPublicKey baseKey) {
+ PendingPreKey.Builder pending = PendingPreKey.newBuilder()
+ .setSignedPreKeyId(signedPreKeyId)
+ .setBaseKey(ByteString.copyFrom(baseKey.serialize()));
+
+ if (preKeyId.isPresent()) {
+ pending.setPreKeyId(preKeyId.get());
+ }
+
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setPendingPreKey(pending.build())
+ .build();
+ }
+
+ public boolean hasUnacknowledgedPreKeyMessage() {
+ return this.sessionStructure.hasPendingPreKey();
+ }
+
+ public UnacknowledgedPreKeyMessageItems getUnacknowledgedPreKeyMessageItems() {
+ try {
+ Optional<Integer> preKeyId;
+
+ if (sessionStructure.getPendingPreKey().hasPreKeyId()) {
+ preKeyId = Optional.of(sessionStructure.getPendingPreKey().getPreKeyId());
+ } else {
+ preKeyId = Optional.absent();
+ }
+
+ return
+ new UnacknowledgedPreKeyMessageItems(preKeyId,
+ sessionStructure.getPendingPreKey().getSignedPreKeyId(),
+ Curve.decodePoint(sessionStructure.getPendingPreKey()
+ .getBaseKey()
+ .toByteArray(), 0));
+ } catch (InvalidKeyException e) {
+ throw new AssertionError(e);
+ }
+ }
+
+ public void clearUnacknowledgedPreKeyMessage() {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .clearPendingPreKey()
+ .build();
+ }
+
+ public void setRemoteRegistrationId(int registrationId) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setRemoteRegistrationId(registrationId)
+ .build();
+ }
+
+ public int getRemoteRegistrationId() {
+ return this.sessionStructure.getRemoteRegistrationId();
+ }
+
+ public void setLocalRegistrationId(int registrationId) {
+ this.sessionStructure = this.sessionStructure.toBuilder()
+ .setLocalRegistrationId(registrationId)
+ .build();
+ }
+
+ public int getLocalRegistrationId() {
+ return this.sessionStructure.getLocalRegistrationId();
+ }
+
+ public byte[] serialize() {
+ return sessionStructure.toByteArray();
+ }
+
+ public static class UnacknowledgedPreKeyMessageItems {
+ private final Optional<Integer> preKeyId;
+ private final int signedPreKeyId;
+ private final ECPublicKey baseKey;
+
+ public UnacknowledgedPreKeyMessageItems(Optional<Integer> preKeyId,
+ int signedPreKeyId,
+ ECPublicKey baseKey)
+ {
+ this.preKeyId = preKeyId;
+ this.signedPreKeyId = signedPreKeyId;
+ this.baseKey = baseKey;
+ }
+
+
+ public Optional<Integer> getPreKeyId() {
+ return preKeyId;
+ }
+
+ public int getSignedPreKeyId() {
+ return signedPreKeyId;
+ }
+
+ public ECPublicKey getBaseKey() {
+ return baseKey;
+ }
+ }
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/SessionStore.java b/src/main/java/org/whispersystems/libaxolotl/state/SessionStore.java
new file mode 100644
index 00000000..c5ad00b0
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/SessionStore.java
@@ -0,0 +1,68 @@
+package org.whispersystems.libaxolotl.state;
+
+import java.util.List;
+
+/**
+ * The interface to the durable store of session state information
+ * for remote clients.
+ *
+ * @author Moxie Marlinspike
+ */
+public interface SessionStore {
+
+ /**
+ * Returns a copy of the {@link SessionRecord} corresponding to the recipientId + deviceId tuple,
+ * or a new SessionRecord if one does not currently exist.
+ * <p>
+ * It is important that implementations return a copy of the current durable information. The
+ * returned SessionRecord may be modified, but those changes should not have an effect on the
+ * durable session state (what is returned by subsequent calls to this method) without the
+ * store method being called here first.
+ *
+ * @param recipientId The recipientID of the remote client.
+ * @param deviceId The deviceID of the remote client.
+ * @return a copy of the SessionRecord corresponding to the recipientId + deviceId tuple, or
+ * a new SessionRecord if one does not currently exist.
+ */
+ public SessionRecord loadSession(long recipientId, int deviceId);
+
+ /**
+ * Returns all known devices with active sessions for a recipient
+ *
+ * @param recipientId the recipient ID.
+ * @return all known sub-devices with active sessions.
+ */
+ public List<Integer> getSubDeviceSessions(long recipientId);
+
+ /**
+ * Commit to storage the {@link SessionRecord} for a given recipientId + deviceId tuple.
+ * @param recipientId the recipient ID of the remote client.
+ * @param deviceId the device ID of the remote client.
+ * @param record the current SessionRecord for the remote client.
+ */
+ public void storeSession(long recipientId, int deviceId, SessionRecord record);
+
+ /**
+ * Determine whether there is a committed {@link SessionRecord} for a recipientId + deviceId tuple.
+ * @param recipientId the recipient ID of the remote client.
+ * @param deviceId the device ID of the remote client.
+ * @return true if a {@link SessionRecord} exists, false otherwise.
+ */
+ public boolean containsSession(long recipientId, int deviceId);
+
+ /**
+ * Remove a {@link SessionRecord} for a recipientId + deviceId tuple.
+ *
+ * @param recipientId the recipient ID of the remote client.
+ * @param deviceId the device ID of the remote client.
+ */
+ public void deleteSession(long recipientId, int deviceId);
+
+ /**
+ * Remove the {@link SessionRecord}s corresponding to all devices of a recipientId.
+ *
+ * @param recipientId the recipient ID of the remote client.
+ */
+ public void deleteAllSessions(long recipientId);
+
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyRecord.java b/src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyRecord.java
new file mode 100644
index 00000000..f11f5cf1
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyRecord.java
@@ -0,0 +1,61 @@
+package org.whispersystems.libaxolotl.state;
+
+import com.google.protobuf.ByteString;
+
+import org.whispersystems.libaxolotl.InvalidKeyException;
+import org.whispersystems.libaxolotl.ecc.Curve;
+import org.whispersystems.libaxolotl.ecc.ECKeyPair;
+import org.whispersystems.libaxolotl.ecc.ECPrivateKey;
+import org.whispersystems.libaxolotl.ecc.ECPublicKey;
+
+import java.io.IOException;
+
+import static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure;
+
+public class SignedPreKeyRecord {
+
+ private SignedPreKeyRecordStructure structure;
+
+ public SignedPreKeyRecord(int id, long timestamp, ECKeyPair keyPair, byte[] signature) {
+ this.structure = SignedPreKeyRecordStructure.newBuilder()
+ .setId(id)
+ .setPublicKey(ByteString.copyFrom(keyPair.getPublicKey()
+ .serialize()))
+ .setPrivateKey(ByteString.copyFrom(keyPair.getPrivateKey()
+ .serialize()))
+ .setSignature(ByteString.copyFrom(signature))
+ .setTimestamp(timestamp)
+ .build();
+ }
+
+ public SignedPreKeyRecord(byte[] serialized) throws IOException {
+ this.structure = SignedPreKeyRecordStructure.parseFrom(serialized);
+ }
+
+ public int getId() {
+ return this.structure.getId();
+ }
+
+ public long getTimestamp() {
+ return this.structure.getTimestamp();
+ }
+
+ public ECKeyPair getKeyPair() {
+ try {
+ ECPublicKey publicKey = Curve.decodePoint(this.structure.getPublicKey().toByteArray(), 0);
+ ECPrivateKey privateKey = Curve.decodePrivatePoint(this.structure.getPrivateKey().toByteArray());
+
+ return new ECKeyPair(publicKey, privateKey);
+ } catch (InvalidKeyException e) {
+ throw new AssertionError(e);
+ }
+ }
+
+ public byte[] getSignature() {
+ return this.structure.getSignature().toByteArray();
+ }
+
+ public byte[] serialize() {
+ return this.structure.toByteArray();
+ }
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyStore.java b/src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyStore.java
new file mode 100644
index 00000000..c828bf23
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/SignedPreKeyStore.java
@@ -0,0 +1,47 @@
+package org.whispersystems.libaxolotl.state;
+
+import org.whispersystems.libaxolotl.InvalidKeyIdException;
+
+import java.util.List;
+
+public interface SignedPreKeyStore {
+
+
+ /**
+ * Load a local SignedPreKeyRecord.
+ *
+ * @param signedPreKeyId the ID of the local SignedPreKeyRecord.
+ * @return the corresponding SignedPreKeyRecord.
+ * @throws InvalidKeyIdException when there is no corresponding SignedPreKeyRecord.
+ */
+ public SignedPreKeyRecord loadSignedPreKey(int signedPreKeyId) throws InvalidKeyIdException;
+
+ /**
+ * Load all local SignedPreKeyRecords.
+ *
+ * @return All stored SignedPreKeyRecords.
+ */
+ public List<SignedPreKeyRecord> loadSignedPreKeys();
+
+ /**
+ * Store a local SignedPreKeyRecord.
+ *
+ * @param signedPreKeyId the ID of the SignedPreKeyRecord to store.
+ * @param record the SignedPreKeyRecord.
+ */
+ public void storeSignedPreKey(int signedPreKeyId, SignedPreKeyRecord record);
+
+ /**
+ * @param signedPreKeyId A SignedPreKeyRecord ID.
+ * @return true if the store has a record for the signedPreKeyId, otherwise false.
+ */
+ public boolean containsSignedPreKey(int signedPreKeyId);
+
+ /**
+ * Delete a SignedPreKeyRecord from local storage.
+ *
+ * @param signedPreKeyId The ID of the SignedPreKeyRecord to remove.
+ */
+ public void removeSignedPreKey(int signedPreKeyId);
+
+}
diff --git a/src/main/java/org/whispersystems/libaxolotl/state/StorageProtos.java b/src/main/java/org/whispersystems/libaxolotl/state/StorageProtos.java
new file mode 100644
index 00000000..b3e3e0e6
--- /dev/null
+++ b/src/main/java/org/whispersystems/libaxolotl/state/StorageProtos.java
@@ -0,0 +1,11779 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: LocalStorageProtocol.proto
+
+package org.whispersystems.libaxolotl.state;
+
+public final class StorageProtos {
+ private StorageProtos() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ }
+ public interface SessionStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 sessionVersion = 1;
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ boolean hasSessionVersion();
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ int getSessionVersion();
+
+ // optional bytes localIdentityPublic = 2;
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ boolean hasLocalIdentityPublic();
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ com.google.protobuf.ByteString getLocalIdentityPublic();
+
+ // optional bytes remoteIdentityPublic = 3;
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ boolean hasRemoteIdentityPublic();
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ com.google.protobuf.ByteString getRemoteIdentityPublic();
+
+ // optional bytes rootKey = 4;
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ boolean hasRootKey();
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ com.google.protobuf.ByteString getRootKey();
+
+ // optional uint32 previousCounter = 5;
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ boolean hasPreviousCounter();
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ int getPreviousCounter();
+
+ // optional .textsecure.SessionStructure.Chain senderChain = 6;
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ boolean hasSenderChain();
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getSenderChain();
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder getSenderChainOrBuilder();
+
+ // repeated .textsecure.SessionStructure.Chain receiverChains = 7;
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain>
+ getReceiverChainsList();
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getReceiverChains(int index);
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ int getReceiverChainsCount();
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>
+ getReceiverChainsOrBuilderList();
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder getReceiverChainsOrBuilder(
+ int index);
+
+ // optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ boolean hasPendingKeyExchange();
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange getPendingKeyExchange();
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder getPendingKeyExchangeOrBuilder();
+
+ // optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ boolean hasPendingPreKey();
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey getPendingPreKey();
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder getPendingPreKeyOrBuilder();
+
+ // optional uint32 remoteRegistrationId = 10;
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ boolean hasRemoteRegistrationId();
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ int getRemoteRegistrationId();
+
+ // optional uint32 localRegistrationId = 11;
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ boolean hasLocalRegistrationId();
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ int getLocalRegistrationId();
+
+ // optional bool needsRefresh = 12;
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ boolean hasNeedsRefresh();
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ boolean getNeedsRefresh();
+
+ // optional bytes aliceBaseKey = 13;
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ boolean hasAliceBaseKey();
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ com.google.protobuf.ByteString getAliceBaseKey();
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure}
+ */
+ public static final class SessionStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements SessionStructureOrBuilder {
+ // Use SessionStructure.newBuilder() to construct.
+ private SessionStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SessionStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SessionStructure defaultInstance;
+ public static SessionStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SessionStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SessionStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ sessionVersion_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ localIdentityPublic_ = input.readBytes();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000004;
+ remoteIdentityPublic_ = input.readBytes();
+ break;
+ }
+ case 34: {
+ bitField0_ |= 0x00000008;
+ rootKey_ = input.readBytes();
+ break;
+ }
+ case 40: {
+ bitField0_ |= 0x00000010;
+ previousCounter_ = input.readUInt32();
+ break;
+ }
+ case 50: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ subBuilder = senderChain_.toBuilder();
+ }
+ senderChain_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(senderChain_);
+ senderChain_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000020;
+ break;
+ }
+ case 58: {
+ if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
+ receiverChains_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain>();
+ mutable_bitField0_ |= 0x00000040;
+ }
+ receiverChains_.add(input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.PARSER, extensionRegistry));
+ break;
+ }
+ case 66: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ subBuilder = pendingKeyExchange_.toBuilder();
+ }
+ pendingKeyExchange_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(pendingKeyExchange_);
+ pendingKeyExchange_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000040;
+ break;
+ }
+ case 74: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ subBuilder = pendingPreKey_.toBuilder();
+ }
+ pendingPreKey_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(pendingPreKey_);
+ pendingPreKey_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000080;
+ break;
+ }
+ case 80: {
+ bitField0_ |= 0x00000100;
+ remoteRegistrationId_ = input.readUInt32();
+ break;
+ }
+ case 88: {
+ bitField0_ |= 0x00000200;
+ localRegistrationId_ = input.readUInt32();
+ break;
+ }
+ case 96: {
+ bitField0_ |= 0x00000400;
+ needsRefresh_ = input.readBool();
+ break;
+ }
+ case 106: {
+ bitField0_ |= 0x00000800;
+ aliceBaseKey_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
+ receiverChains_ = java.util.Collections.unmodifiableList(receiverChains_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SessionStructure> PARSER =
+ new com.google.protobuf.AbstractParser<SessionStructure>() {
+ public SessionStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SessionStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SessionStructure> getParserForType() {
+ return PARSER;
+ }
+
+ public interface ChainOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional bytes senderRatchetKey = 1;
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ boolean hasSenderRatchetKey();
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ com.google.protobuf.ByteString getSenderRatchetKey();
+
+ // optional bytes senderRatchetKeyPrivate = 2;
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ boolean hasSenderRatchetKeyPrivate();
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ com.google.protobuf.ByteString getSenderRatchetKeyPrivate();
+
+ // optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ boolean hasChainKey();
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey getChainKey();
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder getChainKeyOrBuilder();
+
+ // repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey>
+ getMessageKeysList();
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey getMessageKeys(int index);
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ int getMessageKeysCount();
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder>
+ getMessageKeysOrBuilderList();
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder getMessageKeysOrBuilder(
+ int index);
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.Chain}
+ */
+ public static final class Chain extends
+ com.google.protobuf.GeneratedMessage
+ implements ChainOrBuilder {
+ // Use Chain.newBuilder() to construct.
+ private Chain(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private Chain(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final Chain defaultInstance;
+ public static Chain getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Chain getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private Chain(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ senderRatchetKey_ = input.readBytes();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ senderRatchetKeyPrivate_ = input.readBytes();
+ break;
+ }
+ case 26: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ subBuilder = chainKey_.toBuilder();
+ }
+ chainKey_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(chainKey_);
+ chainKey_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000004;
+ break;
+ }
+ case 34: {
+ if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+ messageKeys_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey>();
+ mutable_bitField0_ |= 0x00000008;
+ }
+ messageKeys_.add(input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.PARSER, extensionRegistry));
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+ messageKeys_ = java.util.Collections.unmodifiableList(messageKeys_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<Chain> PARSER =
+ new com.google.protobuf.AbstractParser<Chain>() {
+ public Chain parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new Chain(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<Chain> getParserForType() {
+ return PARSER;
+ }
+
+ public interface ChainKeyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 index = 1;
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ boolean hasIndex();
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ int getIndex();
+
+ // optional bytes key = 2;
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ boolean hasKey();
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ com.google.protobuf.ByteString getKey();
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.Chain.ChainKey}
+ */
+ public static final class ChainKey extends
+ com.google.protobuf.GeneratedMessage
+ implements ChainKeyOrBuilder {
+ // Use ChainKey.newBuilder() to construct.
+ private ChainKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private ChainKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final ChainKey defaultInstance;
+ public static ChainKey getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public ChainKey getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ChainKey(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ index_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ key_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<ChainKey> PARSER =
+ new com.google.protobuf.AbstractParser<ChainKey>() {
+ public ChainKey parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ChainKey(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ChainKey> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 index = 1;
+ public static final int INDEX_FIELD_NUMBER = 1;
+ private int index_;
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public boolean hasIndex() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public int getIndex() {
+ return index_;
+ }
+
+ // optional bytes key = 2;
+ public static final int KEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString key_;
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ public boolean hasKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ public com.google.protobuf.ByteString getKey() {
+ return key_;
+ }
+
+ private void initFields() {
+ index_ = 0;
+ key_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, index_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, key_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, index_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, key_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.Chain.ChainKey}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ index_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ key_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey result = new org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.index_ = index_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.key_ = key_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance()) return this;
+ if (other.hasIndex()) {
+ setIndex(other.getIndex());
+ }
+ if (other.hasKey()) {
+ setKey(other.getKey());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 index = 1;
+ private int index_ ;
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public boolean hasIndex() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public int getIndex() {
+ return index_;
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public Builder setIndex(int value) {
+ bitField0_ |= 0x00000001;
+ index_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public Builder clearIndex() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ index_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes key = 2;
+ private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ public boolean hasKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ public com.google.protobuf.ByteString getKey() {
+ return key_;
+ }
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ public Builder setKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ key_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes key = 2;</code>
+ */
+ public Builder clearKey() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ key_ = getDefaultInstance().getKey();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SessionStructure.Chain.ChainKey)
+ }
+
+ static {
+ defaultInstance = new ChainKey(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SessionStructure.Chain.ChainKey)
+ }
+
+ public interface MessageKeyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 index = 1;
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ boolean hasIndex();
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ int getIndex();
+
+ // optional bytes cipherKey = 2;
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ boolean hasCipherKey();
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ com.google.protobuf.ByteString getCipherKey();
+
+ // optional bytes macKey = 3;
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ boolean hasMacKey();
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ com.google.protobuf.ByteString getMacKey();
+
+ // optional bytes iv = 4;
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ boolean hasIv();
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ com.google.protobuf.ByteString getIv();
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.Chain.MessageKey}
+ */
+ public static final class MessageKey extends
+ com.google.protobuf.GeneratedMessage
+ implements MessageKeyOrBuilder {
+ // Use MessageKey.newBuilder() to construct.
+ private MessageKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private MessageKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final MessageKey defaultInstance;
+ public static MessageKey getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public MessageKey getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private MessageKey(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ index_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ cipherKey_ = input.readBytes();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000004;
+ macKey_ = input.readBytes();
+ break;
+ }
+ case 34: {
+ bitField0_ |= 0x00000008;
+ iv_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<MessageKey> PARSER =
+ new com.google.protobuf.AbstractParser<MessageKey>() {
+ public MessageKey parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new MessageKey(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<MessageKey> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 index = 1;
+ public static final int INDEX_FIELD_NUMBER = 1;
+ private int index_;
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public boolean hasIndex() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public int getIndex() {
+ return index_;
+ }
+
+ // optional bytes cipherKey = 2;
+ public static final int CIPHERKEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString cipherKey_;
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ public boolean hasCipherKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getCipherKey() {
+ return cipherKey_;
+ }
+
+ // optional bytes macKey = 3;
+ public static final int MACKEY_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString macKey_;
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ public boolean hasMacKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ public com.google.protobuf.ByteString getMacKey() {
+ return macKey_;
+ }
+
+ // optional bytes iv = 4;
+ public static final int IV_FIELD_NUMBER = 4;
+ private com.google.protobuf.ByteString iv_;
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ public boolean hasIv() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ public com.google.protobuf.ByteString getIv() {
+ return iv_;
+ }
+
+ private void initFields() {
+ index_ = 0;
+ cipherKey_ = com.google.protobuf.ByteString.EMPTY;
+ macKey_ = com.google.protobuf.ByteString.EMPTY;
+ iv_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, index_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, cipherKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, macKey_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeBytes(4, iv_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, index_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, cipherKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, macKey_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(4, iv_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.Chain.MessageKey}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ index_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ cipherKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ macKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ iv_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey result = new org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.index_ = index_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.cipherKey_ = cipherKey_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.macKey_ = macKey_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.iv_ = iv_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance()) return this;
+ if (other.hasIndex()) {
+ setIndex(other.getIndex());
+ }
+ if (other.hasCipherKey()) {
+ setCipherKey(other.getCipherKey());
+ }
+ if (other.hasMacKey()) {
+ setMacKey(other.getMacKey());
+ }
+ if (other.hasIv()) {
+ setIv(other.getIv());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 index = 1;
+ private int index_ ;
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public boolean hasIndex() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public int getIndex() {
+ return index_;
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public Builder setIndex(int value) {
+ bitField0_ |= 0x00000001;
+ index_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 index = 1;</code>
+ */
+ public Builder clearIndex() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ index_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes cipherKey = 2;
+ private com.google.protobuf.ByteString cipherKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ public boolean hasCipherKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getCipherKey() {
+ return cipherKey_;
+ }
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ public Builder setCipherKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ cipherKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes cipherKey = 2;</code>
+ */
+ public Builder clearCipherKey() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ cipherKey_ = getDefaultInstance().getCipherKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes macKey = 3;
+ private com.google.protobuf.ByteString macKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ public boolean hasMacKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ public com.google.protobuf.ByteString getMacKey() {
+ return macKey_;
+ }
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ public Builder setMacKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ macKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes macKey = 3;</code>
+ */
+ public Builder clearMacKey() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ macKey_ = getDefaultInstance().getMacKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes iv = 4;
+ private com.google.protobuf.ByteString iv_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ public boolean hasIv() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ public com.google.protobuf.ByteString getIv() {
+ return iv_;
+ }
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ public Builder setIv(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ iv_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes iv = 4;</code>
+ */
+ public Builder clearIv() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ iv_ = getDefaultInstance().getIv();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SessionStructure.Chain.MessageKey)
+ }
+
+ static {
+ defaultInstance = new MessageKey(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SessionStructure.Chain.MessageKey)
+ }
+
+ private int bitField0_;
+ // optional bytes senderRatchetKey = 1;
+ public static final int SENDERRATCHETKEY_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString senderRatchetKey_;
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ public boolean hasSenderRatchetKey() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ public com.google.protobuf.ByteString getSenderRatchetKey() {
+ return senderRatchetKey_;
+ }
+
+ // optional bytes senderRatchetKeyPrivate = 2;
+ public static final int SENDERRATCHETKEYPRIVATE_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString senderRatchetKeyPrivate_;
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ public boolean hasSenderRatchetKeyPrivate() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ public com.google.protobuf.ByteString getSenderRatchetKeyPrivate() {
+ return senderRatchetKeyPrivate_;
+ }
+
+ // optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;
+ public static final int CHAINKEY_FIELD_NUMBER = 3;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey chainKey_;
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public boolean hasChainKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey getChainKey() {
+ return chainKey_;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder getChainKeyOrBuilder() {
+ return chainKey_;
+ }
+
+ // repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;
+ public static final int MESSAGEKEYS_FIELD_NUMBER = 4;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey> messageKeys_;
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey> getMessageKeysList() {
+ return messageKeys_;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder>
+ getMessageKeysOrBuilderList() {
+ return messageKeys_;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public int getMessageKeysCount() {
+ return messageKeys_.size();
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey getMessageKeys(int index) {
+ return messageKeys_.get(index);
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder getMessageKeysOrBuilder(
+ int index) {
+ return messageKeys_.get(index);
+ }
+
+ private void initFields() {
+ senderRatchetKey_ = com.google.protobuf.ByteString.EMPTY;
+ senderRatchetKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ chainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance();
+ messageKeys_ = java.util.Collections.emptyList();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, senderRatchetKey_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, senderRatchetKeyPrivate_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, chainKey_);
+ }
+ for (int i = 0; i < messageKeys_.size(); i++) {
+ output.writeMessage(4, messageKeys_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, senderRatchetKey_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, senderRatchetKeyPrivate_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, chainKey_);
+ }
+ for (int i = 0; i < messageKeys_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, messageKeys_.get(i));
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.Chain}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getChainKeyFieldBuilder();
+ getMessageKeysFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ senderRatchetKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ senderRatchetKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (chainKeyBuilder_ == null) {
+ chainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance();
+ } else {
+ chainKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ if (messageKeysBuilder_ == null) {
+ messageKeys_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ } else {
+ messageKeysBuilder_.clear();
+ }
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain result = new org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.senderRatchetKey_ = senderRatchetKey_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.senderRatchetKeyPrivate_ = senderRatchetKeyPrivate_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (chainKeyBuilder_ == null) {
+ result.chainKey_ = chainKey_;
+ } else {
+ result.chainKey_ = chainKeyBuilder_.build();
+ }
+ if (messageKeysBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ messageKeys_ = java.util.Collections.unmodifiableList(messageKeys_);
+ bitField0_ = (bitField0_ & ~0x00000008);
+ }
+ result.messageKeys_ = messageKeys_;
+ } else {
+ result.messageKeys_ = messageKeysBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance()) return this;
+ if (other.hasSenderRatchetKey()) {
+ setSenderRatchetKey(other.getSenderRatchetKey());
+ }
+ if (other.hasSenderRatchetKeyPrivate()) {
+ setSenderRatchetKeyPrivate(other.getSenderRatchetKeyPrivate());
+ }
+ if (other.hasChainKey()) {
+ mergeChainKey(other.getChainKey());
+ }
+ if (messageKeysBuilder_ == null) {
+ if (!other.messageKeys_.isEmpty()) {
+ if (messageKeys_.isEmpty()) {
+ messageKeys_ = other.messageKeys_;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ } else {
+ ensureMessageKeysIsMutable();
+ messageKeys_.addAll(other.messageKeys_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.messageKeys_.isEmpty()) {
+ if (messageKeysBuilder_.isEmpty()) {
+ messageKeysBuilder_.dispose();
+ messageKeysBuilder_ = null;
+ messageKeys_ = other.messageKeys_;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ messageKeysBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getMessageKeysFieldBuilder() : null;
+ } else {
+ messageKeysBuilder_.addAllMessages(other.messageKeys_);
+ }
+ }
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional bytes senderRatchetKey = 1;
+ private com.google.protobuf.ByteString senderRatchetKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ public boolean hasSenderRatchetKey() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ public com.google.protobuf.ByteString getSenderRatchetKey() {
+ return senderRatchetKey_;
+ }
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ public Builder setSenderRatchetKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ senderRatchetKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes senderRatchetKey = 1;</code>
+ */
+ public Builder clearSenderRatchetKey() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ senderRatchetKey_ = getDefaultInstance().getSenderRatchetKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes senderRatchetKeyPrivate = 2;
+ private com.google.protobuf.ByteString senderRatchetKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ public boolean hasSenderRatchetKeyPrivate() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ public com.google.protobuf.ByteString getSenderRatchetKeyPrivate() {
+ return senderRatchetKeyPrivate_;
+ }
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ public Builder setSenderRatchetKeyPrivate(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ senderRatchetKeyPrivate_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes senderRatchetKeyPrivate = 2;</code>
+ */
+ public Builder clearSenderRatchetKeyPrivate() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ senderRatchetKeyPrivate_ = getDefaultInstance().getSenderRatchetKeyPrivate();
+ onChanged();
+ return this;
+ }
+
+ // optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey chainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder> chainKeyBuilder_;
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public boolean hasChainKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey getChainKey() {
+ if (chainKeyBuilder_ == null) {
+ return chainKey_;
+ } else {
+ return chainKeyBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public Builder setChainKey(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey value) {
+ if (chainKeyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ chainKey_ = value;
+ onChanged();
+ } else {
+ chainKeyBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public Builder setChainKey(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder builderForValue) {
+ if (chainKeyBuilder_ == null) {
+ chainKey_ = builderForValue.build();
+ onChanged();
+ } else {
+ chainKeyBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public Builder mergeChainKey(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey value) {
+ if (chainKeyBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ chainKey_ != org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance()) {
+ chainKey_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.newBuilder(chainKey_).mergeFrom(value).buildPartial();
+ } else {
+ chainKey_ = value;
+ }
+ onChanged();
+ } else {
+ chainKeyBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public Builder clearChainKey() {
+ if (chainKeyBuilder_ == null) {
+ chainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance();
+ onChanged();
+ } else {
+ chainKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder getChainKeyBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getChainKeyFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder getChainKeyOrBuilder() {
+ if (chainKeyBuilder_ != null) {
+ return chainKeyBuilder_.getMessageOrBuilder();
+ } else {
+ return chainKey_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder>
+ getChainKeyFieldBuilder() {
+ if (chainKeyBuilder_ == null) {
+ chainKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder>(
+ chainKey_,
+ getParentForChildren(),
+ isClean());
+ chainKey_ = null;
+ }
+ return chainKeyBuilder_;
+ }
+
+ // repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey> messageKeys_ =
+ java.util.Collections.emptyList();
+ private void ensureMessageKeysIsMutable() {
+ if (!((bitField0_ & 0x00000008) == 0x00000008)) {
+ messageKeys_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey>(messageKeys_);
+ bitField0_ |= 0x00000008;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder> messageKeysBuilder_;
+
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey> getMessageKeysList() {
+ if (messageKeysBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(messageKeys_);
+ } else {
+ return messageKeysBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public int getMessageKeysCount() {
+ if (messageKeysBuilder_ == null) {
+ return messageKeys_.size();
+ } else {
+ return messageKeysBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey getMessageKeys(int index) {
+ if (messageKeysBuilder_ == null) {
+ return messageKeys_.get(index);
+ } else {
+ return messageKeysBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder setMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey value) {
+ if (messageKeysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureMessageKeysIsMutable();
+ messageKeys_.set(index, value);
+ onChanged();
+ } else {
+ messageKeysBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder setMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder builderForValue) {
+ if (messageKeysBuilder_ == null) {
+ ensureMessageKeysIsMutable();
+ messageKeys_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ messageKeysBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder addMessageKeys(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey value) {
+ if (messageKeysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureMessageKeysIsMutable();
+ messageKeys_.add(value);
+ onChanged();
+ } else {
+ messageKeysBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder addMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey value) {
+ if (messageKeysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureMessageKeysIsMutable();
+ messageKeys_.add(index, value);
+ onChanged();
+ } else {
+ messageKeysBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder addMessageKeys(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder builderForValue) {
+ if (messageKeysBuilder_ == null) {
+ ensureMessageKeysIsMutable();
+ messageKeys_.add(builderForValue.build());
+ onChanged();
+ } else {
+ messageKeysBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder addMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder builderForValue) {
+ if (messageKeysBuilder_ == null) {
+ ensureMessageKeysIsMutable();
+ messageKeys_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ messageKeysBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder addAllMessageKeys(
+ java.lang.Iterable<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey> values) {
+ if (messageKeysBuilder_ == null) {
+ ensureMessageKeysIsMutable();
+ super.addAll(values, messageKeys_);
+ onChanged();
+ } else {
+ messageKeysBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder clearMessageKeys() {
+ if (messageKeysBuilder_ == null) {
+ messageKeys_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ } else {
+ messageKeysBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public Builder removeMessageKeys(int index) {
+ if (messageKeysBuilder_ == null) {
+ ensureMessageKeysIsMutable();
+ messageKeys_.remove(index);
+ onChanged();
+ } else {
+ messageKeysBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder getMessageKeysBuilder(
+ int index) {
+ return getMessageKeysFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder getMessageKeysOrBuilder(
+ int index) {
+ if (messageKeysBuilder_ == null) {
+ return messageKeys_.get(index); } else {
+ return messageKeysBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder>
+ getMessageKeysOrBuilderList() {
+ if (messageKeysBuilder_ != null) {
+ return messageKeysBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(messageKeys_);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder addMessageKeysBuilder() {
+ return getMessageKeysFieldBuilder().addBuilder(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder addMessageKeysBuilder(
+ int index) {
+ return getMessageKeysFieldBuilder().addBuilder(
+ index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder>
+ getMessageKeysBuilderList() {
+ return getMessageKeysFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder>
+ getMessageKeysFieldBuilder() {
+ if (messageKeysBuilder_ == null) {
+ messageKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder>(
+ messageKeys_,
+ ((bitField0_ & 0x00000008) == 0x00000008),
+ getParentForChildren(),
+ isClean());
+ messageKeys_ = null;
+ }
+ return messageKeysBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SessionStructure.Chain)
+ }
+
+ static {
+ defaultInstance = new Chain(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SessionStructure.Chain)
+ }
+
+ public interface PendingKeyExchangeOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 sequence = 1;
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ boolean hasSequence();
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ int getSequence();
+
+ // optional bytes localBaseKey = 2;
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ boolean hasLocalBaseKey();
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ com.google.protobuf.ByteString getLocalBaseKey();
+
+ // optional bytes localBaseKeyPrivate = 3;
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ boolean hasLocalBaseKeyPrivate();
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ com.google.protobuf.ByteString getLocalBaseKeyPrivate();
+
+ // optional bytes localRatchetKey = 4;
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ boolean hasLocalRatchetKey();
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ com.google.protobuf.ByteString getLocalRatchetKey();
+
+ // optional bytes localRatchetKeyPrivate = 5;
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ boolean hasLocalRatchetKeyPrivate();
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ com.google.protobuf.ByteString getLocalRatchetKeyPrivate();
+
+ // optional bytes localIdentityKey = 7;
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ boolean hasLocalIdentityKey();
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ com.google.protobuf.ByteString getLocalIdentityKey();
+
+ // optional bytes localIdentityKeyPrivate = 8;
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ boolean hasLocalIdentityKeyPrivate();
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ com.google.protobuf.ByteString getLocalIdentityKeyPrivate();
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.PendingKeyExchange}
+ */
+ public static final class PendingKeyExchange extends
+ com.google.protobuf.GeneratedMessage
+ implements PendingKeyExchangeOrBuilder {
+ // Use PendingKeyExchange.newBuilder() to construct.
+ private PendingKeyExchange(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private PendingKeyExchange(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final PendingKeyExchange defaultInstance;
+ public static PendingKeyExchange getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public PendingKeyExchange getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private PendingKeyExchange(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ sequence_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ localBaseKey_ = input.readBytes();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000004;
+ localBaseKeyPrivate_ = input.readBytes();
+ break;
+ }
+ case 34: {
+ bitField0_ |= 0x00000008;
+ localRatchetKey_ = input.readBytes();
+ break;
+ }
+ case 42: {
+ bitField0_ |= 0x00000010;
+ localRatchetKeyPrivate_ = input.readBytes();
+ break;
+ }
+ case 58: {
+ bitField0_ |= 0x00000020;
+ localIdentityKey_ = input.readBytes();
+ break;
+ }
+ case 66: {
+ bitField0_ |= 0x00000040;
+ localIdentityKeyPrivate_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<PendingKeyExchange> PARSER =
+ new com.google.protobuf.AbstractParser<PendingKeyExchange>() {
+ public PendingKeyExchange parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new PendingKeyExchange(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<PendingKeyExchange> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 sequence = 1;
+ public static final int SEQUENCE_FIELD_NUMBER = 1;
+ private int sequence_;
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ public boolean hasSequence() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ public int getSequence() {
+ return sequence_;
+ }
+
+ // optional bytes localBaseKey = 2;
+ public static final int LOCALBASEKEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString localBaseKey_;
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ public boolean hasLocalBaseKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getLocalBaseKey() {
+ return localBaseKey_;
+ }
+
+ // optional bytes localBaseKeyPrivate = 3;
+ public static final int LOCALBASEKEYPRIVATE_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString localBaseKeyPrivate_;
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ public boolean hasLocalBaseKeyPrivate() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ public com.google.protobuf.ByteString getLocalBaseKeyPrivate() {
+ return localBaseKeyPrivate_;
+ }
+
+ // optional bytes localRatchetKey = 4;
+ public static final int LOCALRATCHETKEY_FIELD_NUMBER = 4;
+ private com.google.protobuf.ByteString localRatchetKey_;
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ public boolean hasLocalRatchetKey() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ public com.google.protobuf.ByteString getLocalRatchetKey() {
+ return localRatchetKey_;
+ }
+
+ // optional bytes localRatchetKeyPrivate = 5;
+ public static final int LOCALRATCHETKEYPRIVATE_FIELD_NUMBER = 5;
+ private com.google.protobuf.ByteString localRatchetKeyPrivate_;
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ public boolean hasLocalRatchetKeyPrivate() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ public com.google.protobuf.ByteString getLocalRatchetKeyPrivate() {
+ return localRatchetKeyPrivate_;
+ }
+
+ // optional bytes localIdentityKey = 7;
+ public static final int LOCALIDENTITYKEY_FIELD_NUMBER = 7;
+ private com.google.protobuf.ByteString localIdentityKey_;
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ public boolean hasLocalIdentityKey() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ public com.google.protobuf.ByteString getLocalIdentityKey() {
+ return localIdentityKey_;
+ }
+
+ // optional bytes localIdentityKeyPrivate = 8;
+ public static final int LOCALIDENTITYKEYPRIVATE_FIELD_NUMBER = 8;
+ private com.google.protobuf.ByteString localIdentityKeyPrivate_;
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ public boolean hasLocalIdentityKeyPrivate() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ public com.google.protobuf.ByteString getLocalIdentityKeyPrivate() {
+ return localIdentityKeyPrivate_;
+ }
+
+ private void initFields() {
+ sequence_ = 0;
+ localBaseKey_ = com.google.protobuf.ByteString.EMPTY;
+ localBaseKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ localRatchetKey_ = com.google.protobuf.ByteString.EMPTY;
+ localRatchetKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ localIdentityKey_ = com.google.protobuf.ByteString.EMPTY;
+ localIdentityKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, sequence_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, localBaseKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, localBaseKeyPrivate_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeBytes(4, localRatchetKey_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeBytes(5, localRatchetKeyPrivate_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ output.writeBytes(7, localIdentityKey_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ output.writeBytes(8, localIdentityKeyPrivate_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, sequence_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, localBaseKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, localBaseKeyPrivate_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(4, localRatchetKey_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(5, localRatchetKeyPrivate_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(7, localIdentityKey_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(8, localIdentityKeyPrivate_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.PendingKeyExchange}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ sequence_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ localBaseKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ localBaseKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ localRatchetKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ localRatchetKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ localIdentityKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000020);
+ localIdentityKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange result = new org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.sequence_ = sequence_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.localBaseKey_ = localBaseKey_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.localBaseKeyPrivate_ = localBaseKeyPrivate_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.localRatchetKey_ = localRatchetKey_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.localRatchetKeyPrivate_ = localRatchetKeyPrivate_;
+ if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+ to_bitField0_ |= 0x00000020;
+ }
+ result.localIdentityKey_ = localIdentityKey_;
+ if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+ to_bitField0_ |= 0x00000040;
+ }
+ result.localIdentityKeyPrivate_ = localIdentityKeyPrivate_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance()) return this;
+ if (other.hasSequence()) {
+ setSequence(other.getSequence());
+ }
+ if (other.hasLocalBaseKey()) {
+ setLocalBaseKey(other.getLocalBaseKey());
+ }
+ if (other.hasLocalBaseKeyPrivate()) {
+ setLocalBaseKeyPrivate(other.getLocalBaseKeyPrivate());
+ }
+ if (other.hasLocalRatchetKey()) {
+ setLocalRatchetKey(other.getLocalRatchetKey());
+ }
+ if (other.hasLocalRatchetKeyPrivate()) {
+ setLocalRatchetKeyPrivate(other.getLocalRatchetKeyPrivate());
+ }
+ if (other.hasLocalIdentityKey()) {
+ setLocalIdentityKey(other.getLocalIdentityKey());
+ }
+ if (other.hasLocalIdentityKeyPrivate()) {
+ setLocalIdentityKeyPrivate(other.getLocalIdentityKeyPrivate());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 sequence = 1;
+ private int sequence_ ;
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ public boolean hasSequence() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ public int getSequence() {
+ return sequence_;
+ }
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ public Builder setSequence(int value) {
+ bitField0_ |= 0x00000001;
+ sequence_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 sequence = 1;</code>
+ */
+ public Builder clearSequence() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ sequence_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localBaseKey = 2;
+ private com.google.protobuf.ByteString localBaseKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ public boolean hasLocalBaseKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getLocalBaseKey() {
+ return localBaseKey_;
+ }
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ public Builder setLocalBaseKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ localBaseKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localBaseKey = 2;</code>
+ */
+ public Builder clearLocalBaseKey() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ localBaseKey_ = getDefaultInstance().getLocalBaseKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localBaseKeyPrivate = 3;
+ private com.google.protobuf.ByteString localBaseKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ public boolean hasLocalBaseKeyPrivate() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ public com.google.protobuf.ByteString getLocalBaseKeyPrivate() {
+ return localBaseKeyPrivate_;
+ }
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ public Builder setLocalBaseKeyPrivate(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ localBaseKeyPrivate_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localBaseKeyPrivate = 3;</code>
+ */
+ public Builder clearLocalBaseKeyPrivate() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ localBaseKeyPrivate_ = getDefaultInstance().getLocalBaseKeyPrivate();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localRatchetKey = 4;
+ private com.google.protobuf.ByteString localRatchetKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ public boolean hasLocalRatchetKey() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ public com.google.protobuf.ByteString getLocalRatchetKey() {
+ return localRatchetKey_;
+ }
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ public Builder setLocalRatchetKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ localRatchetKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localRatchetKey = 4;</code>
+ */
+ public Builder clearLocalRatchetKey() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ localRatchetKey_ = getDefaultInstance().getLocalRatchetKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localRatchetKeyPrivate = 5;
+ private com.google.protobuf.ByteString localRatchetKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ public boolean hasLocalRatchetKeyPrivate() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ public com.google.protobuf.ByteString getLocalRatchetKeyPrivate() {
+ return localRatchetKeyPrivate_;
+ }
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ public Builder setLocalRatchetKeyPrivate(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000010;
+ localRatchetKeyPrivate_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localRatchetKeyPrivate = 5;</code>
+ */
+ public Builder clearLocalRatchetKeyPrivate() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ localRatchetKeyPrivate_ = getDefaultInstance().getLocalRatchetKeyPrivate();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localIdentityKey = 7;
+ private com.google.protobuf.ByteString localIdentityKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ public boolean hasLocalIdentityKey() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ public com.google.protobuf.ByteString getLocalIdentityKey() {
+ return localIdentityKey_;
+ }
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ public Builder setLocalIdentityKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000020;
+ localIdentityKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localIdentityKey = 7;</code>
+ */
+ public Builder clearLocalIdentityKey() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ localIdentityKey_ = getDefaultInstance().getLocalIdentityKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localIdentityKeyPrivate = 8;
+ private com.google.protobuf.ByteString localIdentityKeyPrivate_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ public boolean hasLocalIdentityKeyPrivate() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ public com.google.protobuf.ByteString getLocalIdentityKeyPrivate() {
+ return localIdentityKeyPrivate_;
+ }
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ public Builder setLocalIdentityKeyPrivate(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000040;
+ localIdentityKeyPrivate_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localIdentityKeyPrivate = 8;</code>
+ */
+ public Builder clearLocalIdentityKeyPrivate() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ localIdentityKeyPrivate_ = getDefaultInstance().getLocalIdentityKeyPrivate();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SessionStructure.PendingKeyExchange)
+ }
+
+ static {
+ defaultInstance = new PendingKeyExchange(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SessionStructure.PendingKeyExchange)
+ }
+
+ public interface PendingPreKeyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 preKeyId = 1;
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ boolean hasPreKeyId();
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ int getPreKeyId();
+
+ // optional int32 signedPreKeyId = 3;
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ boolean hasSignedPreKeyId();
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ int getSignedPreKeyId();
+
+ // optional bytes baseKey = 2;
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ boolean hasBaseKey();
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ com.google.protobuf.ByteString getBaseKey();
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.PendingPreKey}
+ */
+ public static final class PendingPreKey extends
+ com.google.protobuf.GeneratedMessage
+ implements PendingPreKeyOrBuilder {
+ // Use PendingPreKey.newBuilder() to construct.
+ private PendingPreKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private PendingPreKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final PendingPreKey defaultInstance;
+ public static PendingPreKey getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public PendingPreKey getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private PendingPreKey(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ preKeyId_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000004;
+ baseKey_ = input.readBytes();
+ break;
+ }
+ case 24: {
+ bitField0_ |= 0x00000002;
+ signedPreKeyId_ = input.readInt32();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<PendingPreKey> PARSER =
+ new com.google.protobuf.AbstractParser<PendingPreKey>() {
+ public PendingPreKey parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new PendingPreKey(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<PendingPreKey> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 preKeyId = 1;
+ public static final int PREKEYID_FIELD_NUMBER = 1;
+ private int preKeyId_;
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ public boolean hasPreKeyId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ public int getPreKeyId() {
+ return preKeyId_;
+ }
+
+ // optional int32 signedPreKeyId = 3;
+ public static final int SIGNEDPREKEYID_FIELD_NUMBER = 3;
+ private int signedPreKeyId_;
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ public boolean hasSignedPreKeyId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ public int getSignedPreKeyId() {
+ return signedPreKeyId_;
+ }
+
+ // optional bytes baseKey = 2;
+ public static final int BASEKEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString baseKey_;
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ public boolean hasBaseKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getBaseKey() {
+ return baseKey_;
+ }
+
+ private void initFields() {
+ preKeyId_ = 0;
+ signedPreKeyId_ = 0;
+ baseKey_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, preKeyId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(2, baseKey_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeInt32(3, signedPreKeyId_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, preKeyId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, baseKey_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(3, signedPreKeyId_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure.PendingPreKey}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ preKeyId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ signedPreKeyId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ baseKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey result = new org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.preKeyId_ = preKeyId_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.signedPreKeyId_ = signedPreKeyId_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.baseKey_ = baseKey_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance()) return this;
+ if (other.hasPreKeyId()) {
+ setPreKeyId(other.getPreKeyId());
+ }
+ if (other.hasSignedPreKeyId()) {
+ setSignedPreKeyId(other.getSignedPreKeyId());
+ }
+ if (other.hasBaseKey()) {
+ setBaseKey(other.getBaseKey());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 preKeyId = 1;
+ private int preKeyId_ ;
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ public boolean hasPreKeyId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ public int getPreKeyId() {
+ return preKeyId_;
+ }
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ public Builder setPreKeyId(int value) {
+ bitField0_ |= 0x00000001;
+ preKeyId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 preKeyId = 1;</code>
+ */
+ public Builder clearPreKeyId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ preKeyId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional int32 signedPreKeyId = 3;
+ private int signedPreKeyId_ ;
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ public boolean hasSignedPreKeyId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ public int getSignedPreKeyId() {
+ return signedPreKeyId_;
+ }
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ public Builder setSignedPreKeyId(int value) {
+ bitField0_ |= 0x00000002;
+ signedPreKeyId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional int32 signedPreKeyId = 3;</code>
+ */
+ public Builder clearSignedPreKeyId() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ signedPreKeyId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes baseKey = 2;
+ private com.google.protobuf.ByteString baseKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ public boolean hasBaseKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getBaseKey() {
+ return baseKey_;
+ }
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ public Builder setBaseKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ baseKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes baseKey = 2;</code>
+ */
+ public Builder clearBaseKey() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ baseKey_ = getDefaultInstance().getBaseKey();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SessionStructure.PendingPreKey)
+ }
+
+ static {
+ defaultInstance = new PendingPreKey(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SessionStructure.PendingPreKey)
+ }
+
+ private int bitField0_;
+ // optional uint32 sessionVersion = 1;
+ public static final int SESSIONVERSION_FIELD_NUMBER = 1;
+ private int sessionVersion_;
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ public boolean hasSessionVersion() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ public int getSessionVersion() {
+ return sessionVersion_;
+ }
+
+ // optional bytes localIdentityPublic = 2;
+ public static final int LOCALIDENTITYPUBLIC_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString localIdentityPublic_;
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ public boolean hasLocalIdentityPublic() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ public com.google.protobuf.ByteString getLocalIdentityPublic() {
+ return localIdentityPublic_;
+ }
+
+ // optional bytes remoteIdentityPublic = 3;
+ public static final int REMOTEIDENTITYPUBLIC_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString remoteIdentityPublic_;
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ public boolean hasRemoteIdentityPublic() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ public com.google.protobuf.ByteString getRemoteIdentityPublic() {
+ return remoteIdentityPublic_;
+ }
+
+ // optional bytes rootKey = 4;
+ public static final int ROOTKEY_FIELD_NUMBER = 4;
+ private com.google.protobuf.ByteString rootKey_;
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ public boolean hasRootKey() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ public com.google.protobuf.ByteString getRootKey() {
+ return rootKey_;
+ }
+
+ // optional uint32 previousCounter = 5;
+ public static final int PREVIOUSCOUNTER_FIELD_NUMBER = 5;
+ private int previousCounter_;
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ public boolean hasPreviousCounter() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ public int getPreviousCounter() {
+ return previousCounter_;
+ }
+
+ // optional .textsecure.SessionStructure.Chain senderChain = 6;
+ public static final int SENDERCHAIN_FIELD_NUMBER = 6;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain senderChain_;
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public boolean hasSenderChain() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getSenderChain() {
+ return senderChain_;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder getSenderChainOrBuilder() {
+ return senderChain_;
+ }
+
+ // repeated .textsecure.SessionStructure.Chain receiverChains = 7;
+ public static final int RECEIVERCHAINS_FIELD_NUMBER = 7;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain> receiverChains_;
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain> getReceiverChainsList() {
+ return receiverChains_;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>
+ getReceiverChainsOrBuilderList() {
+ return receiverChains_;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public int getReceiverChainsCount() {
+ return receiverChains_.size();
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getReceiverChains(int index) {
+ return receiverChains_.get(index);
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder getReceiverChainsOrBuilder(
+ int index) {
+ return receiverChains_.get(index);
+ }
+
+ // optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;
+ public static final int PENDINGKEYEXCHANGE_FIELD_NUMBER = 8;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange pendingKeyExchange_;
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public boolean hasPendingKeyExchange() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange getPendingKeyExchange() {
+ return pendingKeyExchange_;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder getPendingKeyExchangeOrBuilder() {
+ return pendingKeyExchange_;
+ }
+
+ // optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;
+ public static final int PENDINGPREKEY_FIELD_NUMBER = 9;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey pendingPreKey_;
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public boolean hasPendingPreKey() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey getPendingPreKey() {
+ return pendingPreKey_;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder getPendingPreKeyOrBuilder() {
+ return pendingPreKey_;
+ }
+
+ // optional uint32 remoteRegistrationId = 10;
+ public static final int REMOTEREGISTRATIONID_FIELD_NUMBER = 10;
+ private int remoteRegistrationId_;
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ public boolean hasRemoteRegistrationId() {
+ return ((bitField0_ & 0x00000100) == 0x00000100);
+ }
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ public int getRemoteRegistrationId() {
+ return remoteRegistrationId_;
+ }
+
+ // optional uint32 localRegistrationId = 11;
+ public static final int LOCALREGISTRATIONID_FIELD_NUMBER = 11;
+ private int localRegistrationId_;
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ public boolean hasLocalRegistrationId() {
+ return ((bitField0_ & 0x00000200) == 0x00000200);
+ }
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ public int getLocalRegistrationId() {
+ return localRegistrationId_;
+ }
+
+ // optional bool needsRefresh = 12;
+ public static final int NEEDSREFRESH_FIELD_NUMBER = 12;
+ private boolean needsRefresh_;
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ public boolean hasNeedsRefresh() {
+ return ((bitField0_ & 0x00000400) == 0x00000400);
+ }
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ public boolean getNeedsRefresh() {
+ return needsRefresh_;
+ }
+
+ // optional bytes aliceBaseKey = 13;
+ public static final int ALICEBASEKEY_FIELD_NUMBER = 13;
+ private com.google.protobuf.ByteString aliceBaseKey_;
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ public boolean hasAliceBaseKey() {
+ return ((bitField0_ & 0x00000800) == 0x00000800);
+ }
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ public com.google.protobuf.ByteString getAliceBaseKey() {
+ return aliceBaseKey_;
+ }
+
+ private void initFields() {
+ sessionVersion_ = 0;
+ localIdentityPublic_ = com.google.protobuf.ByteString.EMPTY;
+ remoteIdentityPublic_ = com.google.protobuf.ByteString.EMPTY;
+ rootKey_ = com.google.protobuf.ByteString.EMPTY;
+ previousCounter_ = 0;
+ senderChain_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance();
+ receiverChains_ = java.util.Collections.emptyList();
+ pendingKeyExchange_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance();
+ pendingPreKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance();
+ remoteRegistrationId_ = 0;
+ localRegistrationId_ = 0;
+ needsRefresh_ = false;
+ aliceBaseKey_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, sessionVersion_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, localIdentityPublic_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, remoteIdentityPublic_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeBytes(4, rootKey_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeUInt32(5, previousCounter_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ output.writeMessage(6, senderChain_);
+ }
+ for (int i = 0; i < receiverChains_.size(); i++) {
+ output.writeMessage(7, receiverChains_.get(i));
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ output.writeMessage(8, pendingKeyExchange_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ output.writeMessage(9, pendingPreKey_);
+ }
+ if (((bitField0_ & 0x00000100) == 0x00000100)) {
+ output.writeUInt32(10, remoteRegistrationId_);
+ }
+ if (((bitField0_ & 0x00000200) == 0x00000200)) {
+ output.writeUInt32(11, localRegistrationId_);
+ }
+ if (((bitField0_ & 0x00000400) == 0x00000400)) {
+ output.writeBool(12, needsRefresh_);
+ }
+ if (((bitField0_ & 0x00000800) == 0x00000800)) {
+ output.writeBytes(13, aliceBaseKey_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, sessionVersion_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, localIdentityPublic_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, remoteIdentityPublic_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(4, rootKey_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(5, previousCounter_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(6, senderChain_);
+ }
+ for (int i = 0; i < receiverChains_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(7, receiverChains_.get(i));
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(8, pendingKeyExchange_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(9, pendingPreKey_);
+ }
+ if (((bitField0_ & 0x00000100) == 0x00000100)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(10, remoteRegistrationId_);
+ }
+ if (((bitField0_ & 0x00000200) == 0x00000200)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(11, localRegistrationId_);
+ }
+ if (((bitField0_ & 0x00000400) == 0x00000400)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(12, needsRefresh_);
+ }
+ if (((bitField0_ & 0x00000800) == 0x00000800)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(13, aliceBaseKey_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SessionStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getSenderChainFieldBuilder();
+ getReceiverChainsFieldBuilder();
+ getPendingKeyExchangeFieldBuilder();
+ getPendingPreKeyFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ sessionVersion_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ localIdentityPublic_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ remoteIdentityPublic_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ rootKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ previousCounter_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ if (senderChainBuilder_ == null) {
+ senderChain_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance();
+ } else {
+ senderChainBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ if (receiverChainsBuilder_ == null) {
+ receiverChains_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ } else {
+ receiverChainsBuilder_.clear();
+ }
+ if (pendingKeyExchangeBuilder_ == null) {
+ pendingKeyExchange_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance();
+ } else {
+ pendingKeyExchangeBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000080);
+ if (pendingPreKeyBuilder_ == null) {
+ pendingPreKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance();
+ } else {
+ pendingPreKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000100);
+ remoteRegistrationId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000200);
+ localRegistrationId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000400);
+ needsRefresh_ = false;
+ bitField0_ = (bitField0_ & ~0x00000800);
+ aliceBaseKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00001000);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SessionStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.sessionVersion_ = sessionVersion_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.localIdentityPublic_ = localIdentityPublic_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.remoteIdentityPublic_ = remoteIdentityPublic_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.rootKey_ = rootKey_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.previousCounter_ = previousCounter_;
+ if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+ to_bitField0_ |= 0x00000020;
+ }
+ if (senderChainBuilder_ == null) {
+ result.senderChain_ = senderChain_;
+ } else {
+ result.senderChain_ = senderChainBuilder_.build();
+ }
+ if (receiverChainsBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ receiverChains_ = java.util.Collections.unmodifiableList(receiverChains_);
+ bitField0_ = (bitField0_ & ~0x00000040);
+ }
+ result.receiverChains_ = receiverChains_;
+ } else {
+ result.receiverChains_ = receiverChainsBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
+ to_bitField0_ |= 0x00000040;
+ }
+ if (pendingKeyExchangeBuilder_ == null) {
+ result.pendingKeyExchange_ = pendingKeyExchange_;
+ } else {
+ result.pendingKeyExchange_ = pendingKeyExchangeBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
+ to_bitField0_ |= 0x00000080;
+ }
+ if (pendingPreKeyBuilder_ == null) {
+ result.pendingPreKey_ = pendingPreKey_;
+ } else {
+ result.pendingPreKey_ = pendingPreKeyBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
+ to_bitField0_ |= 0x00000100;
+ }
+ result.remoteRegistrationId_ = remoteRegistrationId_;
+ if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
+ to_bitField0_ |= 0x00000200;
+ }
+ result.localRegistrationId_ = localRegistrationId_;
+ if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
+ to_bitField0_ |= 0x00000400;
+ }
+ result.needsRefresh_ = needsRefresh_;
+ if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
+ to_bitField0_ |= 0x00000800;
+ }
+ result.aliceBaseKey_ = aliceBaseKey_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance()) return this;
+ if (other.hasSessionVersion()) {
+ setSessionVersion(other.getSessionVersion());
+ }
+ if (other.hasLocalIdentityPublic()) {
+ setLocalIdentityPublic(other.getLocalIdentityPublic());
+ }
+ if (other.hasRemoteIdentityPublic()) {
+ setRemoteIdentityPublic(other.getRemoteIdentityPublic());
+ }
+ if (other.hasRootKey()) {
+ setRootKey(other.getRootKey());
+ }
+ if (other.hasPreviousCounter()) {
+ setPreviousCounter(other.getPreviousCounter());
+ }
+ if (other.hasSenderChain()) {
+ mergeSenderChain(other.getSenderChain());
+ }
+ if (receiverChainsBuilder_ == null) {
+ if (!other.receiverChains_.isEmpty()) {
+ if (receiverChains_.isEmpty()) {
+ receiverChains_ = other.receiverChains_;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ } else {
+ ensureReceiverChainsIsMutable();
+ receiverChains_.addAll(other.receiverChains_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.receiverChains_.isEmpty()) {
+ if (receiverChainsBuilder_.isEmpty()) {
+ receiverChainsBuilder_.dispose();
+ receiverChainsBuilder_ = null;
+ receiverChains_ = other.receiverChains_;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ receiverChainsBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getReceiverChainsFieldBuilder() : null;
+ } else {
+ receiverChainsBuilder_.addAllMessages(other.receiverChains_);
+ }
+ }
+ }
+ if (other.hasPendingKeyExchange()) {
+ mergePendingKeyExchange(other.getPendingKeyExchange());
+ }
+ if (other.hasPendingPreKey()) {
+ mergePendingPreKey(other.getPendingPreKey());
+ }
+ if (other.hasRemoteRegistrationId()) {
+ setRemoteRegistrationId(other.getRemoteRegistrationId());
+ }
+ if (other.hasLocalRegistrationId()) {
+ setLocalRegistrationId(other.getLocalRegistrationId());
+ }
+ if (other.hasNeedsRefresh()) {
+ setNeedsRefresh(other.getNeedsRefresh());
+ }
+ if (other.hasAliceBaseKey()) {
+ setAliceBaseKey(other.getAliceBaseKey());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 sessionVersion = 1;
+ private int sessionVersion_ ;
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ public boolean hasSessionVersion() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ public int getSessionVersion() {
+ return sessionVersion_;
+ }
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ public Builder setSessionVersion(int value) {
+ bitField0_ |= 0x00000001;
+ sessionVersion_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 sessionVersion = 1;</code>
+ */
+ public Builder clearSessionVersion() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ sessionVersion_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes localIdentityPublic = 2;
+ private com.google.protobuf.ByteString localIdentityPublic_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ public boolean hasLocalIdentityPublic() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ public com.google.protobuf.ByteString getLocalIdentityPublic() {
+ return localIdentityPublic_;
+ }
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ public Builder setLocalIdentityPublic(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ localIdentityPublic_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes localIdentityPublic = 2;</code>
+ */
+ public Builder clearLocalIdentityPublic() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ localIdentityPublic_ = getDefaultInstance().getLocalIdentityPublic();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes remoteIdentityPublic = 3;
+ private com.google.protobuf.ByteString remoteIdentityPublic_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ public boolean hasRemoteIdentityPublic() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ public com.google.protobuf.ByteString getRemoteIdentityPublic() {
+ return remoteIdentityPublic_;
+ }
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ public Builder setRemoteIdentityPublic(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ remoteIdentityPublic_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes remoteIdentityPublic = 3;</code>
+ */
+ public Builder clearRemoteIdentityPublic() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ remoteIdentityPublic_ = getDefaultInstance().getRemoteIdentityPublic();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes rootKey = 4;
+ private com.google.protobuf.ByteString rootKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ public boolean hasRootKey() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ public com.google.protobuf.ByteString getRootKey() {
+ return rootKey_;
+ }
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ public Builder setRootKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ rootKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes rootKey = 4;</code>
+ */
+ public Builder clearRootKey() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ rootKey_ = getDefaultInstance().getRootKey();
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 previousCounter = 5;
+ private int previousCounter_ ;
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ public boolean hasPreviousCounter() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ public int getPreviousCounter() {
+ return previousCounter_;
+ }
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ public Builder setPreviousCounter(int value) {
+ bitField0_ |= 0x00000010;
+ previousCounter_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 previousCounter = 5;</code>
+ */
+ public Builder clearPreviousCounter() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ previousCounter_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional .textsecure.SessionStructure.Chain senderChain = 6;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain senderChain_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder> senderChainBuilder_;
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public boolean hasSenderChain() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getSenderChain() {
+ if (senderChainBuilder_ == null) {
+ return senderChain_;
+ } else {
+ return senderChainBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public Builder setSenderChain(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain value) {
+ if (senderChainBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ senderChain_ = value;
+ onChanged();
+ } else {
+ senderChainBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public Builder setSenderChain(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) {
+ if (senderChainBuilder_ == null) {
+ senderChain_ = builderForValue.build();
+ onChanged();
+ } else {
+ senderChainBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public Builder mergeSenderChain(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain value) {
+ if (senderChainBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) == 0x00000020) &&
+ senderChain_ != org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance()) {
+ senderChain_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.newBuilder(senderChain_).mergeFrom(value).buildPartial();
+ } else {
+ senderChain_ = value;
+ }
+ onChanged();
+ } else {
+ senderChainBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public Builder clearSenderChain() {
+ if (senderChainBuilder_ == null) {
+ senderChain_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance();
+ onChanged();
+ } else {
+ senderChainBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder getSenderChainBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getSenderChainFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder getSenderChainOrBuilder() {
+ if (senderChainBuilder_ != null) {
+ return senderChainBuilder_.getMessageOrBuilder();
+ } else {
+ return senderChain_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.Chain senderChain = 6;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>
+ getSenderChainFieldBuilder() {
+ if (senderChainBuilder_ == null) {
+ senderChainBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>(
+ senderChain_,
+ getParentForChildren(),
+ isClean());
+ senderChain_ = null;
+ }
+ return senderChainBuilder_;
+ }
+
+ // repeated .textsecure.SessionStructure.Chain receiverChains = 7;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain> receiverChains_ =
+ java.util.Collections.emptyList();
+ private void ensureReceiverChainsIsMutable() {
+ if (!((bitField0_ & 0x00000040) == 0x00000040)) {
+ receiverChains_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain>(receiverChains_);
+ bitField0_ |= 0x00000040;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder> receiverChainsBuilder_;
+
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain> getReceiverChainsList() {
+ if (receiverChainsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(receiverChains_);
+ } else {
+ return receiverChainsBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public int getReceiverChainsCount() {
+ if (receiverChainsBuilder_ == null) {
+ return receiverChains_.size();
+ } else {
+ return receiverChainsBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain getReceiverChains(int index) {
+ if (receiverChainsBuilder_ == null) {
+ return receiverChains_.get(index);
+ } else {
+ return receiverChainsBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder setReceiverChains(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain value) {
+ if (receiverChainsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureReceiverChainsIsMutable();
+ receiverChains_.set(index, value);
+ onChanged();
+ } else {
+ receiverChainsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder setReceiverChains(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) {
+ if (receiverChainsBuilder_ == null) {
+ ensureReceiverChainsIsMutable();
+ receiverChains_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ receiverChainsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder addReceiverChains(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain value) {
+ if (receiverChainsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureReceiverChainsIsMutable();
+ receiverChains_.add(value);
+ onChanged();
+ } else {
+ receiverChainsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder addReceiverChains(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain value) {
+ if (receiverChainsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureReceiverChainsIsMutable();
+ receiverChains_.add(index, value);
+ onChanged();
+ } else {
+ receiverChainsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder addReceiverChains(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) {
+ if (receiverChainsBuilder_ == null) {
+ ensureReceiverChainsIsMutable();
+ receiverChains_.add(builderForValue.build());
+ onChanged();
+ } else {
+ receiverChainsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder addReceiverChains(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) {
+ if (receiverChainsBuilder_ == null) {
+ ensureReceiverChainsIsMutable();
+ receiverChains_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ receiverChainsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder addAllReceiverChains(
+ java.lang.Iterable<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain> values) {
+ if (receiverChainsBuilder_ == null) {
+ ensureReceiverChainsIsMutable();
+ super.addAll(values, receiverChains_);
+ onChanged();
+ } else {
+ receiverChainsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder clearReceiverChains() {
+ if (receiverChainsBuilder_ == null) {
+ receiverChains_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ } else {
+ receiverChainsBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public Builder removeReceiverChains(int index) {
+ if (receiverChainsBuilder_ == null) {
+ ensureReceiverChainsIsMutable();
+ receiverChains_.remove(index);
+ onChanged();
+ } else {
+ receiverChainsBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder getReceiverChainsBuilder(
+ int index) {
+ return getReceiverChainsFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder getReceiverChainsOrBuilder(
+ int index) {
+ if (receiverChainsBuilder_ == null) {
+ return receiverChains_.get(index); } else {
+ return receiverChainsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>
+ getReceiverChainsOrBuilderList() {
+ if (receiverChainsBuilder_ != null) {
+ return receiverChainsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(receiverChains_);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder addReceiverChainsBuilder() {
+ return getReceiverChainsFieldBuilder().addBuilder(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder addReceiverChainsBuilder(
+ int index) {
+ return getReceiverChainsFieldBuilder().addBuilder(
+ index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure.Chain receiverChains = 7;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder>
+ getReceiverChainsBuilderList() {
+ return getReceiverChainsFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>
+ getReceiverChainsFieldBuilder() {
+ if (receiverChainsBuilder_ == null) {
+ receiverChainsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.ChainOrBuilder>(
+ receiverChains_,
+ ((bitField0_ & 0x00000040) == 0x00000040),
+ getParentForChildren(),
+ isClean());
+ receiverChains_ = null;
+ }
+ return receiverChainsBuilder_;
+ }
+
+ // optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange pendingKeyExchange_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder> pendingKeyExchangeBuilder_;
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public boolean hasPendingKeyExchange() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange getPendingKeyExchange() {
+ if (pendingKeyExchangeBuilder_ == null) {
+ return pendingKeyExchange_;
+ } else {
+ return pendingKeyExchangeBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public Builder setPendingKeyExchange(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange value) {
+ if (pendingKeyExchangeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ pendingKeyExchange_ = value;
+ onChanged();
+ } else {
+ pendingKeyExchangeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000080;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public Builder setPendingKeyExchange(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder builderForValue) {
+ if (pendingKeyExchangeBuilder_ == null) {
+ pendingKeyExchange_ = builderForValue.build();
+ onChanged();
+ } else {
+ pendingKeyExchangeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000080;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public Builder mergePendingKeyExchange(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange value) {
+ if (pendingKeyExchangeBuilder_ == null) {
+ if (((bitField0_ & 0x00000080) == 0x00000080) &&
+ pendingKeyExchange_ != org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance()) {
+ pendingKeyExchange_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.newBuilder(pendingKeyExchange_).mergeFrom(value).buildPartial();
+ } else {
+ pendingKeyExchange_ = value;
+ }
+ onChanged();
+ } else {
+ pendingKeyExchangeBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000080;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public Builder clearPendingKeyExchange() {
+ if (pendingKeyExchangeBuilder_ == null) {
+ pendingKeyExchange_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance();
+ onChanged();
+ } else {
+ pendingKeyExchangeBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000080);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder getPendingKeyExchangeBuilder() {
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return getPendingKeyExchangeFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder getPendingKeyExchangeOrBuilder() {
+ if (pendingKeyExchangeBuilder_ != null) {
+ return pendingKeyExchangeBuilder_.getMessageOrBuilder();
+ } else {
+ return pendingKeyExchange_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder>
+ getPendingKeyExchangeFieldBuilder() {
+ if (pendingKeyExchangeBuilder_ == null) {
+ pendingKeyExchangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder>(
+ pendingKeyExchange_,
+ getParentForChildren(),
+ isClean());
+ pendingKeyExchange_ = null;
+ }
+ return pendingKeyExchangeBuilder_;
+ }
+
+ // optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey pendingPreKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder> pendingPreKeyBuilder_;
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public boolean hasPendingPreKey() {
+ return ((bitField0_ & 0x00000100) == 0x00000100);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey getPendingPreKey() {
+ if (pendingPreKeyBuilder_ == null) {
+ return pendingPreKey_;
+ } else {
+ return pendingPreKeyBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public Builder setPendingPreKey(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey value) {
+ if (pendingPreKeyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ pendingPreKey_ = value;
+ onChanged();
+ } else {
+ pendingPreKeyBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000100;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public Builder setPendingPreKey(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder builderForValue) {
+ if (pendingPreKeyBuilder_ == null) {
+ pendingPreKey_ = builderForValue.build();
+ onChanged();
+ } else {
+ pendingPreKeyBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000100;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public Builder mergePendingPreKey(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey value) {
+ if (pendingPreKeyBuilder_ == null) {
+ if (((bitField0_ & 0x00000100) == 0x00000100) &&
+ pendingPreKey_ != org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance()) {
+ pendingPreKey_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.newBuilder(pendingPreKey_).mergeFrom(value).buildPartial();
+ } else {
+ pendingPreKey_ = value;
+ }
+ onChanged();
+ } else {
+ pendingPreKeyBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000100;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public Builder clearPendingPreKey() {
+ if (pendingPreKeyBuilder_ == null) {
+ pendingPreKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance();
+ onChanged();
+ } else {
+ pendingPreKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000100);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder getPendingPreKeyBuilder() {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return getPendingPreKeyFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder getPendingPreKeyOrBuilder() {
+ if (pendingPreKeyBuilder_ != null) {
+ return pendingPreKeyBuilder_.getMessageOrBuilder();
+ } else {
+ return pendingPreKey_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder>
+ getPendingPreKeyFieldBuilder() {
+ if (pendingPreKeyBuilder_ == null) {
+ pendingPreKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder>(
+ pendingPreKey_,
+ getParentForChildren(),
+ isClean());
+ pendingPreKey_ = null;
+ }
+ return pendingPreKeyBuilder_;
+ }
+
+ // optional uint32 remoteRegistrationId = 10;
+ private int remoteRegistrationId_ ;
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ public boolean hasRemoteRegistrationId() {
+ return ((bitField0_ & 0x00000200) == 0x00000200);
+ }
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ public int getRemoteRegistrationId() {
+ return remoteRegistrationId_;
+ }
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ public Builder setRemoteRegistrationId(int value) {
+ bitField0_ |= 0x00000200;
+ remoteRegistrationId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 remoteRegistrationId = 10;</code>
+ */
+ public Builder clearRemoteRegistrationId() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ remoteRegistrationId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 localRegistrationId = 11;
+ private int localRegistrationId_ ;
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ public boolean hasLocalRegistrationId() {
+ return ((bitField0_ & 0x00000400) == 0x00000400);
+ }
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ public int getLocalRegistrationId() {
+ return localRegistrationId_;
+ }
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ public Builder setLocalRegistrationId(int value) {
+ bitField0_ |= 0x00000400;
+ localRegistrationId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 localRegistrationId = 11;</code>
+ */
+ public Builder clearLocalRegistrationId() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ localRegistrationId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bool needsRefresh = 12;
+ private boolean needsRefresh_ ;
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ public boolean hasNeedsRefresh() {
+ return ((bitField0_ & 0x00000800) == 0x00000800);
+ }
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ public boolean getNeedsRefresh() {
+ return needsRefresh_;
+ }
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ public Builder setNeedsRefresh(boolean value) {
+ bitField0_ |= 0x00000800;
+ needsRefresh_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bool needsRefresh = 12;</code>
+ */
+ public Builder clearNeedsRefresh() {
+ bitField0_ = (bitField0_ & ~0x00000800);
+ needsRefresh_ = false;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes aliceBaseKey = 13;
+ private com.google.protobuf.ByteString aliceBaseKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ public boolean hasAliceBaseKey() {
+ return ((bitField0_ & 0x00001000) == 0x00001000);
+ }
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ public com.google.protobuf.ByteString getAliceBaseKey() {
+ return aliceBaseKey_;
+ }
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ public Builder setAliceBaseKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00001000;
+ aliceBaseKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes aliceBaseKey = 13;</code>
+ */
+ public Builder clearAliceBaseKey() {
+ bitField0_ = (bitField0_ & ~0x00001000);
+ aliceBaseKey_ = getDefaultInstance().getAliceBaseKey();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SessionStructure)
+ }
+
+ static {
+ defaultInstance = new SessionStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SessionStructure)
+ }
+
+ public interface RecordStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .textsecure.SessionStructure currentSession = 1;
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ boolean hasCurrentSession();
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getCurrentSession();
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder getCurrentSessionOrBuilder();
+
+ // repeated .textsecure.SessionStructure previousSessions = 2;
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure>
+ getPreviousSessionsList();
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getPreviousSessions(int index);
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ int getPreviousSessionsCount();
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>
+ getPreviousSessionsOrBuilderList();
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder getPreviousSessionsOrBuilder(
+ int index);
+ }
+ /**
+ * Protobuf type {@code textsecure.RecordStructure}
+ */
+ public static final class RecordStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements RecordStructureOrBuilder {
+ // Use RecordStructure.newBuilder() to construct.
+ private RecordStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private RecordStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final RecordStructure defaultInstance;
+ public static RecordStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public RecordStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private RecordStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ subBuilder = currentSession_.toBuilder();
+ }
+ currentSession_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(currentSession_);
+ currentSession_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000001;
+ break;
+ }
+ case 18: {
+ if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+ previousSessions_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure>();
+ mutable_bitField0_ |= 0x00000002;
+ }
+ previousSessions_.add(input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.PARSER, extensionRegistry));
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+ previousSessions_ = java.util.Collections.unmodifiableList(previousSessions_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_RecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_RecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<RecordStructure> PARSER =
+ new com.google.protobuf.AbstractParser<RecordStructure>() {
+ public RecordStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new RecordStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<RecordStructure> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional .textsecure.SessionStructure currentSession = 1;
+ public static final int CURRENTSESSION_FIELD_NUMBER = 1;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure currentSession_;
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public boolean hasCurrentSession() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getCurrentSession() {
+ return currentSession_;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder getCurrentSessionOrBuilder() {
+ return currentSession_;
+ }
+
+ // repeated .textsecure.SessionStructure previousSessions = 2;
+ public static final int PREVIOUSSESSIONS_FIELD_NUMBER = 2;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure> previousSessions_;
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure> getPreviousSessionsList() {
+ return previousSessions_;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>
+ getPreviousSessionsOrBuilderList() {
+ return previousSessions_;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public int getPreviousSessionsCount() {
+ return previousSessions_.size();
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getPreviousSessions(int index) {
+ return previousSessions_.get(index);
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder getPreviousSessionsOrBuilder(
+ int index) {
+ return previousSessions_.get(index);
+ }
+
+ private void initFields() {
+ currentSession_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance();
+ previousSessions_ = java.util.Collections.emptyList();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeMessage(1, currentSession_);
+ }
+ for (int i = 0; i < previousSessions_.size(); i++) {
+ output.writeMessage(2, previousSessions_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, currentSession_);
+ }
+ for (int i = 0; i < previousSessions_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, previousSessions_.get(i));
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.RecordStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.RecordStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_RecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_RecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getCurrentSessionFieldBuilder();
+ getPreviousSessionsFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (currentSessionBuilder_ == null) {
+ currentSession_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance();
+ } else {
+ currentSessionBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (previousSessionsBuilder_ == null) {
+ previousSessions_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ previousSessionsBuilder_.clear();
+ }
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_RecordStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ if (currentSessionBuilder_ == null) {
+ result.currentSession_ = currentSession_;
+ } else {
+ result.currentSession_ = currentSessionBuilder_.build();
+ }
+ if (previousSessionsBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ previousSessions_ = java.util.Collections.unmodifiableList(previousSessions_);
+ bitField0_ = (bitField0_ & ~0x00000002);
+ }
+ result.previousSessions_ = previousSessions_;
+ } else {
+ result.previousSessions_ = previousSessionsBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure.getDefaultInstance()) return this;
+ if (other.hasCurrentSession()) {
+ mergeCurrentSession(other.getCurrentSession());
+ }
+ if (previousSessionsBuilder_ == null) {
+ if (!other.previousSessions_.isEmpty()) {
+ if (previousSessions_.isEmpty()) {
+ previousSessions_ = other.previousSessions_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.addAll(other.previousSessions_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.previousSessions_.isEmpty()) {
+ if (previousSessionsBuilder_.isEmpty()) {
+ previousSessionsBuilder_.dispose();
+ previousSessionsBuilder_ = null;
+ previousSessions_ = other.previousSessions_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ previousSessionsBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getPreviousSessionsFieldBuilder() : null;
+ } else {
+ previousSessionsBuilder_.addAllMessages(other.previousSessions_);
+ }
+ }
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.RecordStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional .textsecure.SessionStructure currentSession = 1;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure currentSession_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder> currentSessionBuilder_;
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public boolean hasCurrentSession() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getCurrentSession() {
+ if (currentSessionBuilder_ == null) {
+ return currentSession_;
+ } else {
+ return currentSessionBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public Builder setCurrentSession(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure value) {
+ if (currentSessionBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ currentSession_ = value;
+ onChanged();
+ } else {
+ currentSessionBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public Builder setCurrentSession(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder builderForValue) {
+ if (currentSessionBuilder_ == null) {
+ currentSession_ = builderForValue.build();
+ onChanged();
+ } else {
+ currentSessionBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public Builder mergeCurrentSession(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure value) {
+ if (currentSessionBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001) &&
+ currentSession_ != org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance()) {
+ currentSession_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.newBuilder(currentSession_).mergeFrom(value).buildPartial();
+ } else {
+ currentSession_ = value;
+ }
+ onChanged();
+ } else {
+ currentSessionBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public Builder clearCurrentSession() {
+ if (currentSessionBuilder_ == null) {
+ currentSession_ = org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance();
+ onChanged();
+ } else {
+ currentSessionBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder getCurrentSessionBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getCurrentSessionFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder getCurrentSessionOrBuilder() {
+ if (currentSessionBuilder_ != null) {
+ return currentSessionBuilder_.getMessageOrBuilder();
+ } else {
+ return currentSession_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SessionStructure currentSession = 1;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>
+ getCurrentSessionFieldBuilder() {
+ if (currentSessionBuilder_ == null) {
+ currentSessionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>(
+ currentSession_,
+ getParentForChildren(),
+ isClean());
+ currentSession_ = null;
+ }
+ return currentSessionBuilder_;
+ }
+
+ // repeated .textsecure.SessionStructure previousSessions = 2;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure> previousSessions_ =
+ java.util.Collections.emptyList();
+ private void ensurePreviousSessionsIsMutable() {
+ if (!((bitField0_ & 0x00000002) == 0x00000002)) {
+ previousSessions_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure>(previousSessions_);
+ bitField0_ |= 0x00000002;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder> previousSessionsBuilder_;
+
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure> getPreviousSessionsList() {
+ if (previousSessionsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(previousSessions_);
+ } else {
+ return previousSessionsBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public int getPreviousSessionsCount() {
+ if (previousSessionsBuilder_ == null) {
+ return previousSessions_.size();
+ } else {
+ return previousSessionsBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure getPreviousSessions(int index) {
+ if (previousSessionsBuilder_ == null) {
+ return previousSessions_.get(index);
+ } else {
+ return previousSessionsBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder setPreviousSessions(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure value) {
+ if (previousSessionsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.set(index, value);
+ onChanged();
+ } else {
+ previousSessionsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder setPreviousSessions(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder builderForValue) {
+ if (previousSessionsBuilder_ == null) {
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ previousSessionsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder addPreviousSessions(org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure value) {
+ if (previousSessionsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.add(value);
+ onChanged();
+ } else {
+ previousSessionsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder addPreviousSessions(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure value) {
+ if (previousSessionsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.add(index, value);
+ onChanged();
+ } else {
+ previousSessionsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder addPreviousSessions(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder builderForValue) {
+ if (previousSessionsBuilder_ == null) {
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.add(builderForValue.build());
+ onChanged();
+ } else {
+ previousSessionsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder addPreviousSessions(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder builderForValue) {
+ if (previousSessionsBuilder_ == null) {
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ previousSessionsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder addAllPreviousSessions(
+ java.lang.Iterable<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure> values) {
+ if (previousSessionsBuilder_ == null) {
+ ensurePreviousSessionsIsMutable();
+ super.addAll(values, previousSessions_);
+ onChanged();
+ } else {
+ previousSessionsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder clearPreviousSessions() {
+ if (previousSessionsBuilder_ == null) {
+ previousSessions_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ } else {
+ previousSessionsBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public Builder removePreviousSessions(int index) {
+ if (previousSessionsBuilder_ == null) {
+ ensurePreviousSessionsIsMutable();
+ previousSessions_.remove(index);
+ onChanged();
+ } else {
+ previousSessionsBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder getPreviousSessionsBuilder(
+ int index) {
+ return getPreviousSessionsFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder getPreviousSessionsOrBuilder(
+ int index) {
+ if (previousSessionsBuilder_ == null) {
+ return previousSessions_.get(index); } else {
+ return previousSessionsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>
+ getPreviousSessionsOrBuilderList() {
+ if (previousSessionsBuilder_ != null) {
+ return previousSessionsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(previousSessions_);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder addPreviousSessionsBuilder() {
+ return getPreviousSessionsFieldBuilder().addBuilder(
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder addPreviousSessionsBuilder(
+ int index) {
+ return getPreviousSessionsFieldBuilder().addBuilder(
+ index, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SessionStructure previousSessions = 2;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder>
+ getPreviousSessionsBuilderList() {
+ return getPreviousSessionsFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>
+ getPreviousSessionsFieldBuilder() {
+ if (previousSessionsBuilder_ == null) {
+ previousSessionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SessionStructureOrBuilder>(
+ previousSessions_,
+ ((bitField0_ & 0x00000002) == 0x00000002),
+ getParentForChildren(),
+ isClean());
+ previousSessions_ = null;
+ }
+ return previousSessionsBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.RecordStructure)
+ }
+
+ static {
+ defaultInstance = new RecordStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.RecordStructure)
+ }
+
+ public interface PreKeyRecordStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 id = 1;
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ boolean hasId();
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ int getId();
+
+ // optional bytes publicKey = 2;
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ boolean hasPublicKey();
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ com.google.protobuf.ByteString getPublicKey();
+
+ // optional bytes privateKey = 3;
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ boolean hasPrivateKey();
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ com.google.protobuf.ByteString getPrivateKey();
+ }
+ /**
+ * Protobuf type {@code textsecure.PreKeyRecordStructure}
+ */
+ public static final class PreKeyRecordStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements PreKeyRecordStructureOrBuilder {
+ // Use PreKeyRecordStructure.newBuilder() to construct.
+ private PreKeyRecordStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private PreKeyRecordStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final PreKeyRecordStructure defaultInstance;
+ public static PreKeyRecordStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public PreKeyRecordStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private PreKeyRecordStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ id_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ publicKey_ = input.readBytes();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000004;
+ privateKey_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<PreKeyRecordStructure> PARSER =
+ new com.google.protobuf.AbstractParser<PreKeyRecordStructure>() {
+ public PreKeyRecordStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new PreKeyRecordStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<PreKeyRecordStructure> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 id = 1;
+ public static final int ID_FIELD_NUMBER = 1;
+ private int id_;
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public int getId() {
+ return id_;
+ }
+
+ // optional bytes publicKey = 2;
+ public static final int PUBLICKEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString publicKey_;
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public boolean hasPublicKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPublicKey() {
+ return publicKey_;
+ }
+
+ // optional bytes privateKey = 3;
+ public static final int PRIVATEKEY_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString privateKey_;
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public boolean hasPrivateKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public com.google.protobuf.ByteString getPrivateKey() {
+ return privateKey_;
+ }
+
+ private void initFields() {
+ id_ = 0;
+ publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, id_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, publicKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, privateKey_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, id_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, publicKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, privateKey_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.PreKeyRecordStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ id_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.id_ = id_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.publicKey_ = publicKey_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.privateKey_ = privateKey_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure.getDefaultInstance()) return this;
+ if (other.hasId()) {
+ setId(other.getId());
+ }
+ if (other.hasPublicKey()) {
+ setPublicKey(other.getPublicKey());
+ }
+ if (other.hasPrivateKey()) {
+ setPrivateKey(other.getPrivateKey());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.PreKeyRecordStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 id = 1;
+ private int id_ ;
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public int getId() {
+ return id_;
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public Builder setId(int value) {
+ bitField0_ |= 0x00000001;
+ id_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public Builder clearId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ id_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes publicKey = 2;
+ private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public boolean hasPublicKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPublicKey() {
+ return publicKey_;
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public Builder setPublicKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ publicKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public Builder clearPublicKey() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ publicKey_ = getDefaultInstance().getPublicKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes privateKey = 3;
+ private com.google.protobuf.ByteString privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public boolean hasPrivateKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public com.google.protobuf.ByteString getPrivateKey() {
+ return privateKey_;
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public Builder setPrivateKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ privateKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public Builder clearPrivateKey() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ privateKey_ = getDefaultInstance().getPrivateKey();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.PreKeyRecordStructure)
+ }
+
+ static {
+ defaultInstance = new PreKeyRecordStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.PreKeyRecordStructure)
+ }
+
+ public interface SignedPreKeyRecordStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 id = 1;
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ boolean hasId();
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ int getId();
+
+ // optional bytes publicKey = 2;
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ boolean hasPublicKey();
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ com.google.protobuf.ByteString getPublicKey();
+
+ // optional bytes privateKey = 3;
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ boolean hasPrivateKey();
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ com.google.protobuf.ByteString getPrivateKey();
+
+ // optional bytes signature = 4;
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ boolean hasSignature();
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ com.google.protobuf.ByteString getSignature();
+
+ // optional fixed64 timestamp = 5;
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ boolean hasTimestamp();
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ long getTimestamp();
+ }
+ /**
+ * Protobuf type {@code textsecure.SignedPreKeyRecordStructure}
+ */
+ public static final class SignedPreKeyRecordStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements SignedPreKeyRecordStructureOrBuilder {
+ // Use SignedPreKeyRecordStructure.newBuilder() to construct.
+ private SignedPreKeyRecordStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SignedPreKeyRecordStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SignedPreKeyRecordStructure defaultInstance;
+ public static SignedPreKeyRecordStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SignedPreKeyRecordStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SignedPreKeyRecordStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ id_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ publicKey_ = input.readBytes();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000004;
+ privateKey_ = input.readBytes();
+ break;
+ }
+ case 34: {
+ bitField0_ |= 0x00000008;
+ signature_ = input.readBytes();
+ break;
+ }
+ case 41: {
+ bitField0_ |= 0x00000010;
+ timestamp_ = input.readFixed64();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SignedPreKeyRecordStructure> PARSER =
+ new com.google.protobuf.AbstractParser<SignedPreKeyRecordStructure>() {
+ public SignedPreKeyRecordStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SignedPreKeyRecordStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SignedPreKeyRecordStructure> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 id = 1;
+ public static final int ID_FIELD_NUMBER = 1;
+ private int id_;
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public int getId() {
+ return id_;
+ }
+
+ // optional bytes publicKey = 2;
+ public static final int PUBLICKEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString publicKey_;
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public boolean hasPublicKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPublicKey() {
+ return publicKey_;
+ }
+
+ // optional bytes privateKey = 3;
+ public static final int PRIVATEKEY_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString privateKey_;
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public boolean hasPrivateKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public com.google.protobuf.ByteString getPrivateKey() {
+ return privateKey_;
+ }
+
+ // optional bytes signature = 4;
+ public static final int SIGNATURE_FIELD_NUMBER = 4;
+ private com.google.protobuf.ByteString signature_;
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ public boolean hasSignature() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ public com.google.protobuf.ByteString getSignature() {
+ return signature_;
+ }
+
+ // optional fixed64 timestamp = 5;
+ public static final int TIMESTAMP_FIELD_NUMBER = 5;
+ private long timestamp_;
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ public boolean hasTimestamp() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ public long getTimestamp() {
+ return timestamp_;
+ }
+
+ private void initFields() {
+ id_ = 0;
+ publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ signature_ = com.google.protobuf.ByteString.EMPTY;
+ timestamp_ = 0L;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, id_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, publicKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, privateKey_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeBytes(4, signature_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeFixed64(5, timestamp_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, id_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, publicKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, privateKey_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(4, signature_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeFixed64Size(5, timestamp_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SignedPreKeyRecordStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ id_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ signature_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ timestamp_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.id_ = id_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.publicKey_ = publicKey_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.privateKey_ = privateKey_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.signature_ = signature_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.timestamp_ = timestamp_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure.getDefaultInstance()) return this;
+ if (other.hasId()) {
+ setId(other.getId());
+ }
+ if (other.hasPublicKey()) {
+ setPublicKey(other.getPublicKey());
+ }
+ if (other.hasPrivateKey()) {
+ setPrivateKey(other.getPrivateKey());
+ }
+ if (other.hasSignature()) {
+ setSignature(other.getSignature());
+ }
+ if (other.hasTimestamp()) {
+ setTimestamp(other.getTimestamp());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SignedPreKeyRecordStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 id = 1;
+ private int id_ ;
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public int getId() {
+ return id_;
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public Builder setId(int value) {
+ bitField0_ |= 0x00000001;
+ id_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 id = 1;</code>
+ */
+ public Builder clearId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ id_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes publicKey = 2;
+ private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public boolean hasPublicKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPublicKey() {
+ return publicKey_;
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public Builder setPublicKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ publicKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes publicKey = 2;</code>
+ */
+ public Builder clearPublicKey() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ publicKey_ = getDefaultInstance().getPublicKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes privateKey = 3;
+ private com.google.protobuf.ByteString privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public boolean hasPrivateKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public com.google.protobuf.ByteString getPrivateKey() {
+ return privateKey_;
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public Builder setPrivateKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ privateKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes privateKey = 3;</code>
+ */
+ public Builder clearPrivateKey() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ privateKey_ = getDefaultInstance().getPrivateKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes signature = 4;
+ private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ public boolean hasSignature() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ public com.google.protobuf.ByteString getSignature() {
+ return signature_;
+ }
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ public Builder setSignature(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ signature_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes signature = 4;</code>
+ */
+ public Builder clearSignature() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ signature_ = getDefaultInstance().getSignature();
+ onChanged();
+ return this;
+ }
+
+ // optional fixed64 timestamp = 5;
+ private long timestamp_ ;
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ public boolean hasTimestamp() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ public long getTimestamp() {
+ return timestamp_;
+ }
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ public Builder setTimestamp(long value) {
+ bitField0_ |= 0x00000010;
+ timestamp_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional fixed64 timestamp = 5;</code>
+ */
+ public Builder clearTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ timestamp_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SignedPreKeyRecordStructure)
+ }
+
+ static {
+ defaultInstance = new SignedPreKeyRecordStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SignedPreKeyRecordStructure)
+ }
+
+ public interface IdentityKeyPairStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional bytes publicKey = 1;
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ boolean hasPublicKey();
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ com.google.protobuf.ByteString getPublicKey();
+
+ // optional bytes privateKey = 2;
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ boolean hasPrivateKey();
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ com.google.protobuf.ByteString getPrivateKey();
+ }
+ /**
+ * Protobuf type {@code textsecure.IdentityKeyPairStructure}
+ */
+ public static final class IdentityKeyPairStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements IdentityKeyPairStructureOrBuilder {
+ // Use IdentityKeyPairStructure.newBuilder() to construct.
+ private IdentityKeyPairStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private IdentityKeyPairStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final IdentityKeyPairStructure defaultInstance;
+ public static IdentityKeyPairStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public IdentityKeyPairStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private IdentityKeyPairStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ publicKey_ = input.readBytes();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ privateKey_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<IdentityKeyPairStructure> PARSER =
+ new com.google.protobuf.AbstractParser<IdentityKeyPairStructure>() {
+ public IdentityKeyPairStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new IdentityKeyPairStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<IdentityKeyPairStructure> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional bytes publicKey = 1;
+ public static final int PUBLICKEY_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString publicKey_;
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ public boolean hasPublicKey() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ public com.google.protobuf.ByteString getPublicKey() {
+ return publicKey_;
+ }
+
+ // optional bytes privateKey = 2;
+ public static final int PRIVATEKEY_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString privateKey_;
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ public boolean hasPrivateKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPrivateKey() {
+ return privateKey_;
+ }
+
+ private void initFields() {
+ publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, publicKey_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, privateKey_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, publicKey_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, privateKey_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.IdentityKeyPairStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.publicKey_ = publicKey_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.privateKey_ = privateKey_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure.getDefaultInstance()) return this;
+ if (other.hasPublicKey()) {
+ setPublicKey(other.getPublicKey());
+ }
+ if (other.hasPrivateKey()) {
+ setPrivateKey(other.getPrivateKey());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.IdentityKeyPairStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional bytes publicKey = 1;
+ private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ public boolean hasPublicKey() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ public com.google.protobuf.ByteString getPublicKey() {
+ return publicKey_;
+ }
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ public Builder setPublicKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ publicKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes publicKey = 1;</code>
+ */
+ public Builder clearPublicKey() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ publicKey_ = getDefaultInstance().getPublicKey();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes privateKey = 2;
+ private com.google.protobuf.ByteString privateKey_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ public boolean hasPrivateKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPrivateKey() {
+ return privateKey_;
+ }
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ public Builder setPrivateKey(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ privateKey_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes privateKey = 2;</code>
+ */
+ public Builder clearPrivateKey() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ privateKey_ = getDefaultInstance().getPrivateKey();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.IdentityKeyPairStructure)
+ }
+
+ static {
+ defaultInstance = new IdentityKeyPairStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.IdentityKeyPairStructure)
+ }
+
+ public interface SenderKeyStateStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 senderKeyId = 1;
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ boolean hasSenderKeyId();
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ int getSenderKeyId();
+
+ // optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ boolean hasSenderChainKey();
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getSenderChainKey();
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder getSenderChainKeyOrBuilder();
+
+ // optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ boolean hasSenderSigningKey();
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getSenderSigningKey();
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder getSenderSigningKeyOrBuilder();
+
+ // repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey>
+ getSenderMessageKeysList();
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getSenderMessageKeys(int index);
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ int getSenderMessageKeysCount();
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder>
+ getSenderMessageKeysOrBuilderList();
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder getSenderMessageKeysOrBuilder(
+ int index);
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure}
+ */
+ public static final class SenderKeyStateStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements SenderKeyStateStructureOrBuilder {
+ // Use SenderKeyStateStructure.newBuilder() to construct.
+ private SenderKeyStateStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SenderKeyStateStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SenderKeyStateStructure defaultInstance;
+ public static SenderKeyStateStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SenderKeyStateStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SenderKeyStateStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ senderKeyId_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ subBuilder = senderChainKey_.toBuilder();
+ }
+ senderChainKey_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(senderChainKey_);
+ senderChainKey_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000002;
+ break;
+ }
+ case 26: {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ subBuilder = senderSigningKey_.toBuilder();
+ }
+ senderSigningKey_ = input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(senderSigningKey_);
+ senderSigningKey_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000004;
+ break;
+ }
+ case 34: {
+ if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+ senderMessageKeys_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey>();
+ mutable_bitField0_ |= 0x00000008;
+ }
+ senderMessageKeys_.add(input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.PARSER, extensionRegistry));
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+ senderMessageKeys_ = java.util.Collections.unmodifiableList(senderMessageKeys_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SenderKeyStateStructure> PARSER =
+ new com.google.protobuf.AbstractParser<SenderKeyStateStructure>() {
+ public SenderKeyStateStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SenderKeyStateStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SenderKeyStateStructure> getParserForType() {
+ return PARSER;
+ }
+
+ public interface SenderChainKeyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 iteration = 1;
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ boolean hasIteration();
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ int getIteration();
+
+ // optional bytes seed = 2;
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ boolean hasSeed();
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ com.google.protobuf.ByteString getSeed();
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure.SenderChainKey}
+ */
+ public static final class SenderChainKey extends
+ com.google.protobuf.GeneratedMessage
+ implements SenderChainKeyOrBuilder {
+ // Use SenderChainKey.newBuilder() to construct.
+ private SenderChainKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SenderChainKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SenderChainKey defaultInstance;
+ public static SenderChainKey getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SenderChainKey getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SenderChainKey(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ iteration_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ seed_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SenderChainKey> PARSER =
+ new com.google.protobuf.AbstractParser<SenderChainKey>() {
+ public SenderChainKey parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SenderChainKey(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SenderChainKey> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 iteration = 1;
+ public static final int ITERATION_FIELD_NUMBER = 1;
+ private int iteration_;
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public boolean hasIteration() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public int getIteration() {
+ return iteration_;
+ }
+
+ // optional bytes seed = 2;
+ public static final int SEED_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString seed_;
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public boolean hasSeed() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public com.google.protobuf.ByteString getSeed() {
+ return seed_;
+ }
+
+ private void initFields() {
+ iteration_ = 0;
+ seed_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, iteration_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, seed_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, iteration_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, seed_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure.SenderChainKey}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ iteration_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ seed_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey result = new org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.iteration_ = iteration_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.seed_ = seed_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance()) return this;
+ if (other.hasIteration()) {
+ setIteration(other.getIteration());
+ }
+ if (other.hasSeed()) {
+ setSeed(other.getSeed());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 iteration = 1;
+ private int iteration_ ;
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public boolean hasIteration() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public int getIteration() {
+ return iteration_;
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public Builder setIteration(int value) {
+ bitField0_ |= 0x00000001;
+ iteration_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public Builder clearIteration() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ iteration_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes seed = 2;
+ private com.google.protobuf.ByteString seed_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public boolean hasSeed() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public com.google.protobuf.ByteString getSeed() {
+ return seed_;
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public Builder setSeed(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ seed_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public Builder clearSeed() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ seed_ = getDefaultInstance().getSeed();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyStateStructure.SenderChainKey)
+ }
+
+ static {
+ defaultInstance = new SenderChainKey(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure.SenderChainKey)
+ }
+
+ public interface SenderMessageKeyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 iteration = 1;
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ boolean hasIteration();
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ int getIteration();
+
+ // optional bytes seed = 2;
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ boolean hasSeed();
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ com.google.protobuf.ByteString getSeed();
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure.SenderMessageKey}
+ */
+ public static final class SenderMessageKey extends
+ com.google.protobuf.GeneratedMessage
+ implements SenderMessageKeyOrBuilder {
+ // Use SenderMessageKey.newBuilder() to construct.
+ private SenderMessageKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SenderMessageKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SenderMessageKey defaultInstance;
+ public static SenderMessageKey getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SenderMessageKey getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SenderMessageKey(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ iteration_ = input.readUInt32();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ seed_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SenderMessageKey> PARSER =
+ new com.google.protobuf.AbstractParser<SenderMessageKey>() {
+ public SenderMessageKey parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SenderMessageKey(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SenderMessageKey> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional uint32 iteration = 1;
+ public static final int ITERATION_FIELD_NUMBER = 1;
+ private int iteration_;
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public boolean hasIteration() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public int getIteration() {
+ return iteration_;
+ }
+
+ // optional bytes seed = 2;
+ public static final int SEED_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString seed_;
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public boolean hasSeed() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public com.google.protobuf.ByteString getSeed() {
+ return seed_;
+ }
+
+ private void initFields() {
+ iteration_ = 0;
+ seed_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, iteration_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, seed_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, iteration_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, seed_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure.SenderMessageKey}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ iteration_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ seed_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey result = new org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.iteration_ = iteration_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.seed_ = seed_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance()) return this;
+ if (other.hasIteration()) {
+ setIteration(other.getIteration());
+ }
+ if (other.hasSeed()) {
+ setSeed(other.getSeed());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 iteration = 1;
+ private int iteration_ ;
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public boolean hasIteration() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public int getIteration() {
+ return iteration_;
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public Builder setIteration(int value) {
+ bitField0_ |= 0x00000001;
+ iteration_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 iteration = 1;</code>
+ */
+ public Builder clearIteration() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ iteration_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes seed = 2;
+ private com.google.protobuf.ByteString seed_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public boolean hasSeed() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public com.google.protobuf.ByteString getSeed() {
+ return seed_;
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public Builder setSeed(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ seed_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes seed = 2;</code>
+ */
+ public Builder clearSeed() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ seed_ = getDefaultInstance().getSeed();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyStateStructure.SenderMessageKey)
+ }
+
+ static {
+ defaultInstance = new SenderMessageKey(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure.SenderMessageKey)
+ }
+
+ public interface SenderSigningKeyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional bytes public = 1;
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ boolean hasPublic();
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ com.google.protobuf.ByteString getPublic();
+
+ // optional bytes private = 2;
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ boolean hasPrivate();
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ com.google.protobuf.ByteString getPrivate();
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure.SenderSigningKey}
+ */
+ public static final class SenderSigningKey extends
+ com.google.protobuf.GeneratedMessage
+ implements SenderSigningKeyOrBuilder {
+ // Use SenderSigningKey.newBuilder() to construct.
+ private SenderSigningKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SenderSigningKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SenderSigningKey defaultInstance;
+ public static SenderSigningKey getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SenderSigningKey getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SenderSigningKey(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ public_ = input.readBytes();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ private_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SenderSigningKey> PARSER =
+ new com.google.protobuf.AbstractParser<SenderSigningKey>() {
+ public SenderSigningKey parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SenderSigningKey(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SenderSigningKey> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional bytes public = 1;
+ public static final int PUBLIC_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString public_;
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ public boolean hasPublic() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ public com.google.protobuf.ByteString getPublic() {
+ return public_;
+ }
+
+ // optional bytes private = 2;
+ public static final int PRIVATE_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString private_;
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ public boolean hasPrivate() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPrivate() {
+ return private_;
+ }
+
+ private void initFields() {
+ public_ = com.google.protobuf.ByteString.EMPTY;
+ private_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, public_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, private_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, public_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, private_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure.SenderSigningKey}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ public_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ private_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey result = new org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.public_ = public_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.private_ = private_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance()) return this;
+ if (other.hasPublic()) {
+ setPublic(other.getPublic());
+ }
+ if (other.hasPrivate()) {
+ setPrivate(other.getPrivate());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional bytes public = 1;
+ private com.google.protobuf.ByteString public_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ public boolean hasPublic() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ public com.google.protobuf.ByteString getPublic() {
+ return public_;
+ }
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ public Builder setPublic(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ public_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes public = 1;</code>
+ */
+ public Builder clearPublic() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ public_ = getDefaultInstance().getPublic();
+ onChanged();
+ return this;
+ }
+
+ // optional bytes private = 2;
+ private com.google.protobuf.ByteString private_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ public boolean hasPrivate() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPrivate() {
+ return private_;
+ }
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ public Builder setPrivate(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ private_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes private = 2;</code>
+ */
+ public Builder clearPrivate() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ private_ = getDefaultInstance().getPrivate();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyStateStructure.SenderSigningKey)
+ }
+
+ static {
+ defaultInstance = new SenderSigningKey(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure.SenderSigningKey)
+ }
+
+ private int bitField0_;
+ // optional uint32 senderKeyId = 1;
+ public static final int SENDERKEYID_FIELD_NUMBER = 1;
+ private int senderKeyId_;
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ public boolean hasSenderKeyId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ public int getSenderKeyId() {
+ return senderKeyId_;
+ }
+
+ // optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;
+ public static final int SENDERCHAINKEY_FIELD_NUMBER = 2;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey senderChainKey_;
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public boolean hasSenderChainKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getSenderChainKey() {
+ return senderChainKey_;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder getSenderChainKeyOrBuilder() {
+ return senderChainKey_;
+ }
+
+ // optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;
+ public static final int SENDERSIGNINGKEY_FIELD_NUMBER = 3;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey senderSigningKey_;
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public boolean hasSenderSigningKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getSenderSigningKey() {
+ return senderSigningKey_;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder getSenderSigningKeyOrBuilder() {
+ return senderSigningKey_;
+ }
+
+ // repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;
+ public static final int SENDERMESSAGEKEYS_FIELD_NUMBER = 4;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey> senderMessageKeys_;
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey> getSenderMessageKeysList() {
+ return senderMessageKeys_;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder>
+ getSenderMessageKeysOrBuilderList() {
+ return senderMessageKeys_;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public int getSenderMessageKeysCount() {
+ return senderMessageKeys_.size();
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getSenderMessageKeys(int index) {
+ return senderMessageKeys_.get(index);
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder getSenderMessageKeysOrBuilder(
+ int index) {
+ return senderMessageKeys_.get(index);
+ }
+
+ private void initFields() {
+ senderKeyId_ = 0;
+ senderChainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance();
+ senderSigningKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance();
+ senderMessageKeys_ = java.util.Collections.emptyList();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, senderKeyId_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, senderChainKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, senderSigningKey_);
+ }
+ for (int i = 0; i < senderMessageKeys_.size(); i++) {
+ output.writeMessage(4, senderMessageKeys_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, senderKeyId_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, senderChainKey_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, senderSigningKey_);
+ }
+ for (int i = 0; i < senderMessageKeys_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, senderMessageKeys_.get(i));
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyStateStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getSenderChainKeyFieldBuilder();
+ getSenderSigningKeyFieldBuilder();
+ getSenderMessageKeysFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ senderKeyId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (senderChainKeyBuilder_ == null) {
+ senderChainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance();
+ } else {
+ senderChainKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (senderSigningKeyBuilder_ == null) {
+ senderSigningKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance();
+ } else {
+ senderSigningKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ if (senderMessageKeysBuilder_ == null) {
+ senderMessageKeys_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ } else {
+ senderMessageKeysBuilder_.clear();
+ }
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.senderKeyId_ = senderKeyId_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (senderChainKeyBuilder_ == null) {
+ result.senderChainKey_ = senderChainKey_;
+ } else {
+ result.senderChainKey_ = senderChainKeyBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (senderSigningKeyBuilder_ == null) {
+ result.senderSigningKey_ = senderSigningKey_;
+ } else {
+ result.senderSigningKey_ = senderSigningKeyBuilder_.build();
+ }
+ if (senderMessageKeysBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ senderMessageKeys_ = java.util.Collections.unmodifiableList(senderMessageKeys_);
+ bitField0_ = (bitField0_ & ~0x00000008);
+ }
+ result.senderMessageKeys_ = senderMessageKeys_;
+ } else {
+ result.senderMessageKeys_ = senderMessageKeysBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance()) return this;
+ if (other.hasSenderKeyId()) {
+ setSenderKeyId(other.getSenderKeyId());
+ }
+ if (other.hasSenderChainKey()) {
+ mergeSenderChainKey(other.getSenderChainKey());
+ }
+ if (other.hasSenderSigningKey()) {
+ mergeSenderSigningKey(other.getSenderSigningKey());
+ }
+ if (senderMessageKeysBuilder_ == null) {
+ if (!other.senderMessageKeys_.isEmpty()) {
+ if (senderMessageKeys_.isEmpty()) {
+ senderMessageKeys_ = other.senderMessageKeys_;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ } else {
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.addAll(other.senderMessageKeys_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.senderMessageKeys_.isEmpty()) {
+ if (senderMessageKeysBuilder_.isEmpty()) {
+ senderMessageKeysBuilder_.dispose();
+ senderMessageKeysBuilder_ = null;
+ senderMessageKeys_ = other.senderMessageKeys_;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ senderMessageKeysBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getSenderMessageKeysFieldBuilder() : null;
+ } else {
+ senderMessageKeysBuilder_.addAllMessages(other.senderMessageKeys_);
+ }
+ }
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional uint32 senderKeyId = 1;
+ private int senderKeyId_ ;
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ public boolean hasSenderKeyId() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ public int getSenderKeyId() {
+ return senderKeyId_;
+ }
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ public Builder setSenderKeyId(int value) {
+ bitField0_ |= 0x00000001;
+ senderKeyId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional uint32 senderKeyId = 1;</code>
+ */
+ public Builder clearSenderKeyId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ senderKeyId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey senderChainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder> senderChainKeyBuilder_;
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public boolean hasSenderChainKey() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getSenderChainKey() {
+ if (senderChainKeyBuilder_ == null) {
+ return senderChainKey_;
+ } else {
+ return senderChainKeyBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public Builder setSenderChainKey(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey value) {
+ if (senderChainKeyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ senderChainKey_ = value;
+ onChanged();
+ } else {
+ senderChainKeyBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public Builder setSenderChainKey(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder builderForValue) {
+ if (senderChainKeyBuilder_ == null) {
+ senderChainKey_ = builderForValue.build();
+ onChanged();
+ } else {
+ senderChainKeyBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public Builder mergeSenderChainKey(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey value) {
+ if (senderChainKeyBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ senderChainKey_ != org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance()) {
+ senderChainKey_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.newBuilder(senderChainKey_).mergeFrom(value).buildPartial();
+ } else {
+ senderChainKey_ = value;
+ }
+ onChanged();
+ } else {
+ senderChainKeyBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public Builder clearSenderChainKey() {
+ if (senderChainKeyBuilder_ == null) {
+ senderChainKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance();
+ onChanged();
+ } else {
+ senderChainKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder getSenderChainKeyBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getSenderChainKeyFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder getSenderChainKeyOrBuilder() {
+ if (senderChainKeyBuilder_ != null) {
+ return senderChainKeyBuilder_.getMessageOrBuilder();
+ } else {
+ return senderChainKey_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder>
+ getSenderChainKeyFieldBuilder() {
+ if (senderChainKeyBuilder_ == null) {
+ senderChainKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder>(
+ senderChainKey_,
+ getParentForChildren(),
+ isClean());
+ senderChainKey_ = null;
+ }
+ return senderChainKeyBuilder_;
+ }
+
+ // optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;
+ private org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey senderSigningKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder> senderSigningKeyBuilder_;
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public boolean hasSenderSigningKey() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getSenderSigningKey() {
+ if (senderSigningKeyBuilder_ == null) {
+ return senderSigningKey_;
+ } else {
+ return senderSigningKeyBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public Builder setSenderSigningKey(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey value) {
+ if (senderSigningKeyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ senderSigningKey_ = value;
+ onChanged();
+ } else {
+ senderSigningKeyBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public Builder setSenderSigningKey(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder builderForValue) {
+ if (senderSigningKeyBuilder_ == null) {
+ senderSigningKey_ = builderForValue.build();
+ onChanged();
+ } else {
+ senderSigningKeyBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public Builder mergeSenderSigningKey(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey value) {
+ if (senderSigningKeyBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ senderSigningKey_ != org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance()) {
+ senderSigningKey_ =
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.newBuilder(senderSigningKey_).mergeFrom(value).buildPartial();
+ } else {
+ senderSigningKey_ = value;
+ }
+ onChanged();
+ } else {
+ senderSigningKeyBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public Builder clearSenderSigningKey() {
+ if (senderSigningKeyBuilder_ == null) {
+ senderSigningKey_ = org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance();
+ onChanged();
+ } else {
+ senderSigningKeyBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder getSenderSigningKeyBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getSenderSigningKeyFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder getSenderSigningKeyOrBuilder() {
+ if (senderSigningKeyBuilder_ != null) {
+ return senderSigningKeyBuilder_.getMessageOrBuilder();
+ } else {
+ return senderSigningKey_;
+ }
+ }
+ /**
+ * <code>optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder>
+ getSenderSigningKeyFieldBuilder() {
+ if (senderSigningKeyBuilder_ == null) {
+ senderSigningKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder>(
+ senderSigningKey_,
+ getParentForChildren(),
+ isClean());
+ senderSigningKey_ = null;
+ }
+ return senderSigningKeyBuilder_;
+ }
+
+ // repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey> senderMessageKeys_ =
+ java.util.Collections.emptyList();
+ private void ensureSenderMessageKeysIsMutable() {
+ if (!((bitField0_ & 0x00000008) == 0x00000008)) {
+ senderMessageKeys_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey>(senderMessageKeys_);
+ bitField0_ |= 0x00000008;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder> senderMessageKeysBuilder_;
+
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey> getSenderMessageKeysList() {
+ if (senderMessageKeysBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(senderMessageKeys_);
+ } else {
+ return senderMessageKeysBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public int getSenderMessageKeysCount() {
+ if (senderMessageKeysBuilder_ == null) {
+ return senderMessageKeys_.size();
+ } else {
+ return senderMessageKeysBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getSenderMessageKeys(int index) {
+ if (senderMessageKeysBuilder_ == null) {
+ return senderMessageKeys_.get(index);
+ } else {
+ return senderMessageKeysBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder setSenderMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey value) {
+ if (senderMessageKeysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.set(index, value);
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder setSenderMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder builderForValue) {
+ if (senderMessageKeysBuilder_ == null) {
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder addSenderMessageKeys(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey value) {
+ if (senderMessageKeysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.add(value);
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder addSenderMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey value) {
+ if (senderMessageKeysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.add(index, value);
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder addSenderMessageKeys(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder builderForValue) {
+ if (senderMessageKeysBuilder_ == null) {
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.add(builderForValue.build());
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder addSenderMessageKeys(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder builderForValue) {
+ if (senderMessageKeysBuilder_ == null) {
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder addAllSenderMessageKeys(
+ java.lang.Iterable<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey> values) {
+ if (senderMessageKeysBuilder_ == null) {
+ ensureSenderMessageKeysIsMutable();
+ super.addAll(values, senderMessageKeys_);
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder clearSenderMessageKeys() {
+ if (senderMessageKeysBuilder_ == null) {
+ senderMessageKeys_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public Builder removeSenderMessageKeys(int index) {
+ if (senderMessageKeysBuilder_ == null) {
+ ensureSenderMessageKeysIsMutable();
+ senderMessageKeys_.remove(index);
+ onChanged();
+ } else {
+ senderMessageKeysBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder getSenderMessageKeysBuilder(
+ int index) {
+ return getSenderMessageKeysFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder getSenderMessageKeysOrBuilder(
+ int index) {
+ if (senderMessageKeysBuilder_ == null) {
+ return senderMessageKeys_.get(index); } else {
+ return senderMessageKeysBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder>
+ getSenderMessageKeysOrBuilderList() {
+ if (senderMessageKeysBuilder_ != null) {
+ return senderMessageKeysBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(senderMessageKeys_);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder addSenderMessageKeysBuilder() {
+ return getSenderMessageKeysFieldBuilder().addBuilder(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder addSenderMessageKeysBuilder(
+ int index) {
+ return getSenderMessageKeysFieldBuilder().addBuilder(
+ index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder>
+ getSenderMessageKeysBuilderList() {
+ return getSenderMessageKeysFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder>
+ getSenderMessageKeysFieldBuilder() {
+ if (senderMessageKeysBuilder_ == null) {
+ senderMessageKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder>(
+ senderMessageKeys_,
+ ((bitField0_ & 0x00000008) == 0x00000008),
+ getParentForChildren(),
+ isClean());
+ senderMessageKeys_ = null;
+ }
+ return senderMessageKeysBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyStateStructure)
+ }
+
+ static {
+ defaultInstance = new SenderKeyStateStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SenderKeyStateStructure)
+ }
+
+ public interface SenderKeyRecordStructureOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure>
+ getSenderKeyStatesList();
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure getSenderKeyStates(int index);
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ int getSenderKeyStatesCount();
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder>
+ getSenderKeyStatesOrBuilderList();
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder getSenderKeyStatesOrBuilder(
+ int index);
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyRecordStructure}
+ */
+ public static final class SenderKeyRecordStructure extends
+ com.google.protobuf.GeneratedMessage
+ implements SenderKeyRecordStructureOrBuilder {
+ // Use SenderKeyRecordStructure.newBuilder() to construct.
+ private SenderKeyRecordStructure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private SenderKeyRecordStructure(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final SenderKeyRecordStructure defaultInstance;
+ public static SenderKeyRecordStructure getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SenderKeyRecordStructure getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private SenderKeyRecordStructure(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+ senderKeyStates_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure>();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ senderKeyStates_.add(input.readMessage(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.PARSER, extensionRegistry));
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+ senderKeyStates_ = java.util.Collections.unmodifiableList(senderKeyStates_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<SenderKeyRecordStructure> PARSER =
+ new com.google.protobuf.AbstractParser<SenderKeyRecordStructure>() {
+ public SenderKeyRecordStructure parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new SenderKeyRecordStructure(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<SenderKeyRecordStructure> getParserForType() {
+ return PARSER;
+ }
+
+ // repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;
+ public static final int SENDERKEYSTATES_FIELD_NUMBER = 1;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure> senderKeyStates_;
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure> getSenderKeyStatesList() {
+ return senderKeyStates_;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder>
+ getSenderKeyStatesOrBuilderList() {
+ return senderKeyStates_;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public int getSenderKeyStatesCount() {
+ return senderKeyStates_.size();
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure getSenderKeyStates(int index) {
+ return senderKeyStates_.get(index);
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder getSenderKeyStatesOrBuilder(
+ int index) {
+ return senderKeyStates_.get(index);
+ }
+
+ private void initFields() {
+ senderKeyStates_ = java.util.Collections.emptyList();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ for (int i = 0; i < senderKeyStates_.size(); i++) {
+ output.writeMessage(1, senderKeyStates_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < senderKeyStates_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, senderKeyStates_.get(i));
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code textsecure.SenderKeyRecordStructure}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructureOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.class, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.Builder.class);
+ }
+
+ // Construct using org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getSenderKeyStatesFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (senderKeyStatesBuilder_ == null) {
+ senderKeyStates_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ senderKeyStatesBuilder_.clear();
+ }
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_descriptor;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure getDefaultInstanceForType() {
+ return org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.getDefaultInstance();
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure build() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure buildPartial() {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure result = new org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure(this);
+ int from_bitField0_ = bitField0_;
+ if (senderKeyStatesBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ senderKeyStates_ = java.util.Collections.unmodifiableList(senderKeyStates_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.senderKeyStates_ = senderKeyStates_;
+ } else {
+ result.senderKeyStates_ = senderKeyStatesBuilder_.build();
+ }
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure) {
+ return mergeFrom((org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure other) {
+ if (other == org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure.getDefaultInstance()) return this;
+ if (senderKeyStatesBuilder_ == null) {
+ if (!other.senderKeyStates_.isEmpty()) {
+ if (senderKeyStates_.isEmpty()) {
+ senderKeyStates_ = other.senderKeyStates_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.addAll(other.senderKeyStates_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.senderKeyStates_.isEmpty()) {
+ if (senderKeyStatesBuilder_.isEmpty()) {
+ senderKeyStatesBuilder_.dispose();
+ senderKeyStatesBuilder_ = null;
+ senderKeyStates_ = other.senderKeyStates_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ senderKeyStatesBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getSenderKeyStatesFieldBuilder() : null;
+ } else {
+ senderKeyStatesBuilder_.addAllMessages(other.senderKeyStates_);
+ }
+ }
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyRecordStructure) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;
+ private java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure> senderKeyStates_ =
+ java.util.Collections.emptyList();
+ private void ensureSenderKeyStatesIsMutable() {
+ if (!((bitField0_ & 0x00000001) == 0x00000001)) {
+ senderKeyStates_ = new java.util.ArrayList<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure>(senderKeyStates_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder> senderKeyStatesBuilder_;
+
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure> getSenderKeyStatesList() {
+ if (senderKeyStatesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(senderKeyStates_);
+ } else {
+ return senderKeyStatesBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public int getSenderKeyStatesCount() {
+ if (senderKeyStatesBuilder_ == null) {
+ return senderKeyStates_.size();
+ } else {
+ return senderKeyStatesBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure getSenderKeyStates(int index) {
+ if (senderKeyStatesBuilder_ == null) {
+ return senderKeyStates_.get(index);
+ } else {
+ return senderKeyStatesBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder setSenderKeyStates(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure value) {
+ if (senderKeyStatesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.set(index, value);
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder setSenderKeyStates(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder builderForValue) {
+ if (senderKeyStatesBuilder_ == null) {
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder addSenderKeyStates(org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure value) {
+ if (senderKeyStatesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.add(value);
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder addSenderKeyStates(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure value) {
+ if (senderKeyStatesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.add(index, value);
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder addSenderKeyStates(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder builderForValue) {
+ if (senderKeyStatesBuilder_ == null) {
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.add(builderForValue.build());
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder addSenderKeyStates(
+ int index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder builderForValue) {
+ if (senderKeyStatesBuilder_ == null) {
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder addAllSenderKeyStates(
+ java.lang.Iterable<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure> values) {
+ if (senderKeyStatesBuilder_ == null) {
+ ensureSenderKeyStatesIsMutable();
+ super.addAll(values, senderKeyStates_);
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder clearSenderKeyStates() {
+ if (senderKeyStatesBuilder_ == null) {
+ senderKeyStates_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public Builder removeSenderKeyStates(int index) {
+ if (senderKeyStatesBuilder_ == null) {
+ ensureSenderKeyStatesIsMutable();
+ senderKeyStates_.remove(index);
+ onChanged();
+ } else {
+ senderKeyStatesBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder getSenderKeyStatesBuilder(
+ int index) {
+ return getSenderKeyStatesFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder getSenderKeyStatesOrBuilder(
+ int index) {
+ if (senderKeyStatesBuilder_ == null) {
+ return senderKeyStates_.get(index); } else {
+ return senderKeyStatesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public java.util.List<? extends org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder>
+ getSenderKeyStatesOrBuilderList() {
+ if (senderKeyStatesBuilder_ != null) {
+ return senderKeyStatesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(senderKeyStates_);
+ }
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder addSenderKeyStatesBuilder() {
+ return getSenderKeyStatesFieldBuilder().addBuilder(
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder addSenderKeyStatesBuilder(
+ int index) {
+ return getSenderKeyStatesFieldBuilder().addBuilder(
+ index, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1;</code>
+ */
+ public java.util.List<org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder>
+ getSenderKeyStatesBuilderList() {
+ return getSenderKeyStatesFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder>
+ getSenderKeyStatesFieldBuilder() {
+ if (senderKeyStatesBuilder_ == null) {
+ senderKeyStatesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructure.Builder, org.whispersystems.libaxolotl.state.StorageProtos.SenderKeyStateStructureOrBuilder>(
+ senderKeyStates_,
+ ((bitField0_ & 0x00000001) == 0x00000001),
+ getParentForChildren(),
+ isClean());
+ senderKeyStates_ = null;
+ }
+ return senderKeyStatesBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyRecordStructure)
+ }
+
+ static {
+ defaultInstance = new SenderKeyRecordStructure(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:textsecure.SenderKeyRecordStructure)
+ }
+
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SessionStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SessionStructure_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SessionStructure_Chain_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SessionStructure_Chain_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SessionStructure_Chain_ChainKey_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SessionStructure_Chain_MessageKey_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SessionStructure_PendingKeyExchange_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SessionStructure_PendingPreKey_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SessionStructure_PendingPreKey_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_RecordStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_RecordStructure_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_PreKeyRecordStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_PreKeyRecordStructure_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SignedPreKeyRecordStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SignedPreKeyRecordStructure_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_IdentityKeyPairStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_IdentityKeyPairStructure_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SenderKeyStateStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SenderKeyStateStructure_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_textsecure_SenderKeyRecordStructure_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_textsecure_SenderKeyRecordStructure_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\032LocalStorageProtocol.proto\022\ntextsecure" +
+ "\"\323\010\n\020SessionStructure\022\026\n\016sessionVersion\030" +
+ "\001 \001(\r\022\033\n\023localIdentityPublic\030\002 \001(\014\022\034\n\024re" +
+ "moteIdentityPublic\030\003 \001(\014\022\017\n\007rootKey\030\004 \001(" +
+ "\014\022\027\n\017previousCounter\030\005 \001(\r\0227\n\013senderChai" +
+ "n\030\006 \001(\0132\".textsecure.SessionStructure.Ch" +
+ "ain\022:\n\016receiverChains\030\007 \003(\0132\".textsecure" +
+ ".SessionStructure.Chain\022K\n\022pendingKeyExc" +
+ "hange\030\010 \001(\0132/.textsecure.SessionStructur" +
+ "e.PendingKeyExchange\022A\n\rpendingPreKey\030\t ",
+ "\001(\0132*.textsecure.SessionStructure.Pendin" +
+ "gPreKey\022\034\n\024remoteRegistrationId\030\n \001(\r\022\033\n" +
+ "\023localRegistrationId\030\013 \001(\r\022\024\n\014needsRefre" +
+ "sh\030\014 \001(\010\022\024\n\014aliceBaseKey\030\r \001(\014\032\271\002\n\005Chain" +
+ "\022\030\n\020senderRatchetKey\030\001 \001(\014\022\037\n\027senderRatc" +
+ "hetKeyPrivate\030\002 \001(\014\022=\n\010chainKey\030\003 \001(\0132+." +
+ "textsecure.SessionStructure.Chain.ChainK" +
+ "ey\022B\n\013messageKeys\030\004 \003(\0132-.textsecure.Ses" +
+ "sionStructure.Chain.MessageKey\032&\n\010ChainK" +
+ "ey\022\r\n\005index\030\001 \001(\r\022\013\n\003key\030\002 \001(\014\032J\n\nMessag",
+ "eKey\022\r\n\005index\030\001 \001(\r\022\021\n\tcipherKey\030\002 \001(\014\022\016" +
+ "\n\006macKey\030\003 \001(\014\022\n\n\002iv\030\004 \001(\014\032\315\001\n\022PendingKe" +
+ "yExchange\022\020\n\010sequence\030\001 \001(\r\022\024\n\014localBase" +
+ "Key\030\002 \001(\014\022\033\n\023localBaseKeyPrivate\030\003 \001(\014\022\027" +
+ "\n\017localRatchetKey\030\004 \001(\014\022\036\n\026localRatchetK" +
+ "eyPrivate\030\005 \001(\014\022\030\n\020localIdentityKey\030\007 \001(" +
+ "\014\022\037\n\027localIdentityKeyPrivate\030\010 \001(\014\032J\n\rPe" +
+ "ndingPreKey\022\020\n\010preKeyId\030\001 \001(\r\022\026\n\016signedP" +
+ "reKeyId\030\003 \001(\005\022\017\n\007baseKey\030\002 \001(\014\"\177\n\017Record" +
+ "Structure\0224\n\016currentSession\030\001 \001(\0132\034.text",
+ "secure.SessionStructure\0226\n\020previousSessi" +
+ "ons\030\002 \003(\0132\034.textsecure.SessionStructure\"" +
+ "J\n\025PreKeyRecordStructure\022\n\n\002id\030\001 \001(\r\022\021\n\t" +
+ "publicKey\030\002 \001(\014\022\022\n\nprivateKey\030\003 \001(\014\"v\n\033S" +
+ "ignedPreKeyRecordStructure\022\n\n\002id\030\001 \001(\r\022\021" +
+ "\n\tpublicKey\030\002 \001(\014\022\022\n\nprivateKey\030\003 \001(\014\022\021\n" +
+ "\tsignature\030\004 \001(\014\022\021\n\ttimestamp\030\005 \001(\006\"A\n\030I" +
+ "dentityKeyPairStructure\022\021\n\tpublicKey\030\001 \001" +
+ "(\014\022\022\n\nprivateKey\030\002 \001(\014\"\270\003\n\027SenderKeyStat" +
+ "eStructure\022\023\n\013senderKeyId\030\001 \001(\r\022J\n\016sende",
+ "rChainKey\030\002 \001(\01322.textsecure.SenderKeySt" +
+ "ateStructure.SenderChainKey\022N\n\020senderSig" +
+ "ningKey\030\003 \001(\01324.textsecure.SenderKeyStat" +
+ "eStructure.SenderSigningKey\022O\n\021senderMes" +
+ "sageKeys\030\004 \003(\01324.textsecure.SenderKeySta" +
+ "teStructure.SenderMessageKey\0321\n\016SenderCh" +
+ "ainKey\022\021\n\titeration\030\001 \001(\r\022\014\n\004seed\030\002 \001(\014\032" +
+ "3\n\020SenderMessageKey\022\021\n\titeration\030\001 \001(\r\022\014" +
+ "\n\004seed\030\002 \001(\014\0323\n\020SenderSigningKey\022\016\n\006publ" +
+ "ic\030\001 \001(\014\022\017\n\007private\030\002 \001(\014\"X\n\030SenderKeyRe",
+ "cordStructure\022<\n\017senderKeyStates\030\001 \003(\0132#" +
+ ".textsecure.SenderKeyStateStructureB4\n#o" +
+ "rg.whispersystems.libaxolotl.stateB\rStor" +
+ "ageProtos"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ internal_static_textsecure_SessionStructure_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_textsecure_SessionStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SessionStructure_descriptor,
+ new java.lang.String[] { "SessionVersion", "LocalIdentityPublic", "RemoteIdentityPublic", "RootKey", "PreviousCounter", "SenderChain", "ReceiverChains", "PendingKeyExchange", "PendingPreKey", "RemoteRegistrationId", "LocalRegistrationId", "NeedsRefresh", "AliceBaseKey", });
+ internal_static_textsecure_SessionStructure_Chain_descriptor =
+ internal_static_textsecure_SessionStructure_descriptor.getNestedTypes().get(0);
+ internal_static_textsecure_SessionStructure_Chain_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SessionStructure_Chain_descriptor,
+ new java.lang.String[] { "SenderRatchetKey", "SenderRatchetKeyPrivate", "ChainKey", "MessageKeys", });
+ internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor =
+ internal_static_textsecure_SessionStructure_Chain_descriptor.getNestedTypes().get(0);
+ internal_static_textsecure_SessionStructure_Chain_ChainKey_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor,
+ new java.lang.String[] { "Index", "Key", });
+ internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor =
+ internal_static_textsecure_SessionStructure_Chain_descriptor.getNestedTypes().get(1);
+ internal_static_textsecure_SessionStructure_Chain_MessageKey_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor,
+ new java.lang.String[] { "Index", "CipherKey", "MacKey", "Iv", });
+ internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor =
+ internal_static_textsecure_SessionStructure_descriptor.getNestedTypes().get(1);
+ internal_static_textsecure_SessionStructure_PendingKeyExchange_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor,
+ new java.lang.String[] { "Sequence", "LocalBaseKey", "LocalBaseKeyPrivate", "LocalRatchetKey", "LocalRatchetKeyPrivate", "LocalIdentityKey", "LocalIdentityKeyPrivate", });
+ internal_static_textsecure_SessionStructure_PendingPreKey_descriptor =
+ internal_static_textsecure_SessionStructure_descriptor.getNestedTypes().get(2);
+ internal_static_textsecure_SessionStructure_PendingPreKey_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SessionStructure_PendingPreKey_descriptor,
+ new java.lang.String[] { "PreKeyId", "SignedPreKeyId", "BaseKey", });
+ internal_static_textsecure_RecordStructure_descriptor =
+ getDescriptor().getMessageTypes().get(1);
+ internal_static_textsecure_RecordStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_RecordStructure_descriptor,
+ new java.lang.String[] { "CurrentSession", "PreviousSessions", });
+ internal_static_textsecure_PreKeyRecordStructure_descriptor =
+ getDescriptor().getMessageTypes().get(2);
+ internal_static_textsecure_PreKeyRecordStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_PreKeyRecordStructure_descriptor,
+ new java.lang.String[] { "Id", "PublicKey", "PrivateKey", });
+ internal_static_textsecure_SignedPreKeyRecordStructure_descriptor =
+ getDescriptor().getMessageTypes().get(3);
+ internal_static_textsecure_SignedPreKeyRecordStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SignedPreKeyRecordStructure_descriptor,
+ new java.lang.String[] { "Id", "PublicKey", "PrivateKey", "Signature", "Timestamp", });
+ internal_static_textsecure_IdentityKeyPairStructure_descriptor =
+ getDescriptor().getMessageTypes().get(4);
+ internal_static_textsecure_IdentityKeyPairStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_IdentityKeyPairStructure_descriptor,
+ new java.lang.String[] { "PublicKey", "PrivateKey", });
+ internal_static_textsecure_SenderKeyStateStructure_descriptor =
+ getDescriptor().getMessageTypes().get(5);
+ internal_static_textsecure_SenderKeyStateStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SenderKeyStateStructure_descriptor,
+ new java.lang.String[] { "SenderKeyId", "SenderChainKey", "SenderSigningKey", "SenderMessageKeys", });
+ internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor =
+ internal_static_textsecure_SenderKeyStateStructure_descriptor.getNestedTypes().get(0);
+ internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor,
+ new java.lang.String[] { "Iteration", "Seed", });
+ internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor =
+ internal_static_textsecure_SenderKeyStateStructure_descriptor.getNestedTypes().get(1);
+ internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor,
+ new java.lang.String[] { "Iteration", "Seed", });
+ internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor =
+ internal_static_textsecure_SenderKeyStateStructure_descriptor.getNestedTypes().get(2);
+ internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor,
+ new java.lang.String[] { "Public", "Private", });
+ internal_static_textsecure_SenderKeyRecordStructure_descriptor =
+ getDescriptor().getMessageTypes().get(6);
+ internal_static_textsecure_SenderKeyRecordStructure_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_textsecure_SenderKeyRecordStructure_descriptor,
+ new java.lang.String[] { "SenderKeyStates", });
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}