From 255dc9c26b55145a23cdefe18099acd0f1a1806e Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Thu, 26 Nov 2020 10:07:45 +1100 Subject: [PATCH] ditch :service, :service:android, :service:java --- app/build.gradle | 3 +- .../securesms/ApplicationContext.java | 50 +- .../ApplicationPreferencesActivity.java | 2 +- .../securesms/BindableConversationItem.java | 2 +- .../securesms/ConfirmIdentityDialog.java | 8 +- .../securesms/ConversationListFragment.java | 2 +- .../securesms/CreateProfileActivity.java | 12 +- .../securesms/DeviceActivity.java | 16 +- .../securesms/DeviceListFragment.java | 2 +- .../securesms/ExperienceUpgradeActivity.java | 2 +- .../securesms/GroupCreateActivity.java | 4 +- .../securesms/MessageDetailsActivity.java | 4 +- .../securesms/NewConversationActivity.java | 2 +- .../RecipientPreferenceActivity.java | 2 +- .../securesms/RegistrationActivity.java | 20 +- .../securesms/TransportOption.java | 2 +- .../securesms/TransportOptions.java | 2 +- .../securesms/VerifyIdentityActivity.java | 12 +- .../securesms/WebRtcCallActivity.java | 6 +- .../attachments/PointerAttachment.java | 6 +- .../securesms/audio/AudioSlidePlayer.java | 2 +- .../securesms/backup/FullBackupExporter.kt | 4 +- .../securesms/backup/FullBackupImporter.kt | 4 +- .../securesms/components/DocumentView.java | 2 +- .../securesms/components/InputPanel.java | 2 +- .../securesms/components/QuoteView.java | 2 +- .../securesms/components/SendButton.java | 2 +- .../securesms/components/ThumbnailView.java | 2 +- .../components/TypingStatusSender.java | 2 +- .../components/camera/CameraView.java | 2 +- .../components/emoji/EmojiPages.java | 2 +- .../components/emoji/EmojiProvider.java | 2 +- .../components/emoji/EmojiTextView.java | 2 +- .../identity/UntrustedSendDialog.java | 2 +- .../identity/UnverifiedSendDialog.java | 2 +- .../components/webrtc/WebRtcCallScreen.java | 2 +- .../securesms/contacts/ContactsDatabase.java | 2 +- .../avatars/GroupRecordContactPhoto.java | 2 +- .../contactshare/ContactModelMapper.java | 4 +- .../conversation/ConversationActivity.java | 22 +- .../conversation/ConversationAdapter.java | 2 +- .../conversation/ConversationFragment.java | 6 +- .../conversation/ConversationItem.java | 6 +- .../conversation/ConversationUpdateItem.java | 2 +- .../crypto/AsymmetricMasterCipher.java | 12 +- .../crypto/AsymmetricMasterSecret.java | 4 +- .../crypto/IdentityKeyParcelable.java | 4 +- .../securesms/crypto/IdentityKeyUtil.java | 12 +- .../securesms/crypto/MasterCipher.java | 10 +- .../securesms/crypto/MasterSecretUtil.java | 10 +- .../securesms/crypto/PreKeyUtil.java | 20 +- .../securesms/crypto/PublicKey.java | 6 +- .../securesms/crypto/SessionUtil.java | 6 +- .../crypto/UnidentifiedAccessUtil.java | 14 +- .../storage/SignalProtocolStoreImpl.java | 24 +- .../storage/TextSecureIdentityKeyStore.java | 10 +- .../crypto/storage/TextSecurePreKeyStore.java | 10 +- .../storage/TextSecureSessionStore.java | 8 +- .../securesms/database/Address.java | 2 +- .../securesms/database/ApnDatabase.java | 2 +- .../securesms/database/GroupDatabase.java | 6 +- .../securesms/database/IdentityDatabase.java | 6 +- .../securesms/database/MessagingDatabase.java | 2 +- .../securesms/database/MmsDatabase.java | 2 +- .../database/OneTimePreKeyDatabase.java | 12 +- .../securesms/database/PushDatabase.java | 6 +- .../securesms/database/RecipientDatabase.java | 2 +- .../securesms/database/SessionDatabase.java | 4 +- .../database/SignedPreKeyDatabase.java | 12 +- .../securesms/database/SmsDatabase.java | 2 +- .../securesms/database/ThreadDatabase.java | 4 +- .../documents/IdentityKeyMismatch.java | 4 +- .../database/helpers/ClassicOpenHelper.java | 4 +- .../helpers/PreKeyMigrationHelper.java | 6 +- .../helpers/SQLCipherMigrationHelper.java | 2 +- .../database/helpers/SQLCipherOpenHelper.java | 2 +- .../helpers/SessionStoreMigrationHelper.java | 8 +- .../database/identity/IdentityRecordList.java | 2 +- .../database/loaders/ConversationLoader.java | 2 +- .../database/loaders/DeviceListLoader.java | 2 +- .../database/model/StickerPackRecord.java | 2 +- .../dependencies/AxolotlStorageModule.java | 2 +- .../SignalCommunicationModule.java | 16 +- .../securesms/events/WebRtcViewModel.java | 2 +- .../securesms/groups/GroupManager.java | 4 +- .../groups/GroupMessageProcessor.java | 18 +- .../securesms/jobs/AttachmentDownloadJob.java | 12 +- .../securesms/jobs/AttachmentUploadJob.java | 12 +- .../securesms/jobs/AvatarDownloadJob.java | 10 +- .../securesms/jobs/CleanPreKeysJob.java | 12 +- .../securesms/jobs/CreateSignedPreKeyJob.java | 8 +- .../securesms/jobs/MmsDownloadJob.java | 10 +- .../jobs/MultiDeviceBlockedUpdateJob.java | 10 +- .../MultiDeviceConfigurationUpdateJob.java | 12 +- .../jobs/MultiDeviceContactUpdateJob.java | 28 +- .../jobs/MultiDeviceGroupUpdateJob.java | 16 +- .../jobs/MultiDeviceProfileKeyUpdateJob.java | 20 +- .../jobs/MultiDeviceReadUpdateJob.java | 10 +- .../MultiDeviceStickerPackOperationJob.java | 4 +- .../jobs/MultiDeviceStickerPackSyncJob.java | 4 +- .../jobs/MultiDeviceVerifiedUpdateJob.java | 10 +- .../securesms/jobs/PushDecryptJob.java | 90 +- .../securesms/jobs/PushGroupSendJob.java | 26 +- .../securesms/jobs/PushGroupUpdateJob.java | 20 +- .../securesms/jobs/PushMediaSendJob.java | 28 +- .../jobs/PushNotificationReceiveJob.java | 4 +- .../securesms/jobs/PushReceivedJob.java | 2 +- .../securesms/jobs/PushSendJob.java | 20 +- .../securesms/jobs/PushTextSendJob.java | 24 +- .../securesms/jobs/RefreshAttributesJob.java | 4 +- .../securesms/jobs/RefreshPreKeysJob.java | 6 +- ...RefreshUnidentifiedDeliveryAbilityJob.java | 14 +- .../securesms/jobs/RequestGroupInfoJob.java | 14 +- .../jobs/RetrieveProfileAvatarJob.java | 4 +- .../securesms/jobs/RetrieveProfileJob.java | 26 +- .../securesms/jobs/RotateCertificateJob.java | 4 +- .../securesms/jobs/RotateProfileKeyJob.java | 6 +- .../securesms/jobs/RotateSignedPreKeyJob.java | 8 +- .../jobs/SendDeliveryReceiptJob.java | 10 +- .../securesms/jobs/SendReadReceiptJob.java | 10 +- .../securesms/jobs/SmsReceiveJob.java | 2 +- .../securesms/jobs/StickerDownloadJob.java | 4 +- .../jobs/StickerPackDownloadJob.java | 10 +- .../securesms/jobs/TypingSendJob.java | 12 +- .../securesms/linkpreview/LinkPreview.java | 2 +- .../linkpreview/LinkPreviewRepository.java | 12 +- .../linkpreview/LinkPreviewUtil.java | 2 +- .../linkpreview/LinkPreviewViewModel.java | 2 +- .../lock/RegistrationLockDialog.java | 4 +- .../logging/CustomSignalProtocolLogger.java | 2 +- .../activities/CreateClosedGroupActivity.kt | 2 +- .../activities/CreatePrivateChatActivity.kt | 2 +- .../loki/activities/DisplayNameActivity.kt | 2 +- .../activities/EditClosedGroupActivity.kt | 2 +- .../securesms/loki/activities/HomeActivity.kt | 14 +- .../loki/activities/LandingActivity.kt | 22 +- .../loki/activities/LinkDeviceActivity.kt | 2 +- .../loki/activities/LinkedDevicesActivity.kt | 6 +- .../loki/activities/LinkedDevicesLoader.kt | 4 +- .../securesms/loki/activities/PathActivity.kt | 4 +- .../loki/activities/QRCodeActivity.kt | 2 +- .../loki/activities/RegisterActivity.kt | 6 +- .../loki/activities/RestoreActivity.kt | 6 +- .../securesms/loki/activities/SeedActivity.kt | 4 +- .../loki/activities/SettingsActivity.kt | 6 +- .../loki/api/BackgroundPollWorker.kt | 4 +- .../securesms/loki/api/ClosedGroupPoller.kt | 10 +- .../loki/api/LokiPushNotificationManager.kt | 10 +- .../loki/api/PublicChatInfoUpdateWorker.kt | 2 +- .../securesms/loki/api/PublicChatManager.kt | 4 +- .../securesms/loki/api/PublicChatPoller.kt | 24 +- .../loki/api/PushNotificationService.kt | 8 +- .../loki/database/LokiAPIDatabase.kt | 6 +- .../loki/database/LokiMessageDatabase.kt | 2 +- .../loki/database/LokiPreKeyBundleDatabase.kt | 14 +- .../loki/database/LokiPreKeyRecordDatabase.kt | 4 +- .../loki/database/LokiThreadDatabase.kt | 10 +- .../loki/database/LokiUserDatabase.kt | 2 +- .../loki/database/SharedSenderKeysDatabase.kt | 10 +- .../dialogs/LinkDeviceMasterModeDialog.kt | 12 +- .../loki/dialogs/LinkDeviceSlaveModeDialog.kt | 8 +- .../securesms/loki/dialogs/SeedDialog.kt | 4 +- .../ClosedGroupUpdateMessageSendJob.kt | 12 +- .../loki/protocol/ClosedGroupsProtocol.kt | 26 +- .../loki/protocol/NullMessageSendJob.kt | 6 +- .../protocol/SessionManagementProtocol.kt | 6 +- .../loki/protocol/SessionMetaProtocol.kt | 4 +- .../protocol/SessionRequestMessageSendJob.kt | 6 +- .../protocol/SessionResetImplementation.kt | 6 +- .../shelved/MultiDeviceOpenGroupUpdateJob.kt | 6 +- .../protocol/shelved/MultiDeviceProtocol.kt | 16 +- .../protocol/shelved/SyncMessagesProtocol.kt | 22 +- .../securesms/loki/utilities/Broadcaster.kt | 2 +- .../loki/utilities/ContactUtilities.kt | 2 +- .../loki/utilities/DatabaseUtilities.kt | 2 +- .../securesms/loki/utilities/IP2Country.kt | 2 +- .../loki/utilities/KeyPairUtilities.kt | 6 +- .../loki/utilities/MentionManagerUtilities.kt | 2 +- .../loki/utilities/MnemonicUtilities.kt | 4 +- .../loki/utilities/OpenGroupUtilities.kt | 2 +- .../securesms/loki/views/ConversationView.kt | 2 +- .../views/MentionCandidateSelectionView.kt | 2 +- .../loki/views/MentionCandidateView.kt | 4 +- .../securesms/loki/views/PathStatusView.kt | 2 +- .../loki/views/ProfilePictureView.kt | 2 +- .../longmessage/LongMessageRepository.java | 2 +- .../longmessage/LongMessageViewModel.java | 2 +- .../mediapreview/MediaPreviewViewModel.java | 2 +- .../securesms/mediasend/Media.java | 2 +- .../mediasend/MediaPickerFolderFragment.java | 2 +- .../securesms/mediasend/MediaRepository.java | 2 +- .../mediasend/MediaSendActivity.java | 2 +- .../mediasend/MediaSendFragment.java | 2 +- .../mediasend/MediaSendViewModel.java | 2 +- .../securesms/mms/AttachmentManager.java | 2 +- .../mms/AttachmentStreamLocalUriFetcher.java | 6 +- .../mms/AttachmentStreamUriLoader.java | 2 +- .../securesms/mms/IncomingMediaMessage.java | 6 +- .../securesms/mms/LegacyMmsConnection.java | 2 +- .../securesms/mms/LocationSlide.java | 2 +- .../securesms/mms/MmsConfigManager.java | 2 +- .../mms/OutgoingGroupMediaMessage.java | 2 +- .../securesms/mms/PushMediaConstraints.java | 2 +- .../org/thoughtcrime/securesms/mms/Slide.java | 2 +- .../thoughtcrime/securesms/mms/SlideDeck.java | 2 +- .../securesms/net/CallRequestController.java | 2 +- .../securesms/net/ChunkedDataFetcher.java | 4 +- .../AndroidAutoHeardReceiver.java | 2 +- .../AndroidAutoReplyReceiver.java | 2 +- .../notifications/DefaultMessageNotifier.java | 2 +- .../notifications/MarkReadReceiver.java | 2 +- .../notifications/NotificationChannels.java | 2 +- .../OptimizedMessageNotifier.java | 2 +- .../AdvancedPreferenceFragment.java | 6 +- .../AppProtectionPreferenceFragment.java | 2 +- .../securesms/push/AccountManagerFactory.java | 2 +- .../push/DomainFrontingTrustStore.java | 2 +- .../securesms/push/IasTrustStore.java | 2 +- .../push/MessageSenderEventListener.java | 4 +- .../push/SignalServiceNetworkAccess.java | 10 +- .../push/SignalServiceTrustStore.java | 2 +- .../securesms/recipients/Recipient.java | 4 +- .../recipients/RecipientProvider.java | 2 +- .../service/GenericForegroundService.java | 2 +- .../service/IncomingMessageObserver.java | 6 +- .../service/VerificationCodeParser.java | 2 +- .../securesms/service/WebRtcCallService.java | 28 +- .../securesms/sms/IncomingGroupMessage.java | 2 +- .../securesms/sms/IncomingJoinedMessage.java | 4 +- .../securesms/sms/IncomingTextMessage.java | 6 +- .../securesms/sms/MessageSender.java | 6 +- .../securesms/stickers/StickerManifest.java | 4 +- .../stickers/StickerPackPreviewActivity.java | 4 +- .../StickerPackPreviewRepository.java | 8 +- .../stickers/StickerPackPreviewViewModel.java | 2 +- .../stickers/StickerRemoteUriFetcher.java | 4 +- .../stickers/StickerRemoteUriLoader.java | 2 +- .../securesms/stickers/StickerUrl.java | 4 +- .../thoughtcrime/securesms/util/BackupUtil.kt | 2 +- .../securesms/util/GroupUtil.java | 6 +- .../securesms/util/IdentityUtil.java | 18 +- .../securesms/util/RealtimeSleepTimer.java | 4 +- .../securesms/util/SearchUtil.java | 2 +- .../util/SelectedRecipientsAdapter.java | 2 +- .../securesms/util/TextSecurePreferences.java | 2 +- .../org/thoughtcrime/securesms/util/Util.java | 2 +- .../securesms/util/VerifySpan.java | 2 +- .../dualsim/SubscriptionManagerCompat.java | 4 +- .../securesms/webrtc/locks/ProximityLock.java | 2 +- .../service/VerificationCodeParserTest.java | 2 +- .../util/PhoneNumberFormatterTest.java | 4 +- .../securesms/util/SearchUtilTest.java | 2 +- service/.editorconfig | 10 - service/LICENSE | 674 - service/android/build.gradle | 125 - service/android/src/main/AndroidManifest.xml | 7 - .../api/util/RealtimeSleepTimer.java | 89 - service/build.gradle | 14 - service/java/build.gradle | 132 - .../InvalidMetadataMessageException.java | 13 - .../InvalidMetadataVersionException.java | 8 - .../ProtocolDuplicateMessageException.java | 8 - .../libsignal/metadata/ProtocolException.java | 22 - .../metadata/ProtocolInvalidKeyException.java | 10 - .../ProtocolInvalidKeyIdException.java | 8 - .../ProtocolInvalidMessageException.java | 10 - .../ProtocolInvalidVersionException.java | 10 - .../ProtocolLegacyMessageException.java | 10 - .../metadata/ProtocolNoSessionException.java | 10 - .../ProtocolUntrustedIdentityException.java | 10 - .../metadata/SealedSessionCipher.java | 305 - .../libsignal/metadata/SelfSendException.java | 3 - .../libsignal/metadata/SignalProtos.java | 2959 - .../certificate/CertificateValidator.java | 24 - .../InvalidCertificateException.java | 12 - .../certificate/SenderCertificate.java | 51 - .../certificate/ServerCertificate.java | 66 - .../protocol/UnidentifiedSenderMessage.java | 89 - .../UnidentifiedSenderMessageContent.java | 85 - .../libsignal/DecryptionCallback.java | 10 - .../libsignal/DuplicateMessageException.java | 12 - .../whispersystems/libsignal/IdentityKey.java | 55 - .../libsignal/IdentityKeyPair.java | 55 - .../libsignal/InvalidKeyException.java | 23 - .../libsignal/InvalidKeyIdException.java | 16 - .../libsignal/InvalidMacException.java | 17 - .../libsignal/InvalidMessageException.java | 29 - .../libsignal/InvalidVersionException.java | 12 - .../libsignal/LegacyMessageException.java | 12 - .../libsignal/NoSessionException.java | 16 - .../libsignal/SessionBuilder.java | 212 - .../libsignal/SessionCipher.java | 440 - .../libsignal/SignalProtocolAddress.java | 44 - .../libsignal/StaleKeyExchangeException.java | 9 - .../libsignal/UntrustedIdentityException.java | 25 - .../DeviceConsistencyCodeGenerator.java | 54 - .../devices/DeviceConsistencyCommitment.java | 49 - .../devices/DeviceConsistencySignature.java | 21 - .../whispersystems/libsignal/ecc/Curve.java | 139 - .../libsignal/ecc/DjbECPrivateKey.java | 30 - .../libsignal/ecc/DjbECPublicKey.java | 55 - .../libsignal/ecc/ECKeyPair.java | 25 - .../libsignal/ecc/ECPrivateKey.java | 12 - .../libsignal/ecc/ECPublicKey.java | 16 - .../fingerprint/DisplayableFingerprint.java | 43 - .../libsignal/fingerprint/Fingerprint.java | 33 - .../fingerprint/FingerprintGenerator.java | 18 - ...ingerprintIdentifierMismatchException.java | 39 - .../FingerprintParsingException.java | 14 - .../fingerprint/FingerprintProtos.java | 1277 - .../FingerprintVersionMismatchException.java | 26 - .../NumericFingerprintGenerator.java | 127 - .../fingerprint/ScannableFingerprint.java | 73 - .../libsignal/groups/GroupCipher.java | 228 - .../libsignal/groups/GroupSessionBuilder.java | 90 - .../libsignal/groups/SenderKeyName.java | 52 - .../groups/ratchet/SenderChainKey.java | 66 - .../groups/ratchet/SenderMessageKey.java | 50 - .../groups/state/SenderKeyRecord.java | 85 - .../groups/state/SenderKeyState.java | 162 - .../groups/state/SenderKeyStore.java | 37 - .../libsignal/kdf/DerivedMessageSecrets.java | 50 - .../libsignal/kdf/DerivedRootSecrets.java | 31 - .../whispersystems/libsignal/kdf/HKDF.java | 86 - .../whispersystems/libsignal/kdf/HKDFv2.java | 13 - .../whispersystems/libsignal/kdf/HKDFv3.java | 13 - .../whispersystems/libsignal/logging/Log.java | 91 - .../logging/SignalProtocolLogger.java | 18 - .../logging/SignalProtocolLoggerProvider.java | 19 - .../loki/ClosedGroupCiphertextMessage.kt | 39 - .../libsignal/loki/DiffieHellman.kt | 45 - .../libsignal/loki/FallbackMessage.kt | 14 - .../libsignal/loki/FallbackSessionCipher.kt | 51 - .../libsignal/loki/LokiSessionCipher.kt | 78 - .../libsignal/loki/SessionResetProtocol.kt | 11 - .../libsignal/loki/SessionResetStatus.kt | 7 - .../libsignal/protocol/CiphertextMessage.java | 26 - .../protocol/DeviceConsistencyMessage.java | 68 - .../protocol/PreKeySignalMessage.java | 143 - .../SenderKeyDistributionMessage.java | 103 - .../libsignal/protocol/SenderKeyMessage.java | 128 - .../libsignal/protocol/SignalMessage.java | 162 - .../libsignal/protocol/SignalProtos.java | 4698 -- .../AliceSignalProtocolParameters.java | 114 - .../ratchet/BobSignalProtocolParameters.java | 114 - .../libsignal/ratchet/ChainKey.java | 66 - .../libsignal/ratchet/MessageKeys.java | 40 - .../libsignal/ratchet/RatchetingSession.java | 160 - .../libsignal/ratchet/RootKey.java | 43 - .../SymmetricSignalProtocolParameters.java | 113 - .../libsignal/state/IdentityKeyStore.java | 82 - .../libsignal/state/PreKeyBundle.java | 101 - .../libsignal/state/PreKeyRecord.java | 56 - .../libsignal/state/PreKeyStore.java | 47 - .../libsignal/state/SessionRecord.java | 125 - .../libsignal/state/SessionState.java | 503 - .../libsignal/state/SessionStore.java | 71 - .../libsignal/state/SignalProtocolStore.java | 11 - .../libsignal/state/SignedPreKeyRecord.java | 66 - .../libsignal/state/SignedPreKeyStore.java | 52 - .../libsignal/state/StorageProtos.java | 11779 ---- .../state/impl/InMemoryIdentityKeyStore.java | 60 - .../state/impl/InMemoryPreKeyStore.java | 47 - .../state/impl/InMemorySessionStore.java | 75 - .../impl/InMemorySignalProtocolStore.java | 130 - .../state/impl/InMemorySignedPreKeyStore.java | 64 - .../libsignal/util/ByteArrayComparator.java | 18 - .../libsignal/util/ByteUtil.java | 246 - .../whispersystems/libsignal/util/Hex.java | 67 - .../libsignal/util/IdentityKeyComparator.java | 13 - .../libsignal/util/KeyHelper.java | 137 - .../whispersystems/libsignal/util/Medium.java | 10 - .../whispersystems/libsignal/util/Pair.java | 40 - .../libsignal/util/guava/Absent.java | 87 - .../libsignal/util/guava/Function.java | 61 - .../libsignal/util/guava/Optional.java | 232 - .../libsignal/util/guava/Preconditions.java | 447 - .../libsignal/util/guava/Present.java | 88 - .../libsignal/util/guava/Supplier.java | 36 - .../api/SignalServiceAccountManager.java | 447 - .../api/SignalServiceMessagePipe.java | 275 - .../api/SignalServiceMessageReceiver.java | 256 - .../api/SignalServiceMessageSender.java | 1492 - .../crypto/AttachmentCipherInputStream.java | 285 - .../crypto/AttachmentCipherOutputStream.java | 106 - .../api/crypto/DigestingOutputStream.java | 55 - .../crypto/InvalidCiphertextException.java | 11 - .../api/crypto/ProfileCipher.java | 121 - .../api/crypto/ProfileCipherInputStream.java | 89 - .../api/crypto/ProfileCipherOutputStream.java | 84 - .../api/crypto/SignalServiceCipher.java | 850 - .../api/crypto/UnidentifiedAccess.java | 64 - .../api/crypto/UnidentifiedAccessPair.java | 23 - .../crypto/UntrustedIdentityException.java | 34 - .../api/messages/SendMessageResult.java | 100 - .../api/messages/SignalServiceAttachment.java | 121 - .../SignalServiceAttachmentPointer.java | 104 - .../SignalServiceAttachmentStream.java | 90 - .../api/messages/SignalServiceContent.java | 192 - .../messages/SignalServiceDataMessage.java | 524 - .../api/messages/SignalServiceEnvelope.java | 348 - .../api/messages/SignalServiceGroup.java | 167 - .../messages/SignalServiceNullMessage.java | 8 - .../messages/SignalServiceReceiptMessage.java | 45 - .../SignalServiceStickerManifest.java | 56 - .../messages/SignalServiceTypingMessage.java | 43 - .../api/messages/calls/AnswerMessage.java | 21 - .../api/messages/calls/BusyMessage.java | 15 - .../api/messages/calls/HangupMessage.java | 15 - .../api/messages/calls/IceUpdateMessage.java | 33 - .../api/messages/calls/OfferMessage.java | 21 - .../calls/SignalServiceCallMessage.java | 111 - .../api/messages/calls/TurnServerInfo.java | 30 - .../multidevice/BlockedListMessage.java | 22 - .../multidevice/ChunkedInputStream.java | 128 - .../multidevice/ChunkedOutputStream.java | 41 - .../multidevice/ConfigurationMessage.java | 39 - .../messages/multidevice/ContactsMessage.java | 23 - .../messages/multidevice/DeviceContact.java | 72 - .../DeviceContactsInputStream.java | 121 - .../DeviceContactsOutputStream.java | 87 - .../api/messages/multidevice/DeviceGroup.java | 76 - .../multidevice/DeviceGroupsInputStream.java | 84 - .../multidevice/DeviceGroupsOutputStream.java | 74 - .../api/messages/multidevice/DeviceInfo.java | 42 - .../api/messages/multidevice/ReadMessage.java | 30 - .../messages/multidevice/RequestMessage.java | 34 - .../multidevice/SentTranscriptMessage.java | 67 - .../multidevice/SignalServiceSyncMessage.java | 249 - .../StickerPackOperationMessage.java | 32 - .../messages/multidevice/VerifiedMessage.java | 42 - .../api/messages/shared/SharedContact.java | 513 - .../api/profiles/SignalServiceProfile.java | 44 - .../api/push/ContactTokenDetails.java | 69 - .../api/push/SignalServiceAddress.java | 73 - .../api/push/SignedPreKeyEntity.java | 58 - .../signalservice/api/push/TrustStore.java | 19 - .../AuthorizationFailedException.java | 13 - .../exceptions/CaptchaRequiredException.java | 4 - .../exceptions/EncapsulatedExceptions.java | 47 - .../ExpectationFailedException.java | 9 - .../exceptions/NetworkFailureException.java | 21 - .../NonSuccessfulResponseCodeException.java | 20 - .../push/exceptions/NotFoundException.java | 13 - .../push/exceptions/PushNetworkException.java | 21 - .../push/exceptions/RateLimitException.java | 13 - ...teAttestationResponseExpiredException.java | 13 - .../exceptions/UnregisteredUserException.java | 23 - .../api/util/CredentialsProvider.java | 13 - .../api/util/InvalidNumberException.java | 13 - .../api/util/PhoneNumberFormatter.java | 158 - .../signalservice/api/util/SleepTimer.java | 5 - .../signalservice/api/util/StreamDetails.java | 29 - .../api/util/Tls12SocketFactory.java | 69 - .../api/util/UptimeSleepTimer.java | 16 - .../api/websocket/ConnectivityListener.java | 9 - .../internal/configuration/SignalCdnUrl.java | 16 - .../SignalContactDiscoveryUrl.java | 17 - .../SignalServiceConfiguration.java | 27 - .../configuration/SignalServiceUrl.java | 17 - .../internal/configuration/SignalUrl.java | 53 - .../crypto/ContactDiscoveryCipher.java | 172 - .../internal/contacts/crypto/Quote.java | 136 - .../contacts/crypto/RemoteAttestation.java | 20 - .../crypto/RemoteAttestationKeys.java | 35 - .../contacts/crypto/SignatureBodyEntity.java | 34 - .../contacts/crypto/SigningCertificate.java | 79 - .../crypto/UnauthenticatedQuoteException.java | 12 - .../UnauthenticatedResponseException.java | 11 - .../contacts/entities/DiscoveryRequest.java | 77 - .../contacts/entities/DiscoveryResponse.java | 57 - .../entities/RemoteAttestationRequest.java | 36 - .../entities/RemoteAttestationResponse.java | 103 - .../internal/crypto/PaddingInputStream.java | 59 - .../internal/crypto/ProvisioningCipher.java | 91 - .../internal/push/AccountAttributes.java | 81 - .../push/AttachmentUploadAttributes.java | 78 - .../push/ContactDiscoveryCredentials.java | 28 - .../push/ContactDiscoveryFailureReason.java | 13 - .../push/ContactTokenDetailsList.java | 25 - .../internal/push/ContactTokenList.java | 24 - .../internal/push/DeviceCode.java | 13 - .../internal/push/DeviceInfoList.java | 19 - .../internal/push/DeviceLimit.java | 20 - .../push/DeviceLimitExceededException.java | 20 - .../internal/push/LockedException.java | 23 - .../internal/push/MismatchedDevices.java | 27 - .../internal/push/OutgoingPushMessage.java | 33 - .../push/OutgoingPushMessageList.java | 53 - .../internal/push/PreKeyEntity.java | 68 - .../internal/push/PreKeyResponse.java | 46 - .../internal/push/PreKeyResponseItem.java | 43 - .../internal/push/PreKeyState.java | 33 - .../internal/push/PreKeyStatus.java | 21 - .../internal/push/ProfileAvatarData.java | 37 - .../push/ProfileAvatarUploadAttributes.java | 64 - .../internal/push/ProvisioningMessage.java | 14 - .../internal/push/ProvisioningProtos.java | 1698 - .../internal/push/PushAttachmentData.java | 51 - .../internal/push/PushServiceSocket.java | 1162 - .../internal/push/PushTransportDetails.java | 68 - .../internal/push/SendMessageResponse.java | 16 - .../internal/push/SenderCertificate.java | 45 - .../push/SignalServiceEnvelopeEntity.java | 71 - .../push/SignalServiceEnvelopeEntityList.java | 14 - .../internal/push/SignalServiceProtos.java | 46735 ---------------- .../internal/push/StaleDevices.java | 21 - .../MismatchedDevicesException.java | 23 - .../exceptions/StaleDevicesException.java | 23 - .../AttachmentCipherOutputStreamFactory.java | 23 - .../push/http/DigestingRequestBody.java | 71 - .../push/http/OutputStreamFactory.java | 13 - .../ProfileCipherOutputStreamFactory.java | 23 - .../internal/sticker/StickerProtos.java | 1798 - .../signalservice/internal/util/Base64.java | 2096 - .../util/BlacklistingTrustManager.java | 110 - .../util/ContentLengthInputStream.java | 41 - .../signalservice/internal/util/Hex.java | 128 - .../signalservice/internal/util/JsonUtil.java | 78 - .../util/StaticCredentialsProvider.java | 37 - .../signalservice/internal/util/Util.java | 154 - .../util/concurrent/ListenableFuture.java | 13 - .../util/concurrent/SettableFuture.java | 115 - .../websocket/WebSocketConnection.java | 340 - .../websocket/WebSocketEventListener.java | 9 - .../internal/websocket/WebSocketProtos.java | 2842 - .../signalservice/loki/api/DotNetAPI.kt | 253 - .../signalservice/loki/api/LokiMessage.kt | 85 - .../signalservice/loki/api/MessageWrapper.kt | 84 - .../signalservice/loki/api/Poller.kt | 95 - .../loki/api/PushNotificationAPI.kt | 43 - .../loki/api/SignalMessageInfo.kt | 14 - .../signalservice/loki/api/Snode.kt | 34 - .../signalservice/loki/api/SnodeAPI.kt | 282 - .../signalservice/loki/api/SwarmAPI.kt | 165 - .../loki/api/crypto/ProofOfWork.kt | 64 - .../loki/api/fileserver/FileServerAPI.kt | 262 - .../loki/api/onionrequests/OnionRequestAPI.kt | 459 - .../onionrequests/OnionRequestEncryption.kt | 94 - .../loki/api/opengroups/PublicChat.kt | 37 - .../loki/api/opengroups/PublicChatAPI.kt | 378 - .../loki/api/opengroups/PublicChatInfo.kt | 7 - .../loki/api/opengroups/PublicChatMessage.kt | 178 - .../loki/api/shelved/p2p/LokiP2PAPI.kt | 70 - .../api/shelved/p2p/LokiP2PAPIDelegate.kt | 6 - .../loki/api/utilities/DecryptionUtilities.kt | 19 - .../loki/api/utilities/EncryptionUtilities.kt | 45 - .../signalservice/loki/api/utilities/HTTP.kt | 110 - .../loki/api/utilities/OKHTTPUtilities.kt | 49 - .../loki/crypto/LokiServiceCipher.kt | 30 - .../loki/crypto/MnemonicCodec.kt | 139 - .../loki/database/LokiAPIDatabaseProtocol.kt | 41 - .../database/LokiMessageDatabaseProtocol.kt | 7 - .../database/LokiOpenGroupDatabaseProtocol.kt | 7 - .../LokiPreKeyBundleDatabaseProtocol.kt | 9 - .../LokiPreKeyRecordDatabaseProtocol.kt | 8 - .../database/LokiThreadDatabaseProtocol.kt | 11 - .../loki/database/LokiUserDatabaseProtocol.kt | 8 - .../closedgroups/ClosedGroupRatchet.kt | 22 - .../closedgroups/ClosedGroupSenderKey.kt | 57 - .../closedgroups/ClosedGroupUtilities.kt | 78 - .../SharedSenderKeysDatabaseProtocol.kt | 25 - .../SharedSenderKeysImplementation.kt | 217 - .../SharedSenderKeysImplementationDelegate.kt | 6 - .../loki/protocol/mentions/Mention.kt | 3 - .../loki/protocol/mentions/MentionsManager.kt | 57 - .../loki/protocol/meta/SessionMetaProtocol.kt | 25 - .../loki/protocol/meta/TTLUtilities.kt | 38 - .../sessionmanagement/PreKeyBundleMessage.kt | 23 - .../SessionManagementProtocol.kt | 67 - .../SessionManagementProtocolDelegate.kt | 6 - .../shelved/multidevice/DeviceLink.kt | 72 - .../multidevice/DeviceLinkingSession.kt | 37 - .../DeviceLinkingSessionListener.kt | 7 - .../multidevice/MultiDeviceProtocol.kt | 46 - .../syncmessages/SyncMessagesProtocol.kt | 36 - .../loki/utilities/Broadcaster.kt | 7 - .../loki/utilities/DownloadUtilities.kt | 85 - .../loki/utilities/HexEncoding.kt | 20 - .../utilities/PlaintextOutputStreamFactory.kt | 18 - .../loki/utilities/PrettifiedDescription.kt | 27 - .../loki/utilities/PromiseUtilities.kt | 51 - .../signalservice/loki/utilities/Random.kt | 18 - .../loki/utilities/Reflection.kt | 10 - .../signalservice/loki/utilities/Retrying.kt | 30 - .../signalservice/loki/utilities/Trimming.kt | 12 - .../loki/utilities/Validation.kt | 18 - .../api/crypto/AttachmentCipherTest.java | 244 - .../api/crypto/ProfileCipherTest.java | 60 - .../api/crypto/SigningCertificateTest.java | 84 - .../api/crypto/UnidentifiedAccessTest.java | 26 - .../push/PushTransportDetailsTest.java | 35 - .../util/PhoneNumberFormatterTest.java | 83 - service/java/src/test/resources/ias.cert | Bin 1359 -> 0 bytes service/java/src/test/resources/ias.jks | Bin 1419 -> 0 bytes service/java/src/test/resources/ias.store | Bin 1441 -> 0 bytes service/protobuf/FingerprintProtocol.proto | 17 - service/protobuf/LocalStorageProtocol.proto | 114 - service/protobuf/Makefile | 5 - service/protobuf/Provisioning.proto | 27 - service/protobuf/README.md | 29 - service/protobuf/SignalService.proto | 448 - service/protobuf/StickerResources.proto | 25 - service/protobuf/UnidentifiedDelivery.proto | 40 - service/protobuf/WebSocketResources.proto | 40 - service/protobuf/WhisperTextProtocol.proto | 57 - settings.gradle | 4 - 607 files changed, 841 insertions(+), 104693 deletions(-) delete mode 100644 service/.editorconfig delete mode 100644 service/LICENSE delete mode 100644 service/android/build.gradle delete mode 100644 service/android/src/main/AndroidManifest.xml delete mode 100644 service/android/src/main/java/org/whispersystems/signalservice/api/util/RealtimeSleepTimer.java delete mode 100644 service/build.gradle delete mode 100644 service/java/build.gradle delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataMessageException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataVersionException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolDuplicateMessageException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyIdException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidMessageException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidVersionException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolLegacyMessageException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolNoSessionException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/ProtocolUntrustedIdentityException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/SealedSessionCipher.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/SelfSendException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/SignalProtos.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/certificate/CertificateValidator.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/certificate/InvalidCertificateException.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/certificate/SenderCertificate.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/certificate/ServerCertificate.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessage.java delete mode 100644 service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessageContent.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/DecryptionCallback.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/DuplicateMessageException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/IdentityKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/IdentityKeyPair.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyIdException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/InvalidMacException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/InvalidMessageException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/InvalidVersionException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/LegacyMessageException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/NoSessionException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/SessionBuilder.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/SessionCipher.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/SignalProtocolAddress.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/StaleKeyExchangeException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/UntrustedIdentityException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCodeGenerator.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCommitment.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencySignature.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ecc/Curve.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPrivateKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPublicKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ecc/ECKeyPair.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPrivateKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPublicKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/DisplayableFingerprint.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/Fingerprint.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintGenerator.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintIdentifierMismatchException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintParsingException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintVersionMismatchException.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/NumericFingerprintGenerator.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/fingerprint/ScannableFingerprint.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/GroupCipher.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/GroupSessionBuilder.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/SenderKeyName.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderChainKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderMessageKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyRecord.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyState.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedMessageSecrets.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedRootSecrets.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/kdf/HKDF.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/kdf/HKDFv2.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/kdf/HKDFv3.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/logging/Log.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/logging/SignalProtocolLogger.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/logging/SignalProtocolLoggerProvider.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/ClosedGroupCiphertextMessage.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/DiffieHellman.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/FallbackMessage.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/FallbackSessionCipher.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/LokiSessionCipher.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/SessionResetProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/loki/SessionResetStatus.kt delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/CiphertextMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/DeviceConsistencyMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/PreKeySignalMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyDistributionMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/AliceSignalProtocolParameters.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/BobSignalProtocolParameters.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/ChainKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/MessageKeys.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/RatchetingSession.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/RootKey.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/ratchet/SymmetricSignalProtocolParameters.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/IdentityKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyBundle.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyRecord.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/SessionRecord.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/SessionState.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/SessionStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/SignalProtocolStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyRecord.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/StorageProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryIdentityKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryPreKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySessionStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignalProtocolStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignedPreKeyStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/ByteArrayComparator.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/ByteUtil.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/Hex.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/IdentityKeyComparator.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/KeyHelper.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/Medium.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/Pair.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/guava/Absent.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/guava/Function.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/guava/Optional.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/guava/Preconditions.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/guava/Present.java delete mode 100644 service/java/src/main/java/org/whispersystems/libsignal/util/guava/Supplier.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageReceiver.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherOutputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/DigestingOutputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/InvalidCiphertextException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipher.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherOutputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/SignalServiceCipher.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccess.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessPair.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UntrustedIdentityException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SendMessageResult.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachment.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentPointer.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceEnvelope.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroup.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceNullMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceReceiptMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceStickerManifest.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceTypingMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/AnswerMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/BusyMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/HangupMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/IceUpdateMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/OfferMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/SignalServiceCallMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/TurnServerInfo.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/BlockedListMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedOutputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ConfigurationMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ContactsMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContact.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsOutputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroup.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsOutputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceInfo.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ReadMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/RequestMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SentTranscriptMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SignalServiceSyncMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/StickerPackOperationMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/VerifiedMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/messages/shared/SharedContact.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/ContactTokenDetails.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/SignalServiceAddress.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/SignedPreKeyEntity.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/TrustStore.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/AuthorizationFailedException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/CaptchaRequiredException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/EncapsulatedExceptions.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/ExpectationFailedException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NetworkFailureException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NonSuccessfulResponseCodeException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NotFoundException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/PushNetworkException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RateLimitException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RemoteAttestationResponseExpiredException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/UnregisteredUserException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/CredentialsProvider.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/InvalidNumberException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/PhoneNumberFormatter.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/SleepTimer.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/StreamDetails.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/Tls12SocketFactory.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/util/UptimeSleepTimer.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/api/websocket/ConnectivityListener.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalCdnUrl.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalContactDiscoveryUrl.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceConfiguration.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceUrl.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalUrl.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/ContactDiscoveryCipher.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/Quote.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestation.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SignatureBodyEntity.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SigningCertificate.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedQuoteException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedResponseException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryRequest.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryResponse.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationRequest.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationResponse.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/PaddingInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/ProvisioningCipher.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/AccountAttributes.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/AttachmentUploadAttributes.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryCredentials.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryFailureReason.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenDetailsList.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenList.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceCode.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceInfoList.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimit.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimitExceededException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/LockedException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/MismatchedDevices.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessageList.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyEntity.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponse.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponseItem.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyState.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyStatus.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarData.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarUploadAttributes.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningMessage.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushAttachmentData.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushTransportDetails.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/SendMessageResponse.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/SenderCertificate.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntity.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntityList.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/StaleDevices.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/MismatchedDevicesException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/StaleDevicesException.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/AttachmentCipherOutputStreamFactory.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/OutputStreamFactory.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/ProfileCipherOutputStreamFactory.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/sticker/StickerProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/Base64.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/BlacklistingTrustManager.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/ContentLengthInputStream.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/Hex.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/JsonUtil.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/StaticCredentialsProvider.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/Util.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/ListenableFuture.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/SettableFuture.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketConnection.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketEventListener.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketProtos.java delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/DotNetAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/LokiMessage.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/MessageWrapper.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/Poller.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/PushNotificationAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/SignalMessageInfo.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/Snode.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/SnodeAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/SwarmAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/crypto/ProofOfWork.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/fileserver/FileServerAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestEncryption.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChat.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatInfo.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatMessage.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPI.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPIDelegate.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/DecryptionUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/EncryptionUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/HTTP.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/OKHTTPUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/LokiServiceCipher.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/MnemonicCodec.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiAPIDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiMessageDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiOpenGroupDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyBundleDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyRecordDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiThreadDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiUserDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupRatchet.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupSenderKey.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysDatabaseProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementation.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementationDelegate.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/Mention.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/MentionsManager.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/SessionMetaProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/TTLUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/PreKeyBundleMessage.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocolDelegate.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLink.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSession.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSessionListener.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/MultiDeviceProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/syncmessages/SyncMessagesProtocol.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Broadcaster.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/DownloadUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/HexEncoding.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PlaintextOutputStreamFactory.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PrettifiedDescription.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PromiseUtilities.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Random.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Reflection.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Retrying.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Trimming.kt delete mode 100644 service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Validation.kt delete mode 100644 service/java/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java delete mode 100644 service/java/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java delete mode 100644 service/java/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java delete mode 100644 service/java/src/test/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessTest.java delete mode 100644 service/java/src/test/java/org/whispersystems/signalservice/push/PushTransportDetailsTest.java delete mode 100644 service/java/src/test/java/org/whispersystems/signalservice/util/PhoneNumberFormatterTest.java delete mode 100644 service/java/src/test/resources/ias.cert delete mode 100644 service/java/src/test/resources/ias.jks delete mode 100644 service/java/src/test/resources/ias.store delete mode 100644 service/protobuf/FingerprintProtocol.proto delete mode 100644 service/protobuf/LocalStorageProtocol.proto delete mode 100644 service/protobuf/Makefile delete mode 100644 service/protobuf/Provisioning.proto delete mode 100644 service/protobuf/README.md delete mode 100644 service/protobuf/SignalService.proto delete mode 100644 service/protobuf/StickerResources.proto delete mode 100644 service/protobuf/UnidentifiedDelivery.proto delete mode 100644 service/protobuf/WebSocketResources.proto delete mode 100644 service/protobuf/WhisperTextProtocol.proto diff --git a/app/build.gradle b/app/build.gradle index d1872a1be..2b2995176 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,7 +93,8 @@ dependencies { } // Loki // Local: - implementation project(":service:android") + implementation project(":libsignal") + implementation project(":libsession") // Remote: implementation "org.whispersystems:curve25519-java:$curve25519Version" implementation "com.goterl.lazycode:lazysodium-android:4.2.0@aar" diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 884d5c420..656f52aa3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -98,31 +98,31 @@ import org.webrtc.PeerConnectionFactory; import org.webrtc.PeerConnectionFactory.InitializationOptions; import org.webrtc.voiceengine.WebRtcAudioManager; import org.webrtc.voiceengine.WebRtcAudioUtils; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.logging.SignalProtocolLoggerProvider; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.util.StreamDetails; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; -import org.whispersystems.signalservice.loki.api.Poller; -import org.whispersystems.signalservice.loki.api.PushNotificationAPI; -import org.whispersystems.signalservice.loki.api.SnodeAPI; -import org.whispersystems.signalservice.loki.api.SwarmAPI; -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI; -import org.whispersystems.signalservice.loki.api.shelved.p2p.LokiP2PAPI; -import org.whispersystems.signalservice.loki.api.shelved.p2p.LokiP2PAPIDelegate; -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol; -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysImplementation; -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysImplementationDelegate; -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager; -import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.SessionManagementProtocol; -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.SessionManagementProtocolDelegate; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; -import org.whispersystems.signalservice.loki.protocol.shelved.syncmessages.SyncMessagesProtocol; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.logging.SignalProtocolLoggerProvider; +import org.session.libsignal.service.api.messages.SignalServiceEnvelope; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.util.StreamDetails; +import org.session.libsignal.service.internal.push.SignalServiceProtos; +import org.session.libsignal.service.loki.api.Poller; +import org.session.libsignal.service.loki.api.PushNotificationAPI; +import org.session.libsignal.service.loki.api.SnodeAPI; +import org.session.libsignal.service.loki.api.SwarmAPI; +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI; +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI; +import org.session.libsignal.service.loki.api.shelved.p2p.LokiP2PAPI; +import org.session.libsignal.service.loki.api.shelved.p2p.LokiP2PAPIDelegate; +import org.session.libsignal.service.loki.database.LokiAPIDatabaseProtocol; +import org.session.libsignal.service.loki.protocol.closedgroups.SharedSenderKeysImplementation; +import org.session.libsignal.service.loki.protocol.closedgroups.SharedSenderKeysImplementationDelegate; +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager; +import org.session.libsignal.service.loki.protocol.meta.SessionMetaProtocol; +import org.session.libsignal.service.loki.protocol.meta.TTLUtilities; +import org.session.libsignal.service.loki.protocol.sessionmanagement.SessionManagementProtocol; +import org.session.libsignal.service.loki.protocol.sessionmanagement.SessionManagementProtocolDelegate; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.service.loki.protocol.shelved.syncmessages.SyncMessagesProtocol; import java.io.File; import java.io.FileInputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java index 6ff9b5a69..7ba46d97f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java @@ -52,7 +52,7 @@ import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.loki.utilities.HexEncodingKt; +import org.session.libsignal.service.loki.utilities.HexEncodingKt; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java index ae11885fd..87d152746 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.stickers.StickerLocator; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.List; import java.util.Locale; diff --git a/app/src/main/java/org/thoughtcrime/securesms/ConfirmIdentityDialog.java b/app/src/main/java/org/thoughtcrime/securesms/ConfirmIdentityDialog.java index 206cd8aa5..c17fa7b78 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ConfirmIdentityDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ConfirmIdentityDialog.java @@ -25,15 +25,15 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.sms.MessageSender; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.VerifySpan; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.service.api.messages.SignalServiceEnvelope; +import org.session.libsignal.service.internal.push.SignalServiceProtos; import java.io.IOException; import network.loki.messenger.R; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; public class ConfirmIdentityDialog extends AlertDialog { diff --git a/app/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java index 8155c7e34..92b1d9bce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java @@ -81,7 +81,7 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.task.SnackbarAsyncTask; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.HashSet; diff --git a/app/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java b/app/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java index 9be993d21..45b91fd04 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java @@ -52,12 +52,12 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.crypto.ProfileCipher; -import org.whispersystems.signalservice.api.util.StreamDetails; -import org.whispersystems.signalservice.loki.api.LokiDotNetAPI; -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.crypto.ProfileCipher; +import org.session.libsignal.service.api.util.StreamDetails; +import org.session.libsignal.service.loki.api.LokiDotNetAPI; +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI; +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI; import java.io.ByteArrayInputStream; import java.io.File; diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java index c3c750c58..4f20abc75 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java @@ -28,14 +28,14 @@ import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.NotFoundException; -import org.whispersystems.signalservice.internal.push.DeviceLimitExceededException; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.NotFoundException; +import org.session.libsignal.service.internal.push.DeviceLimitExceededException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java index 54b17038f..a4b75e4f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.devicelist.Device; import org.thoughtcrime.securesms.loki.dialogs.DeviceEditingOptionsBottomSheet; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ViewUtil; -import org.whispersystems.libsignal.util.guava.Function; +import org.session.libsignal.libsignal.util.guava.Function; import java.util.List; import java.util.Locale; diff --git a/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java index 3001cb23a..59e42ec2f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java @@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java b/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java index 2ed0d9b6e..ef044140d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java @@ -68,8 +68,8 @@ import org.thoughtcrime.securesms.util.SelectedRecipientsAdapter.OnRecipientDele import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.util.InvalidNumberException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.util.InvalidNumberException; import java.io.File; import java.util.Collection; diff --git a/app/src/main/java/org/thoughtcrime/securesms/MessageDetailsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/MessageDetailsActivity.java index 4f7db5f7e..605794f0f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MessageDetailsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/MessageDetailsActivity.java @@ -58,8 +58,8 @@ import org.thoughtcrime.securesms.util.DateUtils; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.ExpirationUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.loki.api.opengroups.PublicChat; import java.lang.ref.WeakReference; import java.sql.Date; diff --git a/app/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java index 30871c5fc..c03405091 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation; +import org.session.libsignal.service.loki.utilities.PublicKeyValidation; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java index c446f8da7..e7f09d070 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java @@ -80,7 +80,7 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.concurrent.ExecutionException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java index 18f6d7eb4..fd3e6a3cc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java @@ -65,16 +65,16 @@ import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.AssertedSuccessListener; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.util.KeyHelper; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.CaptchaRequiredException; -import org.whispersystems.signalservice.api.push.exceptions.RateLimitException; -import org.whispersystems.signalservice.api.util.PhoneNumberFormatter; -import org.whispersystems.signalservice.internal.push.LockedException; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.state.PreKeyRecord; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.util.KeyHelper; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.CaptchaRequiredException; +import org.session.libsignal.service.api.push.exceptions.RateLimitException; +import org.session.libsignal.service.api.util.PhoneNumberFormatter; +import org.session.libsignal.service.internal.push.LockedException; import java.io.IOException; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/TransportOption.java b/app/src/main/java/org/thoughtcrime/securesms/TransportOption.java index 21117eff0..81659a40b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/TransportOption.java +++ b/app/src/main/java/org/thoughtcrime/securesms/TransportOption.java @@ -7,7 +7,7 @@ import android.text.TextUtils; import org.thoughtcrime.securesms.util.CharacterCalculator; import org.thoughtcrime.securesms.util.CharacterCalculator.CharacterState; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/TransportOptions.java b/app/src/main/java/org/thoughtcrime/securesms/TransportOptions.java index de65069e8..ddeae4504 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/TransportOptions.java +++ b/app/src/main/java/org/thoughtcrime/securesms/TransportOptions.java @@ -14,7 +14,7 @@ import org.thoughtcrime.securesms.util.CharacterCalculator; import org.thoughtcrime.securesms.util.PushCharacterCalculator; import org.thoughtcrime.securesms.util.dualsim.SubscriptionInfoCompat; import org.thoughtcrime.securesms.util.dualsim.SubscriptionManagerCompat; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collection; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java b/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java index 981a76ca5..f4a739347 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java @@ -81,18 +81,18 @@ import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.fingerprint.Fingerprint; -import org.whispersystems.libsignal.fingerprint.FingerprintParsingException; -import org.whispersystems.libsignal.fingerprint.FingerprintVersionMismatchException; -import org.whispersystems.libsignal.fingerprint.NumericFingerprintGenerator; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.fingerprint.Fingerprint; +import org.session.libsignal.libsignal.fingerprint.FingerprintParsingException; +import org.session.libsignal.libsignal.fingerprint.FingerprintVersionMismatchException; +import org.session.libsignal.libsignal.fingerprint.NumericFingerprintGenerator; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import network.loki.messenger.R; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; /** * Activity for verifying identity keys. diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index e17e4f631..2c77d5613 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -46,12 +46,12 @@ import org.thoughtcrime.securesms.service.WebRtcCallService; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ViewUtil; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.SignalProtocolAddress; import network.loki.messenger.R; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; public class WebRtcCallActivity extends Activity { diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java index 0144063fd..125a8e692 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java @@ -7,9 +7,9 @@ import androidx.annotation.Nullable; import org.thoughtcrime.securesms.database.AttachmentDatabase; import org.thoughtcrime.securesms.stickers.StickerLocator; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java b/app/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java index a737e3c26..7e87f649f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java @@ -38,7 +38,7 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.AudioSlide; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.lang.ref.WeakReference; diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.kt index 8f69f5914..d9e1c1a95 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.kt @@ -25,8 +25,8 @@ import org.thoughtcrime.securesms.util.BackupUtil import org.thoughtcrime.securesms.util.Conversions import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.Util -import org.whispersystems.libsignal.kdf.HKDFv3 -import org.whispersystems.libsignal.util.ByteUtil +import org.session.libsignal.libsignal.kdf.HKDFv3 +import org.session.libsignal.libsignal.util.ByteUtil import java.io.* import java.lang.Exception import java.security.InvalidAlgorithmParameterException diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.kt index 03b576d1d..18187a6b0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.kt @@ -17,8 +17,8 @@ import org.thoughtcrime.securesms.profiles.AvatarHelper import org.thoughtcrime.securesms.util.BackupUtil import org.thoughtcrime.securesms.util.Conversions import org.thoughtcrime.securesms.util.Util -import org.whispersystems.libsignal.kdf.HKDFv3 -import org.whispersystems.libsignal.util.ByteUtil +import org.session.libsignal.libsignal.kdf.HKDFv3 +import org.session.libsignal.libsignal.util.ByteUtil import java.io.* import java.security.InvalidAlgorithmParameterException import java.security.InvalidKeyException diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/DocumentView.java b/app/src/main/java/org/thoughtcrime/securesms/components/DocumentView.java index e991d83a2..68ff01569 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/DocumentView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/DocumentView.java @@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.events.PartProgressEvent; import org.thoughtcrime.securesms.mms.DocumentSlide; import org.thoughtcrime.securesms.mms.SlideClickListener; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; public class DocumentView extends FrameLayout { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java index 6394c8fea..e7b3f7294 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java @@ -43,7 +43,7 @@ import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.concurrent.AssertedSuccessListener; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.List; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java index b01691fb2..79f8045d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java @@ -33,7 +33,7 @@ import org.thoughtcrime.securesms.recipients.RecipientModifiedListener; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; +import org.session.libsignal.service.loki.api.opengroups.PublicChat; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.java b/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.java index f8050dcfa..96e41e9ea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.java @@ -14,7 +14,7 @@ import org.thoughtcrime.securesms.TransportOptions.OnTransportChangedListener; import org.thoughtcrime.securesms.TransportOptionsPopup; import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.ViewUtil; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java index 1cdf1949b..ccab2a67d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java @@ -32,7 +32,7 @@ import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.Locale; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java b/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java index d8b070d86..a3c5c9a73 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.jobs.TypingSendJob; import org.thoughtcrime.securesms.loki.protocol.SessionMetaProtocol; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; import java.util.HashMap; import java.util.Map; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/camera/CameraView.java b/app/src/main/java/org/thoughtcrime/securesms/components/camera/CameraView.java index 8e9947419..023cf4d48 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/camera/CameraView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/camera/CameraView.java @@ -40,7 +40,7 @@ import network.loki.messenger.R; import org.thoughtcrime.securesms.util.BitmapUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPages.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPages.java index 0c3e89701..4f733856e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPages.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiPages.java @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.components.emoji; import network.loki.messenger.R; -import org.whispersystems.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.Pair; import java.util.Arrays; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiProvider.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiProvider.java index c7da53937..ab6ad9e73 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiProvider.java @@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.components.emoji.parsing.EmojiTree; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.FutureTaskListener; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.Pair; import java.util.List; import java.util.concurrent.ExecutionException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java index ad99f1d06..4856e8d26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.components.emoji.EmojiProvider.EmojiDrawable; import org.thoughtcrime.securesms.components.emoji.parsing.EmojiParser; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; public class EmojiTextView extends AppCompatTextView { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java index ca661915b..1e5660d78 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java @@ -14,7 +14,7 @@ import org.thoughtcrime.securesms.database.IdentityDatabase.IdentityRecord; import java.util.List; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; public class UntrustedSendDialog extends AlertDialog.Builder implements DialogInterface.OnClickListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java index 0ab6982f2..1d9ec45ad 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.IdentityDatabase.IdentityRecord; import java.util.List; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; public class UnverifiedSendDialog extends AlertDialog.Builder implements DialogInterface.OnClickListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallScreen.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallScreen.java index 76006bbd2..63dc2e3b4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallScreen.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallScreen.java @@ -47,7 +47,7 @@ import org.thoughtcrime.securesms.util.VerifySpan; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.webrtc.CameraState; import org.webrtc.SurfaceViewRenderer; -import org.whispersystems.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKey; /** * A UI widget that encapsulates the entire in-call screen diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsDatabase.java index 97812c332..a4d406a4c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsDatabase.java @@ -42,7 +42,7 @@ import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.ArrayList; import java.util.HashMap; diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/GroupRecordContactPhoto.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/GroupRecordContactPhoto.java index 7d0baf8a6..26f5dae7f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/GroupRecordContactPhoto.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/GroupRecordContactPhoto.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.GroupDatabase; import org.thoughtcrime.securesms.util.Conversions; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.ByteArrayInputStream; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactModelMapper.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactModelMapper.java index 3da1d742a..b1b00bd8a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactModelMapper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactModelMapper.java @@ -4,8 +4,8 @@ import androidx.annotation.NonNull; import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.attachments.PointerAttachment; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.shared.SharedContact; import java.util.ArrayList; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 402da15c8..d236445f7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -227,16 +227,16 @@ import org.thoughtcrime.securesms.util.concurrent.AssertedSuccessListener; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; import org.thoughtcrime.securesms.util.views.Stub; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI; -import org.whispersystems.signalservice.loki.protocol.mentions.Mention; -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager; -import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; -import org.whispersystems.signalservice.loki.utilities.HexEncodingKt; -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.loki.api.opengroups.PublicChat; +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI; +import org.session.libsignal.service.loki.protocol.mentions.Mention; +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager; +import org.session.libsignal.service.loki.protocol.meta.SessionMetaProtocol; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.service.loki.utilities.HexEncodingKt; +import org.session.libsignal.service.loki.utilities.PublicKeyValidation; import java.io.IOException; import java.text.SimpleDateFormat; @@ -256,7 +256,7 @@ import network.loki.messenger.R; import static org.thoughtcrime.securesms.TransportOption.Type; import static org.thoughtcrime.securesms.database.GroupDatabase.GroupRecord; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; /** * Activity for displaying a message thread, as well as diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java index 09c25bc30..6daf91201 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java @@ -49,7 +49,7 @@ import org.thoughtcrime.securesms.util.LRUCache; import org.thoughtcrime.securesms.util.StickyHeaderDecoration; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.lang.ref.SoftReference; import java.security.MessageDigest; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index d260dcb0c..14815298a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -102,9 +102,9 @@ import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.loki.api.opengroups.PublicChat; +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI; import java.io.IOException; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index e60d7e4df..c918b6e80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -110,9 +110,9 @@ import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.views.Stub; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.loki.api.opengroups.PublicChat; +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI; import java.util.Collections; import java.util.HashSet; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java index 39a421290..ec6ac9b15 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java @@ -32,7 +32,7 @@ import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Locale; import java.util.Set; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterCipher.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterCipher.java index c38c5d08c..b62587672 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterCipher.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterCipher.java @@ -19,12 +19,12 @@ package org.thoughtcrime.securesms.crypto; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECKeyPair; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.ecc.ECPublicKey; import org.thoughtcrime.securesms.util.Conversions; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterSecret.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterSecret.java index 36dfe4b1d..58e0e48c1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterSecret.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/AsymmetricMasterSecret.java @@ -17,8 +17,8 @@ */ package org.thoughtcrime.securesms.crypto; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.ecc.ECPublicKey; /** * When a user first initializes TextSecure, a few secrets diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyParcelable.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyParcelable.java index d03ec492c..d8ddc61cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyParcelable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyParcelable.java @@ -19,8 +19,8 @@ package org.thoughtcrime.securesms.crypto; import android.os.Parcel; import android.os.Parcelable; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.InvalidKeyException; public class IdentityKeyParcelable implements Parcelable { diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyUtil.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyUtil.java index fd9cca173..47cf0831c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/IdentityKeyUtil.java @@ -24,12 +24,12 @@ import androidx.annotation.NonNull; import org.thoughtcrime.securesms.backup.BackupProtos; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECKeyPair; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; import java.io.IOException; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterCipher.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterCipher.java index 95fffc990..ca6bfca46 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterCipher.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterCipher.java @@ -22,9 +22,9 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.Hex; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; import java.io.IOException; import java.security.GeneralSecurityException; @@ -86,12 +86,12 @@ public class MasterCipher { } public ECPrivateKey decryptKey(byte[] key) - throws org.whispersystems.libsignal.InvalidKeyException + throws org.session.libsignal.libsignal.InvalidKeyException { try { return Curve.decodePrivatePoint(decryptBytes(key)); } catch (InvalidMessageException ime) { - throw new org.whispersystems.libsignal.InvalidKeyException(ime); + throw new org.session.libsignal.libsignal.InvalidKeyException(ime); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterSecretUtil.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterSecretUtil.java index 6ca098650..1797941ff 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterSecretUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterSecretUtil.java @@ -26,11 +26,11 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECKeyPair; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.ecc.ECPublicKey; import java.io.IOException; import java.security.GeneralSecurityException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/PreKeyUtil.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/PreKeyUtil.java index 856a0aa52..4052baafa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/PreKeyUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/PreKeyUtil.java @@ -22,16 +22,16 @@ import android.content.Context; import org.jetbrains.annotations.Nullable; import org.thoughtcrime.securesms.crypto.storage.TextSecurePreKeyStore; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.PreKeyStore; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyStore; -import org.whispersystems.libsignal.util.Medium; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.InvalidKeyIdException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECKeyPair; +import org.session.libsignal.libsignal.state.PreKeyRecord; +import org.session.libsignal.libsignal.state.PreKeyStore; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.state.SignedPreKeyStore; +import org.session.libsignal.libsignal.util.Medium; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/PublicKey.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/PublicKey.java index c0a5c2679..aca3b3b55 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/PublicKey.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/PublicKey.java @@ -20,9 +20,9 @@ package org.thoughtcrime.securesms.crypto; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECPublicKey; import org.thoughtcrime.securesms.util.Conversions; import java.security.MessageDigest; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/SessionUtil.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/SessionUtil.java index e16b666dd..2ce3ef27b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/SessionUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/SessionUtil.java @@ -5,9 +5,9 @@ import androidx.annotation.NonNull; import org.thoughtcrime.securesms.crypto.storage.TextSecureSessionStore; import org.thoughtcrime.securesms.database.Address; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.state.SessionStore; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.state.SessionStore; +import org.session.libsignal.service.api.push.SignalServiceAddress; public class SessionUtil { diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java index d3e7005c5..97038a5e5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/UnidentifiedAccessUtil.java @@ -6,17 +6,17 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; -import org.signal.libsignal.metadata.SignalProtos; -import org.signal.libsignal.metadata.certificate.CertificateValidator; -import org.signal.libsignal.metadata.certificate.InvalidCertificateException; +import org.session.libsignal.metadata.SignalProtos; +import org.session.libsignal.metadata.certificate.CertificateValidator; +import org.session.libsignal.metadata.certificate.InvalidCertificateException; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.crypto.UnidentifiedAccess; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.push.SignalServiceAddress; public class UnidentifiedAccessUtil { diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalProtocolStoreImpl.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalProtocolStoreImpl.java index 40fef31c9..33b4a9037 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalProtocolStoreImpl.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalProtocolStoreImpl.java @@ -2,18 +2,18 @@ package org.thoughtcrime.securesms.crypto.storage; import android.content.Context; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.state.IdentityKeyStore; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.PreKeyStore; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionStore; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyStore; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.InvalidKeyIdException; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.state.IdentityKeyStore; +import org.session.libsignal.libsignal.state.PreKeyRecord; +import org.session.libsignal.libsignal.state.PreKeyStore; +import org.session.libsignal.libsignal.state.SessionRecord; +import org.session.libsignal.libsignal.state.SessionStore; +import org.session.libsignal.libsignal.state.SignalProtocolStore; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.state.SignedPreKeyStore; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureIdentityKeyStore.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureIdentityKeyStore.java index 3faff3824..2b391898c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureIdentityKeyStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureIdentityKeyStore.java @@ -13,11 +13,11 @@ import org.thoughtcrime.securesms.database.IdentityDatabase.VerifiedStatus; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.state.IdentityKeyStore; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.state.IdentityKeyStore; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecurePreKeyStore.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecurePreKeyStore.java index f88545bd4..f01690ea6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecurePreKeyStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecurePreKeyStore.java @@ -4,11 +4,11 @@ import android.content.Context; import androidx.annotation.NonNull; import org.thoughtcrime.securesms.database.DatabaseFactory; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.PreKeyStore; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyStore; +import org.session.libsignal.libsignal.InvalidKeyIdException; +import org.session.libsignal.libsignal.state.PreKeyRecord; +import org.session.libsignal.libsignal.state.PreKeyStore; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.state.SignedPreKeyStore; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureSessionStore.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureSessionStore.java index 0b089b641..0db107456 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureSessionStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/TextSecureSessionStore.java @@ -7,10 +7,10 @@ import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.SessionDatabase; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.protocol.CiphertextMessage; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionStore; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.protocol.CiphertextMessage; +import org.session.libsignal.libsignal.state.SessionRecord; +import org.session.libsignal.libsignal.state.SessionStore; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Address.java b/app/src/main/java/org/thoughtcrime/securesms/database/Address.java index 320d645aa..1cb8036f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Address.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Address.java @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.NumberUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.HashSet; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ApnDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/ApnDatabase.java index 3cf7f5721..603e63b16 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ApnDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ApnDatabase.java @@ -27,7 +27,7 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.LegacyMmsConnection.Apn; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.File; import java.io.FileOutputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java index b2b9432d4..1fed44d50 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java @@ -20,9 +20,9 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.BitmapUtil; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.loki.database.LokiOpenGroupDatabaseProtocol; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentPointer; +import org.session.libsignal.service.loki.database.LokiOpenGroupDatabaseProtocol; import java.io.Closeable; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/IdentityDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/IdentityDatabase.java index c3d88e867..8f33a1146 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/IdentityDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/IdentityDatabase.java @@ -27,9 +27,9 @@ import net.sqlcipher.database.SQLiteDatabase; import org.greenrobot.eventbus.EventBus; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessagingDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MessagingDatabase.java index 349ad4825..22ef0aef7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessagingDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessagingDatabase.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatchList; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.JsonUtils; -import org.whispersystems.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKey; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java index d01046adf..83af72604 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java @@ -67,7 +67,7 @@ import org.thoughtcrime.securesms.recipients.RecipientFormattingException; import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.Closeable; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/OneTimePreKeyDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/OneTimePreKeyDatabase.java index 1f59110f8..874c653a4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/OneTimePreKeyDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/OneTimePreKeyDatabase.java @@ -11,12 +11,12 @@ import net.sqlcipher.database.SQLiteDatabase; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.state.PreKeyRecord; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECKeyPair; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.state.PreKeyRecord; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/PushDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/PushDatabase.java index 4864b37e7..c22c0e13d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/PushDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/PushDatabase.java @@ -10,9 +10,9 @@ import net.sqlcipher.database.SQLiteDatabase; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.internal.util.Util; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceEnvelope; +import org.session.libsignal.service.internal.util.Util; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index 62e445860..cce572f5a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.Closeable; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SessionDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SessionDatabase.java index 173024998..d7e9e25a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SessionDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SessionDatabase.java @@ -11,8 +11,8 @@ import net.sqlcipher.database.SQLiteDatabase; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.state.SessionRecord; +import org.session.libsignal.service.api.push.SignalServiceAddress; import java.io.IOException; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SignedPreKeyDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SignedPreKeyDatabase.java index 810cb54c7..4aa1b5455 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SignedPreKeyDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SignedPreKeyDatabase.java @@ -12,12 +12,12 @@ import net.sqlcipher.database.SQLiteDatabase; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.ecc.Curve; +import org.session.libsignal.libsignal.ecc.ECKeyPair; +import org.session.libsignal.libsignal.ecc.ECPrivateKey; +import org.session.libsignal.libsignal.ecc.ECPublicKey; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; import java.io.IOException; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java index 6ebd0ec57..197426827 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java @@ -44,7 +44,7 @@ import org.thoughtcrime.securesms.sms.IncomingTextMessage; import org.thoughtcrime.securesms.sms.OutgoingTextMessage; import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.security.SecureRandom; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java index e17d48468..6ec09cf5f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java @@ -46,8 +46,8 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.DelimiterUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.Closeable; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java b/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java index effa90ea7..88d95017b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java @@ -15,8 +15,8 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.InvalidKeyException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java index 64123f535..4b6182fd8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java @@ -37,8 +37,8 @@ import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.InvalidMessageException; import java.io.File; import java.io.FileInputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/PreKeyMigrationHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/PreKeyMigrationHelper.java index 8b05f26d6..ca4b0b68e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/PreKeyMigrationHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/PreKeyMigrationHelper.java @@ -16,9 +16,9 @@ import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.Conversions; import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.state.PreKeyRecord; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; import java.io.File; import java.io.FileInputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherMigrationHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherMigrationHelper.java index 42d2c7a68..dde663480 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherMigrationHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherMigrationHelper.java @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.crypto.MasterSecretUtil; import org.thoughtcrime.securesms.service.GenericForegroundService; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.InvalidMessageException; import java.io.IOException; import java.util.HashSet; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java index 804bc99d8..b0d7256bd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java @@ -48,7 +48,7 @@ import org.thoughtcrime.securesms.notifications.NotificationChannels; import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; +import org.session.libsignal.service.loki.api.opengroups.PublicChat; import java.io.File; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SessionStoreMigrationHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SessionStoreMigrationHelper.java index 6d37b1390..ce74ce7e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SessionStoreMigrationHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SessionStoreMigrationHelper.java @@ -10,10 +10,10 @@ import net.sqlcipher.database.SQLiteDatabase; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.SessionDatabase; import org.thoughtcrime.securesms.util.Conversions; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionState; -import org.whispersystems.libsignal.state.StorageProtos.SessionStructure; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.state.SessionRecord; +import org.session.libsignal.libsignal.state.SessionState; +import org.session.libsignal.libsignal.state.StorageProtos.SessionStructure; +import org.session.libsignal.service.api.push.SignalServiceAddress; import java.io.File; import java.io.FileInputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/identity/IdentityRecordList.java b/app/src/main/java/org/thoughtcrime/securesms/database/identity/IdentityRecordList.java index a92b06038..a0e38502c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/identity/IdentityRecordList.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/identity/IdentityRecordList.java @@ -6,7 +6,7 @@ import android.content.Context; import org.thoughtcrime.securesms.database.IdentityDatabase.IdentityRecord; import org.thoughtcrime.securesms.database.IdentityDatabase.VerifiedStatus; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/ConversationLoader.java b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/ConversationLoader.java index fe6a2af0e..591f104fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/ConversationLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/ConversationLoader.java @@ -5,7 +5,7 @@ import android.database.Cursor; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.util.AbstractCursorLoader; -import org.whispersystems.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.Pair; public class ConversationLoader extends AbstractCursorLoader { private final long threadId; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/DeviceListLoader.java b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/DeviceListLoader.java index 1f868d28c..b74254fc4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/DeviceListLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/DeviceListLoader.java @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.devicelist.Device; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.AsyncLoader; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; import java.util.Collections; import java.util.Comparator; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/StickerPackRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/StickerPackRecord.java index 1ce61317a..7e598be9f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/StickerPackRecord.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/StickerPackRecord.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.database.model; import androidx.annotation.NonNull; import android.text.TextUtils; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Objects; diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/AxolotlStorageModule.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/AxolotlStorageModule.java index 4d4029261..97f0a6ffe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/AxolotlStorageModule.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/AxolotlStorageModule.java @@ -4,7 +4,7 @@ import android.content.Context; import org.thoughtcrime.securesms.crypto.storage.SignalProtocolStoreImpl; import org.thoughtcrime.securesms.jobs.CleanPreKeysJob; -import org.whispersystems.libsignal.state.SignedPreKeyStore; +import org.session.libsignal.libsignal.state.SignedPreKeyStore; import dagger.Module; import dagger.Provides; diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java index a7449ca58..b95390616 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java @@ -56,14 +56,14 @@ import org.thoughtcrime.securesms.stickers.StickerPackPreviewRepository; import org.thoughtcrime.securesms.stickers.StickerRemoteUriLoader; import org.thoughtcrime.securesms.util.RealtimeSleepTimer; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.api.util.SleepTimer; -import org.whispersystems.signalservice.api.util.UptimeSleepTimer; -import org.whispersystems.signalservice.api.websocket.ConnectivityListener; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.util.CredentialsProvider; +import org.session.libsignal.service.api.util.SleepTimer; +import org.session.libsignal.service.api.util.UptimeSleepTimer; +import org.session.libsignal.service.api.websocket.ConnectivityListener; import dagger.Module; import dagger.Provides; diff --git a/app/src/main/java/org/thoughtcrime/securesms/events/WebRtcViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/events/WebRtcViewModel.java index a376b888e..e03a4bb71 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/events/WebRtcViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/events/WebRtcViewModel.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.webrtc.CameraState; import org.webrtc.SurfaceViewRenderer; -import org.whispersystems.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKey; public class WebRtcViewModel { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManager.java b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManager.java index fa0fb72a6..94f3026bf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManager.java @@ -24,8 +24,8 @@ import org.thoughtcrime.securesms.util.BitmapUtil; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.util.InvalidNumberException; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; +import org.session.libsignal.service.api.util.InvalidNumberException; +import org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext; import java.io.IOException; import java.util.Collection; diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java index 80ec6d7ae..f2546a349 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java @@ -26,13 +26,13 @@ import org.thoughtcrime.securesms.sms.IncomingTextMessage; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceContent; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup.Type; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceContent; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.messages.SignalServiceGroup.Type; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; import java.util.Collections; import java.util.HashSet; @@ -41,8 +41,8 @@ import java.util.List; import java.util.Set; import static org.thoughtcrime.securesms.database.GroupDatabase.GroupRecord; -import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer; -import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; +import static org.session.libsignal.service.internal.push.SignalServiceProtos.AttachmentPointer; +import static org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext; public class GroupMessageProcessor { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java index 522275f72..c563f42cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java @@ -23,12 +23,12 @@ import org.thoughtcrime.securesms.util.AttachmentUtil; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentPointer; +import org.session.libsignal.service.api.push.exceptions.NonSuccessfulResponseCodeException; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.File; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java index 94989c231..30f391ec3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java @@ -22,12 +22,12 @@ import org.thoughtcrime.securesms.mms.MmsException; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.transport.UndeliverableMessageException; import org.thoughtcrime.securesms.util.MediaUtil; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.loki.api.utilities.HTTP; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentPointer; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.loki.api.utilities.HTTP; import java.io.IOException; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java index f2b95a46f..a03941008 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java @@ -15,11 +15,11 @@ import org.thoughtcrime.securesms.mms.AttachmentStreamUriLoader.AttachmentModel; import org.thoughtcrime.securesms.util.BitmapDecodingException; import org.thoughtcrime.securesms.util.BitmapUtil; import org.thoughtcrime.securesms.util.Hex; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentPointer; +import org.session.libsignal.service.api.push.exceptions.NonSuccessfulResponseCodeException; import java.io.File; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java index 2d427a35a..eff59668f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java @@ -8,12 +8,12 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.crypto.PreKeyUtil; import org.thoughtcrime.securesms.dependencies.InjectableType; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyStore; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.InvalidKeyIdException; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.libsignal.state.SignedPreKeyStore; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.NonSuccessfulResponseCodeException; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java index 0b56da982..341e0ddab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java @@ -11,10 +11,10 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java index b8430d0fa..7aa331c28 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java @@ -32,11 +32,11 @@ import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.DuplicateMessageException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.NoSessionException; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.DuplicateMessageException; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.LegacyMessageException; +import org.session.libsignal.libsignal.NoSessionException; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.io.UnsupportedEncodingException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java index 869cdce96..379dacfa1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java @@ -14,11 +14,11 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.multidevice.BlockedListMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.multidevice.BlockedListMessage; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java index d464b0612..d979914b7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java @@ -10,12 +10,12 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.multidevice.ConfigurationMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.multidevice.ConfigurationMessage; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index 367f7463c..619916f8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -21,20 +21,20 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.loki.protocol.shelved.SyncMessagesProtocol; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.api.messages.multidevice.ContactsMessage; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceContact; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceContactsOutputStream; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; -import org.whispersystems.signalservice.api.util.InvalidNumberException; -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentStream; +import org.session.libsignal.service.api.messages.multidevice.ContactsMessage; +import org.session.libsignal.service.api.messages.multidevice.DeviceContact; +import org.session.libsignal.service.api.messages.multidevice.DeviceContactsOutputStream; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.messages.multidevice.VerifiedMessage; +import org.session.libsignal.service.api.util.InvalidNumberException; +import org.session.libsignal.service.loki.utilities.PublicKeyValidation; import java.io.File; import java.io.FileInputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java index 25d05daae..d0ff88d5b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java @@ -15,14 +15,14 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroup; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroupsOutputStream; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentStream; +import org.session.libsignal.service.api.messages.multidevice.DeviceGroup; +import org.session.libsignal.service.api.messages.multidevice.DeviceGroupsOutputStream; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; import java.io.ByteArrayInputStream; import java.io.File; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java index 8283e6236..a6cee8372 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java @@ -12,16 +12,16 @@ import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.dependencies.InjectableType; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.api.messages.multidevice.ContactsMessage; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceContact; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceContactsOutputStream; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentStream; +import org.session.libsignal.service.api.messages.multidevice.ContactsMessage; +import org.session.libsignal.service.api.messages.multidevice.DeviceContact; +import org.session.libsignal.service.api.messages.multidevice.DeviceContactsOutputStream; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java index cb203e132..0353b8c99 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java @@ -16,11 +16,11 @@ import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId; import org.thoughtcrime.securesms.dependencies.InjectableType; import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.multidevice.ReadMessage; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.io.Serializable; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java index bbc76baf4..db6b92a3f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java @@ -7,8 +7,8 @@ import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java index 2c4a47670..aa5e82cd2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java @@ -7,8 +7,8 @@ import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java index e43a67cb1..290990e49 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java @@ -10,11 +10,11 @@ import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.multidevice.VerifiedMessage; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index 900ba496a..119d7762e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -16,17 +16,17 @@ import androidx.core.app.NotificationManagerCompat; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; -import org.signal.libsignal.metadata.InvalidMetadataMessageException; -import org.signal.libsignal.metadata.InvalidMetadataVersionException; -import org.signal.libsignal.metadata.ProtocolDuplicateMessageException; -import org.signal.libsignal.metadata.ProtocolInvalidKeyException; -import org.signal.libsignal.metadata.ProtocolInvalidKeyIdException; -import org.signal.libsignal.metadata.ProtocolInvalidMessageException; -import org.signal.libsignal.metadata.ProtocolInvalidVersionException; -import org.signal.libsignal.metadata.ProtocolLegacyMessageException; -import org.signal.libsignal.metadata.ProtocolNoSessionException; -import org.signal.libsignal.metadata.ProtocolUntrustedIdentityException; -import org.signal.libsignal.metadata.SelfSendException; +import org.session.libsignal.metadata.InvalidMetadataMessageException; +import org.session.libsignal.metadata.InvalidMetadataVersionException; +import org.session.libsignal.metadata.ProtocolDuplicateMessageException; +import org.session.libsignal.metadata.ProtocolInvalidKeyException; +import org.session.libsignal.metadata.ProtocolInvalidKeyIdException; +import org.session.libsignal.metadata.ProtocolInvalidMessageException; +import org.session.libsignal.metadata.ProtocolInvalidVersionException; +import org.session.libsignal.metadata.ProtocolLegacyMessageException; +import org.session.libsignal.metadata.ProtocolNoSessionException; +import org.session.libsignal.metadata.ProtocolUntrustedIdentityException; +import org.session.libsignal.metadata.SelfSendException; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.attachments.DatabaseAttachment; @@ -99,36 +99,36 @@ import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.loki.SessionResetProtocol; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.messages.SignalServiceContent; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Preview; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage; -import org.whispersystems.signalservice.api.messages.calls.AnswerMessage; -import org.whispersystems.signalservice.api.messages.calls.BusyMessage; -import org.whispersystems.signalservice.api.messages.calls.HangupMessage; -import org.whispersystems.signalservice.api.messages.calls.IceUpdateMessage; -import org.whispersystems.signalservice.api.messages.calls.OfferMessage; -import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage; -import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage; -import org.whispersystems.signalservice.api.messages.multidevice.RequestMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.messages.multidevice.StickerPackOperationMessage; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI; -import org.whispersystems.signalservice.loki.crypto.LokiServiceCipher; -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager; -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.loki.SessionResetProtocol; +import org.session.libsignal.libsignal.state.SignalProtocolStore; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.messages.SignalServiceContent; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage.Preview; +import org.session.libsignal.service.api.messages.SignalServiceEnvelope; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.messages.SignalServiceReceiptMessage; +import org.session.libsignal.service.api.messages.SignalServiceTypingMessage; +import org.session.libsignal.service.api.messages.calls.AnswerMessage; +import org.session.libsignal.service.api.messages.calls.BusyMessage; +import org.session.libsignal.service.api.messages.calls.HangupMessage; +import org.session.libsignal.service.api.messages.calls.IceUpdateMessage; +import org.session.libsignal.service.api.messages.calls.OfferMessage; +import org.session.libsignal.service.api.messages.calls.SignalServiceCallMessage; +import org.session.libsignal.service.api.messages.multidevice.ReadMessage; +import org.session.libsignal.service.api.messages.multidevice.RequestMessage; +import org.session.libsignal.service.api.messages.multidevice.SentTranscriptMessage; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.messages.multidevice.StickerPackOperationMessage; +import org.session.libsignal.service.api.messages.multidevice.VerifiedMessage; +import org.session.libsignal.service.api.messages.shared.SharedContact; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI; +import org.session.libsignal.service.loki.crypto.LokiServiceCipher; +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager; +import org.session.libsignal.service.loki.utilities.PublicKeyValidation; import java.io.IOException; import java.security.SecureRandom; @@ -1406,14 +1406,14 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } else { String publicKey = message.getDestination().get(); String userPublicKey = TextSecurePreferences.getLocalNumber(context); - Set allUserDevices = org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); + Set allUserDevices = org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); if (allUserDevices.contains(publicKey)) { return Recipient.from(context, Address.fromSerialized(userPublicKey), false); } else { try { // TODO: Burn this with fire when we can PromiseUtilities.timeout(FileServerAPI.shared.getDeviceLinks(publicKey, false), 6000).get(); - String masterPublicKey = org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getMasterDevice(publicKey); + String masterPublicKey = org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getMasterDevice(publicKey); if (masterPublicKey == null) { masterPublicKey = publicKey; } @@ -1438,14 +1438,14 @@ public class PushDecryptJob extends BaseJob implements InjectableType { return Recipient.from(context, Address.fromSerialized(publicKey), false); } else { String userPublicKey = TextSecurePreferences.getLocalNumber(context); - Set allUserDevices = org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); + Set allUserDevices = org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); if (allUserDevices.contains(publicKey)) { return Recipient.from(context, Address.fromSerialized(userPublicKey), false); } else { try { // TODO: Burn this with fire when we can PromiseUtilities.timeout(FileServerAPI.shared.getDeviceLinks(publicKey, false), 6000).get(); - String masterPublicKey = org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getMasterDevice(publicKey); + String masterPublicKey = org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol.shared.getMasterDevice(publicKey); if (masterPublicKey == null) { masterPublicKey = publicKey; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java index 5b7d64dac..b8e6b6380 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java @@ -32,19 +32,19 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.transport.RetryLaterException; import org.thoughtcrime.securesms.transport.UndeliverableMessageException; import org.thoughtcrime.securesms.util.GroupUtil; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SendMessageResult; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Preview; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Quote; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SendMessageResult; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage.Preview; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage.Quote; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.messages.shared.SharedContact; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupUpdateJob.java index 38576e415..138256b6a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupUpdateJob.java @@ -15,16 +15,16 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.GroupUtil; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup.Type; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentStream; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.messages.SignalServiceGroup.Type; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.ByteArrayInputStream; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java index 251e23a87..8599a22a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java @@ -30,20 +30,20 @@ import org.thoughtcrime.securesms.transport.InsecureFallbackApprovalException; import org.thoughtcrime.securesms.transport.RetryLaterException; import org.thoughtcrime.securesms.transport.UndeliverableMessageException; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SendMessageResult; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Preview; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; -import org.whispersystems.signalservice.loki.api.SnodeAPI; -import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SendMessageResult; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage.Preview; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.messages.shared.SharedContact; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.UnregisteredUserException; +import org.session.libsignal.service.loki.api.SnodeAPI; +import org.session.libsignal.service.loki.protocol.meta.SessionMetaProtocol; import java.io.FileNotFoundException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushNotificationReceiveJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushNotificationReceiveJob.java index e053b12cb..462870ea2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushNotificationReceiveJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushNotificationReceiveJob.java @@ -9,8 +9,8 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushReceivedJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushReceivedJob.java index e506d993e..77f2dd32f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushReceivedJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushReceivedJob.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.database.RecipientDatabase; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; +import org.session.libsignal.service.api.messages.SignalServiceEnvelope; public abstract class PushReceivedJob extends BaseJob { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java index 201e3c672..26b0cf7d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java @@ -32,16 +32,16 @@ import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Preview; -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceAttachmentPointer; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage.Preview; +import org.session.libsignal.service.api.messages.multidevice.SentTranscriptMessage; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.messages.shared.SharedContact; +import org.session.libsignal.service.api.push.SignalServiceAddress; import java.io.ByteArrayInputStream; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushTextSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushTextSendJob.java index 97d4572a4..56ebe2150 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushTextSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushTextSendJob.java @@ -21,18 +21,18 @@ import org.thoughtcrime.securesms.service.ExpiringMessageManager; import org.thoughtcrime.securesms.transport.InsecureFallbackApprovalException; import org.thoughtcrime.securesms.transport.RetryLaterException; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.state.PreKeyBundle; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SendMessageResult; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; -import org.whispersystems.signalservice.loki.api.SnodeAPI; -import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol; +import org.session.libsignal.libsignal.state.PreKeyBundle; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SendMessageResult; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.UnregisteredUserException; +import org.session.libsignal.service.loki.api.SnodeAPI; +import org.session.libsignal.service.loki.protocol.meta.SessionMetaProtocol; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java index 129f35d9a..63cd9f120 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java @@ -12,8 +12,8 @@ import org.thoughtcrime.securesms.dependencies.InjectableType; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.NetworkFailureException; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.NetworkFailureException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java index 0ee0daf98..c7a95ef4a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java @@ -7,9 +7,9 @@ import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.loki.protocol.SessionManagementProtocol; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.NonSuccessfulResponseCodeException; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshUnidentifiedDeliveryAbilityJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshUnidentifiedDeliveryAbilityJob.java index 6fd616168..56376fe0e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshUnidentifiedDeliveryAbilityJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshUnidentifiedDeliveryAbilityJob.java @@ -11,13 +11,13 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.service.IncomingMessageObserver; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessagePipe; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.crypto.ProfileCipher; -import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessagePipe; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.crypto.ProfileCipher; +import org.session.libsignal.service.api.profiles.SignalServiceProfile; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java index ae6acec2c..cd4ab5ab2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java @@ -10,13 +10,13 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup.Type; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceDataMessage; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.messages.SignalServiceGroup.Type; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java index 168a6630a..8412508b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java @@ -17,8 +17,8 @@ import org.thoughtcrime.securesms.dependencies.InjectableType; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.File; import java.io.FileOutputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java index c3febc4fe..3ab2c7975 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java @@ -21,19 +21,19 @@ import org.thoughtcrime.securesms.service.IncomingMessageObserver; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessagePipe; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.crypto.InvalidCiphertextException; -import org.whispersystems.signalservice.api.crypto.ProfileCipher; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.api.util.InvalidNumberException; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.InvalidKeyException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessagePipe; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.crypto.InvalidCiphertextException; +import org.session.libsignal.service.api.crypto.ProfileCipher; +import org.session.libsignal.service.api.crypto.UnidentifiedAccess; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.profiles.SignalServiceProfile; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.NonSuccessfulResponseCodeException; +import org.session.libsignal.service.api.util.InvalidNumberException; import java.io.IOException; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java index 087b78384..911e87b27 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java @@ -9,8 +9,8 @@ import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java index 56586c7a8..75d1cc552 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java @@ -12,9 +12,9 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; -import org.whispersystems.signalservice.api.util.StreamDetails; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.util.StreamDetails; import java.io.File; import java.io.FileInputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java index 5ab4a0d6d..040e7eaf4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java @@ -12,10 +12,10 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.IdentityKeyPair; +import org.session.libsignal.libsignal.state.SignedPreKeyRecord; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import javax.inject.Inject; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java index b19fbba85..8b85b0e4f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java @@ -11,11 +11,11 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceReceiptMessage; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java index 24692eb02..3b6d074b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java @@ -12,11 +12,11 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.SignalServiceReceiptMessage; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java index d1032e596..158e3c3d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SmsReceiveJob.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.sms.IncomingTextMessage; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java index 4919ae953..70ddcfb26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java @@ -11,8 +11,8 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Hex; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.InputStream; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java index 166afbc3f..1f7e29f12 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java @@ -13,11 +13,11 @@ import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Hex; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest; -import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest.StickerInfo; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.messages.SignalServiceStickerManifest; +import org.session.libsignal.service.api.messages.SignalServiceStickerManifest.StickerInfo; +import org.session.libsignal.service.api.push.exceptions.PushNetworkException; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/TypingSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/TypingSendJob.java index fcc34e215..4b13471f9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/TypingSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/TypingSendJob.java @@ -13,12 +13,12 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.GroupUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage.Action; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UnidentifiedAccessPair; +import org.session.libsignal.service.api.messages.SignalServiceTypingMessage; +import org.session.libsignal.service.api.messages.SignalServiceTypingMessage.Action; +import org.session.libsignal.service.api.push.SignalServiceAddress; import java.util.Collections; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreview.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreview.java index 9daa346ea..dc5bc8f3b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreview.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreview.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.attachments.AttachmentId; import org.thoughtcrime.securesms.attachments.DatabaseAttachment; import org.thoughtcrime.securesms.util.JsonUtils; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java index 9bc08332f..79d893833 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java @@ -29,12 +29,12 @@ import org.thoughtcrime.securesms.stickers.StickerUrl; import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest; -import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest.StickerInfo; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.messages.SignalServiceStickerManifest; +import org.session.libsignal.service.api.messages.SignalServiceStickerManifest.StickerInfo; import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil.OpenGraph; import java.io.ByteArrayOutputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java index be7a586e7..bf7e5d2e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewUtil.java @@ -15,7 +15,7 @@ import com.annimon.stream.Stream; import org.thoughtcrime.securesms.stickers.StickerUrl; import org.thoughtcrime.securesms.util.DateUtils; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Arrays; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java index 163d5e73b..b78ef509a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java @@ -11,7 +11,7 @@ import android.text.TextUtils; import org.thoughtcrime.securesms.net.RequestController; import org.thoughtcrime.securesms.util.Debouncer; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java b/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java index 44e109ff3..ba5b8151f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/RegistrationLockDialog.java @@ -32,8 +32,8 @@ import network.loki.messenger.R; import org.thoughtcrime.securesms.components.SwitchPreferenceCompat; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceAccountManager; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/logging/CustomSignalProtocolLogger.java b/app/src/main/java/org/thoughtcrime/securesms/logging/CustomSignalProtocolLogger.java index ec663813b..bc185fc62 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logging/CustomSignalProtocolLogger.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logging/CustomSignalProtocolLogger.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.logging; -import org.whispersystems.libsignal.logging.SignalProtocolLogger; +import org.session.libsignal.libsignal.logging.SignalProtocolLogger; public class CustomSignalProtocolLogger implements SignalProtocolLogger { @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt index aff8e7752..e5282902b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt @@ -28,7 +28,7 @@ import org.thoughtcrime.securesms.loki.utilities.fadeOut import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.util.guava.Optional +import org.session.libsignal.libsignal.util.guava.Optional import java.lang.ref.WeakReference class CreateClosedGroupActivity : PassphraseRequiredActionBarActivity(), LoaderManager.LoaderCallbacks> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreatePrivateChatActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreatePrivateChatActivity.kt index e9ad528b3..e71ce1ae3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreatePrivateChatActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreatePrivateChatActivity.kt @@ -24,7 +24,7 @@ import org.thoughtcrime.securesms.loki.fragments.ScanQRCodeWrapperFragment import org.thoughtcrime.securesms.loki.fragments.ScanQRCodeWrapperFragmentDelegate import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation +import org.session.libsignal.service.loki.utilities.PublicKeyValidation class CreatePrivateChatActivity : PassphraseRequiredActionBarActivity(), ScanQRCodeWrapperFragmentDelegate { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/DisplayNameActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/DisplayNameActivity.kt index 09c7aac66..477b25b9f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/DisplayNameActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/DisplayNameActivity.kt @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.BaseActionBarActivity import org.thoughtcrime.securesms.loki.utilities.push import org.thoughtcrime.securesms.loki.utilities.setUpActionBarSessionLogo import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.crypto.ProfileCipher +import org.session.libsignal.service.api.crypto.ProfileCipher class DisplayNameActivity : BaseActionBarActivity() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt index 925da4cdb..c83892f86 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt @@ -35,7 +35,7 @@ import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.GroupUtil import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.ThemeUtil -import org.whispersystems.signalservice.loki.utilities.toHexString +import org.session.libsignal.service.loki.utilities.toHexString import java.io.IOException class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt index 4ec9fe606..9d2af32ee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt @@ -53,13 +53,13 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.TextSecurePreferences.getBooleanPreference import org.thoughtcrime.securesms.util.TextSecurePreferences.setBooleanPreference import org.thoughtcrime.securesms.util.Util -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager -import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.SessionManagementProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.syncmessages.SyncMessagesProtocol -import org.whispersystems.signalservice.loki.utilities.toHexString +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager +import org.session.libsignal.service.loki.protocol.meta.SessionMetaProtocol +import org.session.libsignal.service.loki.protocol.sessionmanagement.SessionManagementProtocol +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.service.loki.protocol.shelved.syncmessages.SyncMessagesProtocol +import org.session.libsignal.service.loki.utilities.toHexString import java.io.IOException class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListener, SeedReminderViewDelegate, NewConversationButtonSetViewDelegate { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LandingActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LandingActivity.kt index e4461a2b3..851c3df07 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LandingActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LandingActivity.kt @@ -24,16 +24,16 @@ import org.thoughtcrime.securesms.util.Base64 import org.thoughtcrime.securesms.util.Hex import org.thoughtcrime.securesms.util.TextSecurePreferences import org.whispersystems.curve25519.Curve25519 -import org.whispersystems.libsignal.ecc.Curve -import org.whispersystems.libsignal.ecc.ECKeyPair -import org.whispersystems.libsignal.util.KeyHelper -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager -import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.SessionManagementProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.syncmessages.SyncMessagesProtocol -import org.whispersystems.signalservice.loki.utilities.hexEncodedPublicKey -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded +import org.session.libsignal.libsignal.ecc.Curve +import org.session.libsignal.libsignal.ecc.ECKeyPair +import org.session.libsignal.libsignal.util.KeyHelper +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager +import org.session.libsignal.service.loki.protocol.meta.SessionMetaProtocol +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink +import org.session.libsignal.service.loki.protocol.sessionmanagement.SessionManagementProtocol +import org.session.libsignal.service.loki.protocol.shelved.syncmessages.SyncMessagesProtocol +import org.session.libsignal.service.loki.utilities.hexEncodedPublicKey +import org.session.libsignal.service.loki.utilities.retryIfNeeded import java.lang.UnsupportedOperationException class LandingActivity : BaseActionBarActivity(), LinkDeviceSlaveModeDialogDelegate { @@ -123,7 +123,7 @@ class LandingActivity : BaseActionBarActivity(), LinkDeviceSlaveModeDialogDelega val sessionResetImpl = SessionResetImplementation(this) MentionsManager.configureIfNeeded(userPublicKey, threadDB, userDB) SessionMetaProtocol.configureIfNeeded(apiDB, userPublicKey) - org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol.configureIfNeeded(apiDB) + org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol.configureIfNeeded(apiDB) SessionManagementProtocol.configureIfNeeded(sessionResetImpl, sskDatabase, application) SyncMessagesProtocol.configureIfNeeded(apiDB, userPublicKey) application.setUpP2PAPIIfNeeded() diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt index e80a55d83..0d1dfe1da 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt @@ -15,7 +15,7 @@ import network.loki.messenger.R import org.thoughtcrime.securesms.BaseActionBarActivity import org.thoughtcrime.securesms.loki.fragments.ScanQRCodeWrapperFragment import org.thoughtcrime.securesms.loki.fragments.ScanQRCodeWrapperFragmentDelegate -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation +import org.session.libsignal.service.loki.utilities.PublicKeyValidation class LinkDeviceActivity : BaseActionBarActivity(), ScanQRCodeWrapperFragmentDelegate { private val adapter = LinkDeviceActivityAdapter(this) diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesActivity.kt index acd006248..3d3ff1420 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesActivity.kt @@ -24,9 +24,9 @@ import org.thoughtcrime.securesms.loki.dialogs.* import org.thoughtcrime.securesms.loki.protocol.shelved.SyncMessagesProtocol import org.thoughtcrime.securesms.loki.utilities.recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI +import org.session.libsignal.service.api.messages.SignalServiceDataMessage +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI import java.util.* import kotlin.concurrent.schedule diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesLoader.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesLoader.kt index 663f83dc8..400c1a74a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesLoader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkedDevicesLoader.kt @@ -6,8 +6,8 @@ import org.thoughtcrime.securesms.devicelist.Device import org.thoughtcrime.securesms.loki.utilities.MnemonicUtilities import org.thoughtcrime.securesms.util.AsyncLoader import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol import java.io.File class LinkedDevicesLoader(context: Context) : AsyncLoader>(context) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/PathActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/PathActivity.kt index 9de15d852..810cfbff5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/PathActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/PathActivity.kt @@ -23,8 +23,8 @@ import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity import org.thoughtcrime.securesms.loki.utilities.* import org.thoughtcrime.securesms.loki.views.GlowViewUtilities import org.thoughtcrime.securesms.loki.views.PathDotView -import org.whispersystems.signalservice.loki.api.Snode -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI +import org.session.libsignal.service.loki.api.Snode +import org.session.libsignal.service.loki.api.onionrequests.OnionRequestAPI class PathActivity : PassphraseRequiredActionBarActivity() { private val broadcastReceivers = mutableListOf() diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/QRCodeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/QRCodeActivity.kt index 42af70dba..181880b85 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/QRCodeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/QRCodeActivity.kt @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.loki.utilities.toPx import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.FileProviderUtil import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation +import org.session.libsignal.service.loki.utilities.PublicKeyValidation import java.io.File import java.io.FileOutputStream diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt index dd2cc9fde..336efb58e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt @@ -27,9 +27,9 @@ import org.thoughtcrime.securesms.loki.utilities.KeyPairUtilities import org.thoughtcrime.securesms.loki.utilities.push import org.thoughtcrime.securesms.loki.utilities.setUpActionBarSessionLogo import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.ecc.ECKeyPair -import org.whispersystems.libsignal.util.KeyHelper -import org.whispersystems.signalservice.loki.utilities.hexEncodedPublicKey +import org.session.libsignal.libsignal.ecc.ECKeyPair +import org.session.libsignal.libsignal.util.KeyHelper +import org.session.libsignal.service.loki.utilities.hexEncodedPublicKey class RegisterActivity : BaseActionBarActivity() { private var seed: ByteArray? = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RestoreActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RestoreActivity.kt index 46f6c38f4..dfc43d156 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RestoreActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RestoreActivity.kt @@ -24,9 +24,9 @@ import org.thoughtcrime.securesms.loki.utilities.push import org.thoughtcrime.securesms.loki.utilities.setUpActionBarSessionLogo import org.thoughtcrime.securesms.util.Hex import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.util.KeyHelper -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.utilities.hexEncodedPublicKey +import org.session.libsignal.libsignal.util.KeyHelper +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.utilities.hexEncodedPublicKey class RestoreActivity : BaseActionBarActivity() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SeedActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SeedActivity.kt index 762bf9e42..b9549ed29 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SeedActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SeedActivity.kt @@ -16,8 +16,8 @@ import org.thoughtcrime.securesms.crypto.IdentityKeyUtil import org.thoughtcrime.securesms.loki.utilities.MnemonicUtilities import org.thoughtcrime.securesms.loki.utilities.getColorWithID import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.utilities.hexEncodedPrivateKey +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.utilities.hexEncodedPrivateKey class SeedActivity : BaseActionBarActivity() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt index 7365827d1..6cc6f7b2e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt @@ -45,9 +45,9 @@ import org.thoughtcrime.securesms.profiles.ProfileMediaConstraints import org.thoughtcrime.securesms.util.BitmapDecodingException import org.thoughtcrime.securesms.util.BitmapUtil import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.crypto.ProfileCipher -import org.whispersystems.signalservice.api.util.StreamDetails -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI +import org.session.libsignal.service.api.crypto.ProfileCipher +import org.session.libsignal.service.api.util.StreamDetails +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI import java.io.ByteArrayInputStream import java.io.File import java.security.SecureRandom diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt index 27489a285..1a9bde528 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt @@ -11,8 +11,8 @@ import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.jobs.PushContentReceiveJob import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope -import org.whispersystems.signalservice.loki.api.SnodeAPI +import org.session.libsignal.service.api.messages.SignalServiceEnvelope +import org.session.libsignal.service.loki.api.SnodeAPI import java.util.concurrent.TimeUnit class BackgroundPollWorker(val context: Context, params: WorkerParameters) : Worker(context, params) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/ClosedGroupPoller.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/ClosedGroupPoller.kt index 4f1a1d193..16f4a4616 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/ClosedGroupPoller.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/ClosedGroupPoller.kt @@ -9,11 +9,11 @@ import org.thoughtcrime.securesms.jobs.PushContentReceiveJob import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.loki.database.SharedSenderKeysDatabase import org.thoughtcrime.securesms.loki.utilities.successBackground -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.loki.api.SnodeAPI -import org.whispersystems.signalservice.loki.api.SwarmAPI -import org.whispersystems.signalservice.loki.utilities.getRandomElementOrNull +import org.session.libsignal.service.api.messages.SignalServiceEnvelope +import org.session.libsignal.service.internal.push.SignalServiceProtos +import org.session.libsignal.service.loki.api.SnodeAPI +import org.session.libsignal.service.loki.api.SwarmAPI +import org.session.libsignal.service.loki.utilities.getRandomElementOrNull class ClosedGroupPoller private constructor(private val context: Context, private val database: SharedSenderKeysDatabase) { private var isPolling = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/LokiPushNotificationManager.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/LokiPushNotificationManager.kt index 5b6d8bd78..8cd80824b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/LokiPushNotificationManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/LokiPushNotificationManager.kt @@ -5,11 +5,11 @@ import nl.komponents.kovenant.functional.map import okhttp3.* import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.PushNotificationAPI -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded +import org.session.libsignal.libsignal.logging.Log +import org.session.libsignal.service.internal.util.JsonUtil +import org.session.libsignal.service.loki.api.PushNotificationAPI +import org.session.libsignal.service.loki.api.onionrequests.OnionRequestAPI +import org.session.libsignal.service.loki.utilities.retryIfNeeded object LokiPushNotificationManager { private val maxRetryCount = 4 diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatInfoUpdateWorker.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatInfoUpdateWorker.kt index e7b7b9be3..d7d09bc92 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatInfoUpdateWorker.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatInfoUpdateWorker.kt @@ -4,7 +4,7 @@ import android.content.Context import androidx.work.* import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat +import org.session.libsignal.service.loki.api.opengroups.PublicChat /** * Delegates the [OpenGroupUtilities.updateGroupInfo] call to the work manager. diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatManager.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatManager.kt index ca7352ec8..2df244c2b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatManager.kt @@ -12,8 +12,8 @@ import org.thoughtcrime.securesms.groups.GroupManager import org.thoughtcrime.securesms.util.BitmapUtil import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.Util -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatInfo -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat +import org.session.libsignal.service.loki.api.opengroups.PublicChatInfo +import org.session.libsignal.service.loki.api.opengroups.PublicChat import kotlin.jvm.Throws class PublicChatManager(private val context: Context) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatPoller.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatPoller.kt index e15cb90d7..2332ae9c0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatPoller.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PublicChatPoller.kt @@ -17,18 +17,18 @@ import org.thoughtcrime.securesms.loki.protocol.SessionMetaProtocol import org.thoughtcrime.securesms.loki.utilities.successBackground import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.util.guava.Optional -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer -import org.whispersystems.signalservice.api.messages.SignalServiceContent -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage -import org.whispersystems.signalservice.api.messages.SignalServiceGroup -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatMessage -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.libsignal.util.guava.Optional +import org.session.libsignal.service.api.messages.SignalServiceAttachmentPointer +import org.session.libsignal.service.api.messages.SignalServiceContent +import org.session.libsignal.service.api.messages.SignalServiceDataMessage +import org.session.libsignal.service.api.messages.SignalServiceGroup +import org.session.libsignal.service.api.messages.multidevice.SentTranscriptMessage +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI +import org.session.libsignal.service.loki.api.opengroups.PublicChat +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI +import org.session.libsignal.service.loki.api.opengroups.PublicChatMessage +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol import java.security.MessageDigest import java.util.* import java.util.concurrent.CompletableFuture diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PushNotificationService.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PushNotificationService.kt index 340152d85..1303c4730 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/PushNotificationService.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/PushNotificationService.kt @@ -7,10 +7,10 @@ import com.google.firebase.messaging.RemoteMessage import org.thoughtcrime.securesms.jobs.PushContentReceiveJob import org.thoughtcrime.securesms.notifications.NotificationChannels import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.loki.api.MessageWrapper +import org.session.libsignal.libsignal.logging.Log +import org.session.libsignal.service.api.messages.SignalServiceEnvelope +import org.session.libsignal.service.internal.util.Base64 +import org.session.libsignal.service.loki.api.MessageWrapper class PushNotificationService : FirebaseMessagingService() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiAPIDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiAPIDatabase.kt index 581140563..c5442a6ed 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiAPIDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiAPIDatabase.kt @@ -6,9 +6,9 @@ import android.util.Log import org.thoughtcrime.securesms.database.Database import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import org.thoughtcrime.securesms.loki.utilities.* -import org.whispersystems.signalservice.loki.api.Snode -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink +import org.session.libsignal.service.loki.api.Snode +import org.session.libsignal.service.loki.database.LokiAPIDatabaseProtocol +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiAPIDatabaseProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiMessageDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiMessageDatabase.kt index 675fbf3ce..4208dd713 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiMessageDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiMessageDatabase.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.loki.utilities.get import org.thoughtcrime.securesms.loki.utilities.getInt import org.thoughtcrime.securesms.loki.utilities.getString import org.thoughtcrime.securesms.loki.utilities.insertOrUpdate -import org.whispersystems.signalservice.loki.database.LokiMessageDatabaseProtocol +import org.session.libsignal.service.loki.database.LokiMessageDatabaseProtocol class LokiMessageDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiMessageDatabaseProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyBundleDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyBundleDatabase.kt index 6e89f77a4..de9faee9f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyBundleDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyBundleDatabase.kt @@ -15,13 +15,13 @@ import org.thoughtcrime.securesms.loki.utilities.getInt import org.thoughtcrime.securesms.loki.utilities.insertOrUpdate import org.thoughtcrime.securesms.util.Base64 import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.IdentityKey -import org.whispersystems.libsignal.InvalidKeyException -import org.whispersystems.libsignal.ecc.Curve -import org.whispersystems.libsignal.state.PreKeyBundle -import org.whispersystems.libsignal.util.KeyHelper -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.loki.database.LokiPreKeyBundleDatabaseProtocol +import org.session.libsignal.libsignal.IdentityKey +import org.session.libsignal.libsignal.InvalidKeyException +import org.session.libsignal.libsignal.ecc.Curve +import org.session.libsignal.libsignal.state.PreKeyBundle +import org.session.libsignal.libsignal.util.KeyHelper +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.loki.database.LokiPreKeyBundleDatabaseProtocol class LokiPreKeyBundleDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiPreKeyBundleDatabaseProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyRecordDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyRecordDatabase.kt index ab92ee50d..6a6363902 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyRecordDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiPreKeyRecordDatabase.kt @@ -8,8 +8,8 @@ import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import org.thoughtcrime.securesms.loki.utilities.get import org.thoughtcrime.securesms.loki.utilities.getInt import org.thoughtcrime.securesms.loki.utilities.insertOrUpdate -import org.whispersystems.libsignal.state.PreKeyRecord -import org.whispersystems.signalservice.loki.database.LokiPreKeyRecordDatabaseProtocol +import org.session.libsignal.libsignal.state.PreKeyRecord +import org.session.libsignal.service.loki.database.LokiPreKeyRecordDatabaseProtocol class LokiPreKeyRecordDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiPreKeyRecordDatabaseProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiThreadDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiThreadDatabase.kt index 5c5aadd0e..988195460 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiThreadDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiThreadDatabase.kt @@ -10,11 +10,11 @@ import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import org.thoughtcrime.securesms.loki.utilities.* import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.loki.SessionResetStatus -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat -import org.whispersystems.signalservice.loki.database.LokiThreadDatabaseProtocol -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation +import org.session.libsignal.libsignal.loki.SessionResetStatus +import org.session.libsignal.service.internal.util.JsonUtil +import org.session.libsignal.service.loki.api.opengroups.PublicChat +import org.session.libsignal.service.loki.database.LokiThreadDatabaseProtocol +import org.session.libsignal.service.loki.utilities.PublicKeyValidation class LokiThreadDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiThreadDatabaseProtocol { var delegate: LokiThreadDatabaseDelegate? = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiUserDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiUserDatabase.kt index 634ec2455..374b65aaf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiUserDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/LokiUserDatabase.kt @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.loki.utilities.get import org.thoughtcrime.securesms.loki.utilities.insertOrUpdate import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.database.LokiUserDatabaseProtocol +import org.session.libsignal.service.loki.database.LokiUserDatabaseProtocol class LokiUserDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiUserDatabaseProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/SharedSenderKeysDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/SharedSenderKeysDatabase.kt index d87f212d5..7d9ff5cad 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/SharedSenderKeysDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/SharedSenderKeysDatabase.kt @@ -6,11 +6,11 @@ import org.thoughtcrime.securesms.database.Database import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import org.thoughtcrime.securesms.loki.utilities.* import org.thoughtcrime.securesms.util.Hex -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupRatchet -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupRatchetCollectionType -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupSenderKey -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysDatabaseProtocol -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupRatchet +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupRatchetCollectionType +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupSenderKey +import org.session.libsignal.service.loki.protocol.closedgroups.SharedSenderKeysDatabaseProtocol +import org.session.libsignal.service.loki.utilities.PublicKeyValidation class SharedSenderKeysDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), SharedSenderKeysDatabaseProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceMasterModeDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceMasterModeDialog.kt index 91edb872c..d28bb2008 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceMasterModeDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceMasterModeDialog.kt @@ -21,12 +21,12 @@ import org.thoughtcrime.securesms.loki.utilities.QRCodeUtilities import org.thoughtcrime.securesms.loki.utilities.toPx import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.Util -import org.whispersystems.signalservice.loki.api.SnodeAPI -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLinkingSession -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLinkingSessionListener +import org.session.libsignal.service.loki.api.SnodeAPI +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLinkingSession +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLinkingSessionListener class LinkDeviceMasterModeDialog : DialogFragment(), DeviceLinkingSessionListener { private lateinit var contentView: View diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceSlaveModeDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceSlaveModeDialog.kt index 54f5d3d48..ef4aec914 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceSlaveModeDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/LinkDeviceSlaveModeDialog.kt @@ -15,10 +15,10 @@ import network.loki.messenger.R import org.thoughtcrime.securesms.loki.utilities.MnemonicUtilities import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.Util -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLinkingSession -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLinkingSessionListener +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLinkingSession +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLinkingSessionListener class LinkDeviceSlaveModeDialog : DialogFragment(), DeviceLinkingSessionListener { private lateinit var contentView: View diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/SeedDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/SeedDialog.kt index 077e8529c..dd97e832e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/SeedDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/SeedDialog.kt @@ -15,8 +15,8 @@ import kotlinx.android.synthetic.main.dialog_seed.view.* import network.loki.messenger.R import org.thoughtcrime.securesms.crypto.IdentityKeyUtil import org.thoughtcrime.securesms.loki.utilities.MnemonicUtilities -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.utilities.hexEncodedPrivateKey +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.utilities.hexEncodedPrivateKey class SeedDialog : DialogFragment() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupUpdateMessageSendJob.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupUpdateMessageSendJob.kt index b65a618cf..50f085de8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupUpdateMessageSendJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupUpdateMessageSendJob.kt @@ -11,12 +11,12 @@ import org.thoughtcrime.securesms.jobs.BaseJob import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.loki.utilities.recipient import org.thoughtcrime.securesms.util.Hex -import org.whispersystems.libsignal.SignalProtocolAddress -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupSenderKey -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities -import org.whispersystems.signalservice.loki.utilities.toHexString +import org.session.libsignal.libsignal.SignalProtocolAddress +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.internal.push.SignalServiceProtos +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupSenderKey +import org.session.libsignal.service.loki.protocol.meta.TTLUtilities +import org.session.libsignal.service.loki.utilities.toHexString import java.util.* import java.util.concurrent.TimeUnit diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupsProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupsProtocol.kt index 73b071bc3..e17fc30c3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupsProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/ClosedGroupsProtocol.kt @@ -19,19 +19,19 @@ import org.thoughtcrime.securesms.sms.MessageSender import org.thoughtcrime.securesms.util.GroupUtil import org.thoughtcrime.securesms.util.Hex import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.ecc.Curve -import org.whispersystems.libsignal.util.guava.Optional -import org.whispersystems.signalservice.api.messages.SignalServiceGroup -import org.whispersystems.signalservice.api.messages.SignalServiceGroup.GroupType -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupRatchet -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupRatchetCollectionType -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupSenderKey -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysImplementation -import org.whispersystems.signalservice.loki.utilities.hexEncodedPrivateKey -import org.whispersystems.signalservice.loki.utilities.hexEncodedPublicKey -import org.whispersystems.signalservice.loki.utilities.toHexString +import org.session.libsignal.libsignal.ecc.Curve +import org.session.libsignal.libsignal.util.guava.Optional +import org.session.libsignal.service.api.messages.SignalServiceGroup +import org.session.libsignal.service.api.messages.SignalServiceGroup.GroupType +import org.session.libsignal.service.internal.push.SignalServiceProtos +import org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupRatchet +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupRatchetCollectionType +import org.session.libsignal.service.loki.protocol.closedgroups.ClosedGroupSenderKey +import org.session.libsignal.service.loki.protocol.closedgroups.SharedSenderKeysImplementation +import org.session.libsignal.service.loki.utilities.hexEncodedPrivateKey +import org.session.libsignal.service.loki.utilities.hexEncodedPublicKey +import org.session.libsignal.service.loki.utilities.toHexString import java.io.IOException import java.util.* import kotlin.jvm.Throws diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/NullMessageSendJob.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/NullMessageSendJob.kt index bac204561..b13269bdc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/NullMessageSendJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/NullMessageSendJob.kt @@ -10,9 +10,9 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.BaseJob import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.recipients.Recipient -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.internal.push.SignalServiceProtos +import org.session.libsignal.service.loki.protocol.meta.TTLUtilities import java.io.IOException import java.security.SecureRandom import java.util.* diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt index 93ae8337b..fc764c53a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionManagementProtocol.kt @@ -14,9 +14,9 @@ import org.thoughtcrime.securesms.sms.MessageSender import org.thoughtcrime.securesms.sms.OutgoingEndSessionMessage import org.thoughtcrime.securesms.sms.OutgoingTextMessage import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.libsignal.loki.SessionResetStatus -import org.whispersystems.signalservice.api.messages.SignalServiceContent -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.libsignal.loki.SessionResetStatus +import org.session.libsignal.service.api.messages.SignalServiceContent +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol import java.util.* object SessionManagementProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionMetaProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionMetaProtocol.kt index 9f9a38427..47a2aed59 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionMetaProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionMetaProtocol.kt @@ -8,8 +8,8 @@ import org.thoughtcrime.securesms.database.RecipientDatabase import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.messages.SignalServiceContent -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage +import org.session.libsignal.service.api.messages.SignalServiceContent +import org.session.libsignal.service.api.messages.SignalServiceDataMessage import java.security.MessageDigest object SessionMetaProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionRequestMessageSendJob.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionRequestMessageSendJob.kt index f7785edf9..52dfddd63 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionRequestMessageSendJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionRequestMessageSendJob.kt @@ -11,9 +11,9 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.BaseJob import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.recipients.Recipient -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.internal.push.SignalServiceProtos +import org.session.libsignal.service.loki.protocol.meta.TTLUtilities import java.io.IOException import java.security.SecureRandom import java.util.* diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionResetImplementation.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionResetImplementation.kt index 900391806..f7de6f26b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionResetImplementation.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/SessionResetImplementation.kt @@ -6,9 +6,9 @@ import org.thoughtcrime.securesms.database.Address import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.sms.OutgoingTextMessage -import org.whispersystems.libsignal.loki.SessionResetProtocol -import org.whispersystems.libsignal.loki.SessionResetStatus -import org.whispersystems.libsignal.protocol.PreKeySignalMessage +import org.session.libsignal.libsignal.loki.SessionResetProtocol +import org.session.libsignal.libsignal.loki.SessionResetStatus +import org.session.libsignal.libsignal.protocol.PreKeySignalMessage class SessionResetImplementation(private val context: Context) : SessionResetProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceOpenGroupUpdateJob.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceOpenGroupUpdateJob.kt index 667959463..a8f49a7a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceOpenGroupUpdateJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceOpenGroupUpdateJob.kt @@ -10,9 +10,9 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.BaseJob import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.SignalServiceMessageSender -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat +import org.session.libsignal.service.api.SignalServiceMessageSender +import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage +import org.session.libsignal.service.loki.api.opengroups.PublicChat import java.util.concurrent.TimeUnit import javax.inject.Inject diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceProtocol.kt index 130dd2b9b..e7ae15664 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/MultiDeviceProtocol.kt @@ -16,14 +16,14 @@ import org.thoughtcrime.securesms.loki.utilities.Broadcaster import org.thoughtcrime.securesms.loki.utilities.recipient import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.messages.SignalServiceContent -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLinkingSession -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded +import org.session.libsignal.service.api.messages.SignalServiceContent +import org.session.libsignal.service.api.messages.SignalServiceDataMessage +import org.session.libsignal.service.api.push.SignalServiceAddress +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink +import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLinkingSession +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.service.loki.utilities.retryIfNeeded object MultiDeviceProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/SyncMessagesProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/SyncMessagesProtocol.kt index 827e321f8..675905321 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/SyncMessagesProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/shelved/SyncMessagesProtocol.kt @@ -18,17 +18,17 @@ import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities import org.thoughtcrime.securesms.loki.utilities.recipient import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment -import org.whispersystems.signalservice.api.messages.SignalServiceContent -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage -import org.whispersystems.signalservice.api.messages.SignalServiceGroup -import org.whispersystems.signalservice.api.messages.multidevice.BlockedListMessage -import org.whispersystems.signalservice.api.messages.multidevice.ContactsMessage -import org.whispersystems.signalservice.api.messages.multidevice.DeviceContactsInputStream -import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroupsInputStream -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol -import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation +import org.session.libsignal.service.api.messages.SignalServiceAttachment +import org.session.libsignal.service.api.messages.SignalServiceContent +import org.session.libsignal.service.api.messages.SignalServiceDataMessage +import org.session.libsignal.service.api.messages.SignalServiceGroup +import org.session.libsignal.service.api.messages.multidevice.BlockedListMessage +import org.session.libsignal.service.api.messages.multidevice.ContactsMessage +import org.session.libsignal.service.api.messages.multidevice.DeviceContactsInputStream +import org.session.libsignal.service.api.messages.multidevice.DeviceGroupsInputStream +import org.session.libsignal.service.loki.api.opengroups.PublicChat +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.service.loki.utilities.PublicKeyValidation object SyncMessagesProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/Broadcaster.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/Broadcaster.kt index 02cf41dd1..5156ff257 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/Broadcaster.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/Broadcaster.kt @@ -4,7 +4,7 @@ import android.content.Context import android.content.Intent import androidx.localbroadcastmanager.content.LocalBroadcastManager -class Broadcaster(private val context: Context) : org.whispersystems.signalservice.loki.utilities.Broadcaster { +class Broadcaster(private val context: Context) : org.session.libsignal.service.loki.utilities.Broadcaster { override fun broadcast(event: String) { val intent = Intent(event) diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/ContactUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/ContactUtilities.kt index 4bc9db0e3..0d06872af 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/ContactUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/ContactUtilities.kt @@ -4,7 +4,7 @@ import android.content.Context import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol data class Contact( val recipient: Recipient, diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/DatabaseUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/DatabaseUtilities.kt index 33d8997f0..e33aba689 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/DatabaseUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/DatabaseUtilities.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.loki.utilities import android.content.ContentValues import net.sqlcipher.Cursor import net.sqlcipher.database.SQLiteDatabase -import org.whispersystems.signalservice.internal.util.Base64 +import org.session.libsignal.service.internal.util.Base64 fun SQLiteDatabase.get(table: String, query: String?, arguments: Array?, get: (Cursor) -> T): T? { var cursor: Cursor? = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/IP2Country.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/IP2Country.kt index 7f99b2c69..55e367b1b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/IP2Country.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/IP2Country.kt @@ -7,7 +7,7 @@ import android.content.IntentFilter import androidx.localbroadcastmanager.content.LocalBroadcastManager import android.util.Log import com.opencsv.CSVReader -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI +import org.session.libsignal.service.loki.api.onionrequests.OnionRequestAPI import java.io.File import java.io.FileOutputStream import java.io.FileReader diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/KeyPairUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/KeyPairUtilities.kt index e5a726fe7..255e99964 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/KeyPairUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/KeyPairUtilities.kt @@ -7,9 +7,9 @@ import com.goterl.lazycode.lazysodium.utils.KeyPair import org.thoughtcrime.securesms.crypto.IdentityKeyUtil import org.thoughtcrime.securesms.util.Base64 import org.thoughtcrime.securesms.util.Hex -import org.whispersystems.libsignal.ecc.DjbECPrivateKey -import org.whispersystems.libsignal.ecc.DjbECPublicKey -import org.whispersystems.libsignal.ecc.ECKeyPair +import org.session.libsignal.libsignal.ecc.DjbECPrivateKey +import org.session.libsignal.libsignal.ecc.DjbECPublicKey +import org.session.libsignal.libsignal.ecc.ECKeyPair object KeyPairUtilities { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MentionManagerUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MentionManagerUtilities.kt index e237b933f..917673439 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MentionManagerUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MentionManagerUtilities.kt @@ -4,7 +4,7 @@ import android.content.Context import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager object MentionManagerUtilities { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MnemonicUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MnemonicUtilities.kt index 040419a1d..948eaa16b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MnemonicUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/MnemonicUtilities.kt @@ -1,8 +1,8 @@ package org.thoughtcrime.securesms.loki.utilities import android.content.Context -import org.whispersystems.signalservice.loki.crypto.MnemonicCodec -import org.whispersystems.signalservice.loki.utilities.removing05PrefixIfNeeded +import org.session.libsignal.service.loki.crypto.MnemonicCodec +import org.session.libsignal.service.loki.utilities.removing05PrefixIfNeeded import java.io.File import java.io.FileOutputStream diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt index fa23d46b3..3fa2f5d5d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt @@ -9,7 +9,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.groups.GroupManager import org.thoughtcrime.securesms.util.GroupUtil import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat +import org.session.libsignal.service.loki.api.opengroups.PublicChat import java.lang.Exception import java.lang.IllegalStateException import kotlin.jvm.Throws diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt index f51850db6..f2d2b8ac9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.loki.utilities.MentionUtilities.highlightMenti import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager import java.util.* class ConversationView : LinearLayout { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateSelectionView.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateSelectionView.kt index b7aae2463..53f5f27aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateSelectionView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateSelectionView.kt @@ -10,7 +10,7 @@ import android.widget.ListView import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.loki.utilities.toPx import org.thoughtcrime.securesms.mms.GlideRequests -import org.whispersystems.signalservice.loki.protocol.mentions.Mention +import org.session.libsignal.service.loki.protocol.mentions.Mention class MentionCandidateSelectionView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : ListView(context, attrs, defStyleAttr) { private var mentionCandidates = listOf() diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateView.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateView.kt index a9b62a5fd..cf76ece83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/views/MentionCandidateView.kt @@ -9,8 +9,8 @@ import android.widget.LinearLayout import kotlinx.android.synthetic.main.view_mention_candidate.view.* import network.loki.messenger.R import org.thoughtcrime.securesms.mms.GlideRequests -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI -import org.whispersystems.signalservice.loki.protocol.mentions.Mention +import org.session.libsignal.service.loki.api.opengroups.PublicChatAPI +import org.session.libsignal.service.loki.protocol.mentions.Mention class MentionCandidateView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : LinearLayout(context, attrs, defStyleAttr) { var mentionCandidate = Mention("", "") diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/views/PathStatusView.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/views/PathStatusView.kt index 77cfbe250..7f8611458 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/views/PathStatusView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/views/PathStatusView.kt @@ -13,7 +13,7 @@ import androidx.annotation.ColorInt import network.loki.messenger.R import org.thoughtcrime.securesms.loki.utilities.getColorWithID import org.thoughtcrime.securesms.loki.utilities.toPx -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI +import org.session.libsignal.service.loki.api.onionrequests.OnionRequestAPI class PathStatusView : View { private val broadcastReceivers = mutableListOf() diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/views/ProfilePictureView.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/views/ProfilePictureView.kt index 85105609c..573e64798 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/views/ProfilePictureView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/views/ProfilePictureView.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.loki.utilities.AvatarPlaceholderGenerator import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager +import org.session.libsignal.service.loki.protocol.mentions.MentionsManager // TODO: Look into a better way of handling different sizes. Maybe an enum (with associated values) encapsulating the different modes? diff --git a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java index 5b31a0ba8..264d1d57c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageRepository.java @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.mms.TextSlide; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java index 393bd97cc..34efe23fd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java @@ -12,7 +12,7 @@ import android.os.Handler; import androidx.annotation.NonNull; import org.thoughtcrime.securesms.database.DatabaseContentProviders; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; class LongMessageViewModel extends ViewModel { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewViewModel.java index b5d4682e3..261d9856d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewViewModel.java @@ -11,7 +11,7 @@ import androidx.annotation.Nullable; import org.thoughtcrime.securesms.database.MediaDatabase.MediaRecord; import org.thoughtcrime.securesms.mediasend.Media; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Media.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Media.java index 842d8371a..2339d9355 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Media.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Media.java @@ -5,7 +5,7 @@ import android.os.Parcel; import android.os.Parcelable; import androidx.annotation.NonNull; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; /** * Represents a piece of media that the user has on their device. diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaPickerFolderFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaPickerFolderFragment.java index 0df12eb0a..681dd029d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaPickerFolderFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaPickerFolderFragment.java @@ -21,7 +21,7 @@ import android.view.WindowManager; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java index 401ecabea..7632b093e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java @@ -19,7 +19,7 @@ import com.annimon.stream.Stream; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.File; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java index cc8269032..259dc659e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java @@ -33,7 +33,7 @@ import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.SimpleTask; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendFragment.java index 73d846872..27674e9f1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendFragment.java @@ -53,7 +53,7 @@ import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; import org.thoughtcrime.securesms.util.views.Stub; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java index ac045b2ce..5d9eb6762 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendViewModel.java @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.SingleLiveEvent; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collections; import java.util.HashMap; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java index a4fac15f1..64ede8176 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -67,7 +67,7 @@ import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture.Listener; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; import org.thoughtcrime.securesms.util.views.Stub; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.File; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamLocalUriFetcher.java b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamLocalUriFetcher.java index e94e763fa..d5399b3b8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamLocalUriFetcher.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamLocalUriFetcher.java @@ -7,9 +7,9 @@ import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.data.DataFetcher; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.AttachmentCipherInputStream; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.crypto.AttachmentCipherInputStream; import java.io.File; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java index 4dc3b3243..56a733ba7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java @@ -10,7 +10,7 @@ import com.bumptech.glide.load.model.ModelLoaderFactory; import com.bumptech.glide.load.model.MultiModelLoaderFactory; import org.thoughtcrime.securesms.mms.AttachmentStreamUriLoader.AttachmentModel; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.File; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingMediaMessage.java b/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingMediaMessage.java index f4d0a4889..779a46014 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingMediaMessage.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingMediaMessage.java @@ -6,9 +6,9 @@ import org.thoughtcrime.securesms.contactshare.Contact; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.util.GroupUtil; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceAttachment; +import org.session.libsignal.service.api.messages.SignalServiceGroup; import java.util.Collections; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/LegacyMmsConnection.java b/app/src/main/java/org/thoughtcrime/securesms/mms/LegacyMmsConnection.java index 2b8fb3426..4ee9c5019 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/LegacyMmsConnection.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/LegacyMmsConnection.java @@ -47,7 +47,7 @@ import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TelephonyUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/LocationSlide.java b/app/src/main/java/org/thoughtcrime/securesms/mms/LocationSlide.java index 2c89e0ec9..d318229f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/LocationSlide.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/LocationSlide.java @@ -5,7 +5,7 @@ import android.net.Uri; import androidx.annotation.NonNull; import org.thoughtcrime.securesms.components.location.SignalPlace; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; public class LocationSlide extends ImageSlide { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/MmsConfigManager.java b/app/src/main/java/org/thoughtcrime/securesms/mms/MmsConfigManager.java index d356bf8f9..6ca484ce8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/MmsConfigManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/MmsConfigManager.java @@ -10,7 +10,7 @@ import com.android.mms.service_alt.MmsConfig; import org.thoughtcrime.securesms.util.dualsim.SubscriptionInfoCompat; import org.thoughtcrime.securesms.util.dualsim.SubscriptionManagerCompat; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.HashMap; import java.util.Map; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingGroupMediaMessage.java b/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingGroupMediaMessage.java index 27ad27211..f86a48d1a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingGroupMediaMessage.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingGroupMediaMessage.java @@ -9,7 +9,7 @@ import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Base64; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; +import org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext; import java.io.IOException; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java b/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java index 418b59119..a5ac6ec52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.mms; import android.content.Context; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI; +import org.session.libsignal.service.loki.api.fileserver.FileServerAPI; public class PushMediaConstraints extends MediaConstraints { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java b/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java index 19c00664a..62c23985a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java @@ -28,7 +28,7 @@ import org.thoughtcrime.securesms.database.AttachmentDatabase; import org.thoughtcrime.securesms.stickers.StickerLocator; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.security.SecureRandom; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java b/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java index 8d654df47..e4eb474dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java @@ -24,7 +24,7 @@ import com.annimon.stream.Stream; import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.util.MediaUtil; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/net/CallRequestController.java b/app/src/main/java/org/thoughtcrime/securesms/net/CallRequestController.java index 034fc3189..adc9e1f51 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/net/CallRequestController.java +++ b/app/src/main/java/org/thoughtcrime/securesms/net/CallRequestController.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import androidx.annotation.WorkerThread; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/net/ChunkedDataFetcher.java b/app/src/main/java/org/thoughtcrime/securesms/net/ChunkedDataFetcher.java index acffd4156..0a2e4bab0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/net/ChunkedDataFetcher.java +++ b/app/src/main/java/org/thoughtcrime/securesms/net/ChunkedDataFetcher.java @@ -9,8 +9,8 @@ import com.bumptech.glide.util.ContentLengthInputStream; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.FilterInputStream; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoHeardReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoHeardReceiver.java index 18383ebf9..9a7384bf4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoHeardReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoHeardReceiver.java @@ -27,7 +27,7 @@ import androidx.core.app.NotificationManagerCompat; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo; -import org.whispersystems.libsignal.logging.Log; +import org.session.libsignal.libsignal.logging.Log; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoReplyReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoReplyReceiver.java index b7af08227..273c2d144 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoReplyReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/AndroidAutoReplyReceiver.java @@ -33,7 +33,7 @@ import org.thoughtcrime.securesms.mms.OutgoingMediaMessage; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.sms.MessageSender; import org.thoughtcrime.securesms.sms.OutgoingTextMessage; -import org.whispersystems.libsignal.logging.Log; +import org.session.libsignal.libsignal.logging.Log; import java.util.Collections; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java index f9ae25c19..3448bc402 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java @@ -60,7 +60,7 @@ import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.SpanUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.webrtc.CallNotificationBuilder; -import org.whispersystems.signalservice.internal.util.Util; +import org.session.libsignal.service.internal.util.Util; import java.util.HashSet; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java index 141a8b819..a9801d3b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.loki.protocol.SessionMetaProtocol; import org.thoughtcrime.securesms.loki.protocol.shelved.SyncMessagesProtocol; import org.thoughtcrime.securesms.service.ExpiringMessageManager; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java index 748395b15..ab3bf457f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.database.RecipientDatabase.VibrateState; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.logging.Log; +import org.session.libsignal.libsignal.logging.Log; import java.util.ArrayList; import java.util.Arrays; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java index 1050b3a2f..15e656c07 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.loki.api.PublicChatManager; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Debouncer; -import org.whispersystems.signalservice.loki.api.Poller; +import org.session.libsignal.service.loki.api.Poller; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java index f50efdff5..ae4006bbe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java @@ -25,9 +25,9 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.push.AccountManagerFactory; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.exceptions.AuthorizationFailedException; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java index 6bbcd7857..da47f6444 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.lock.RegistrationLockDialog; import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.SignalServiceAccountManager; import java.util.concurrent.TimeUnit; diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java b/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java index 883b5fe31..9cd2121cc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.push; import android.content.Context; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.SignalServiceAccountManager; import network.loki.messenger.BuildConfig; diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/DomainFrontingTrustStore.java b/app/src/main/java/org/thoughtcrime/securesms/push/DomainFrontingTrustStore.java index 9a1657d70..c6568bc66 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/DomainFrontingTrustStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/DomainFrontingTrustStore.java @@ -4,7 +4,7 @@ package org.thoughtcrime.securesms.push; import android.content.Context; import network.loki.messenger.R; -import org.whispersystems.signalservice.api.push.TrustStore; +import org.session.libsignal.service.api.push.TrustStore; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java b/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java index b79abc05d..04c818081 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.push; import android.content.Context; import network.loki.messenger.R; -import org.whispersystems.signalservice.api.push.TrustStore; +import org.session.libsignal.service.api.push.TrustStore; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/MessageSenderEventListener.java b/app/src/main/java/org/thoughtcrime/securesms/push/MessageSenderEventListener.java index 4e1d198a1..6e561c05f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/MessageSenderEventListener.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/MessageSenderEventListener.java @@ -3,8 +3,8 @@ package org.thoughtcrime.securesms.push; import android.content.Context; import org.thoughtcrime.securesms.crypto.SecurityEvent; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.push.SignalServiceAddress; public class MessageSenderEventListener implements SignalServiceMessageSender.EventListener { private final Context context; diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceNetworkAccess.java b/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceNetworkAccess.java index 150d12cfa..53fdccee4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceNetworkAccess.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceNetworkAccess.java @@ -5,11 +5,11 @@ import android.content.Context; import androidx.annotation.Nullable; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.signalservice.api.push.TrustStore; -import org.whispersystems.signalservice.internal.configuration.SignalCdnUrl; -import org.whispersystems.signalservice.internal.configuration.SignalContactDiscoveryUrl; -import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; -import org.whispersystems.signalservice.internal.configuration.SignalServiceUrl; +import org.session.libsignal.service.api.push.TrustStore; +import org.session.libsignal.service.internal.configuration.SignalCdnUrl; +import org.session.libsignal.service.internal.configuration.SignalContactDiscoveryUrl; +import org.session.libsignal.service.internal.configuration.SignalServiceConfiguration; +import org.session.libsignal.service.internal.configuration.SignalServiceUrl; import java.util.HashMap; import java.util.Map; diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceTrustStore.java b/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceTrustStore.java index 2d0c9d99a..58f7c4918 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceTrustStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/SignalServiceTrustStore.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.push; import android.content.Context; import network.loki.messenger.R; -import org.whispersystems.signalservice.api.push.TrustStore; +import org.session.libsignal.service.api.push.TrustStore; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java index be90b012e..be7b7ce9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java @@ -51,8 +51,8 @@ import org.thoughtcrime.securesms.util.FutureTaskListener; import org.thoughtcrime.securesms.util.ListenableFutureTask; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.loki.protocol.shelved.multidevice.MultiDeviceProtocol; import java.util.Collections; import java.util.HashSet; diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientProvider.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientProvider.java index 6d23221fd..19e2b77f0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientProvider.java @@ -35,7 +35,7 @@ import org.thoughtcrime.securesms.util.ListenableFutureTask; import org.thoughtcrime.securesms.util.SoftHashMap; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.HashMap; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java b/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java index 9b3004146..2733d7f78 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/GenericForegroundService.java @@ -15,7 +15,7 @@ import androidx.core.content.ContextCompat; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.loki.activities.HomeActivity; import org.thoughtcrime.securesms.notifications.NotificationChannels; -import org.whispersystems.libsignal.util.guava.Preconditions; +import org.session.libsignal.libsignal.util.guava.Preconditions; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/IncomingMessageObserver.java b/app/src/main/java/org/thoughtcrime/securesms/service/IncomingMessageObserver.java index 315beb2fd..a05faf78e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/IncomingMessageObserver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/IncomingMessageObserver.java @@ -22,9 +22,9 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.notifications.NotificationChannels; import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.signalservice.api.SignalServiceMessagePipe; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; +import org.session.libsignal.libsignal.InvalidVersionException; +import org.session.libsignal.service.api.SignalServiceMessagePipe; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java b/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java index 546c72848..cbaaa5797 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/VerificationCodeParser.java @@ -19,7 +19,7 @@ package org.thoughtcrime.securesms.service; import android.content.Context; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java index 0841e4f88..a4d0112de 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java @@ -71,20 +71,20 @@ import org.webrtc.SurfaceViewRenderer; import org.webrtc.VideoDecoderFactory; import org.webrtc.VideoEncoderFactory; import org.webrtc.VideoTrack; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.calls.AnswerMessage; -import org.whispersystems.signalservice.api.messages.calls.BusyMessage; -import org.whispersystems.signalservice.api.messages.calls.HangupMessage; -import org.whispersystems.signalservice.api.messages.calls.IceUpdateMessage; -import org.whispersystems.signalservice.api.messages.calls.OfferMessage; -import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage; -import org.whispersystems.signalservice.api.messages.calls.TurnServerInfo; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; -import org.whispersystems.signalservice.internal.util.concurrent.SettableFuture; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.SignalServiceMessageSender; +import org.session.libsignal.service.api.crypto.UntrustedIdentityException; +import org.session.libsignal.service.api.messages.calls.AnswerMessage; +import org.session.libsignal.service.api.messages.calls.BusyMessage; +import org.session.libsignal.service.api.messages.calls.HangupMessage; +import org.session.libsignal.service.api.messages.calls.IceUpdateMessage; +import org.session.libsignal.service.api.messages.calls.OfferMessage; +import org.session.libsignal.service.api.messages.calls.SignalServiceCallMessage; +import org.session.libsignal.service.api.messages.calls.TurnServerInfo; +import org.session.libsignal.service.api.push.SignalServiceAddress; +import org.session.libsignal.service.api.push.exceptions.UnregisteredUserException; +import org.session.libsignal.service.internal.util.concurrent.SettableFuture; import java.io.IOException; import java.nio.ByteBuffer; diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingGroupMessage.java b/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingGroupMessage.java index 49e594727..546881ceb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingGroupMessage.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingGroupMessage.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.sms; -import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; +import static org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext; public class IncomingGroupMessage extends IncomingTextMessage { diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingJoinedMessage.java b/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingJoinedMessage.java index 8ce4bec8b..6996559bd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingJoinedMessage.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingJoinedMessage.java @@ -1,8 +1,8 @@ package org.thoughtcrime.securesms.sms; import org.thoughtcrime.securesms.database.Address; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceGroup; public class IncomingJoinedMessage extends IncomingTextMessage { diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingTextMessage.java b/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingTextMessage.java index 612ea7a86..d063064ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingTextMessage.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/IncomingTextMessage.java @@ -9,9 +9,9 @@ import android.telephony.SmsMessage; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.util.GroupUtil; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.push.SignalServiceAddress; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java index c59094756..919e90c59 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java @@ -46,9 +46,9 @@ import org.thoughtcrime.securesms.push.AccountManagerFactory; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.service.ExpiringMessageManager; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.push.ContactTokenDetails; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceAccountManager; +import org.session.libsignal.service.api.push.ContactTokenDetails; import java.io.IOException; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManifest.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManifest.java index 77b5c5c3c..21d14982f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManifest.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManifest.java @@ -4,14 +4,14 @@ import android.net.Uri; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.ArrayList; import java.util.List; /** * Local model that represents the data present in the libsignal model - * {@link org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest}. + * {@link org.session.libsignal.service.api.messages.SignalServiceStickerManifest}. */ public final class StickerManifest { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java index 74350d36d..803f1ad19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java @@ -29,8 +29,8 @@ import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.concurrent.SimpleTask; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.guava.Optional; import network.loki.messenger.R; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java index 8c89422ac..46b4e4b30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java @@ -16,10 +16,10 @@ import org.thoughtcrime.securesms.dependencies.InjectableType; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.messages.SignalServiceStickerManifest; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java index b99e75bbc..2db52b80f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java @@ -12,7 +12,7 @@ import android.text.TextUtils; import org.thoughtcrime.securesms.database.DatabaseContentProviders; import org.thoughtcrime.securesms.stickers.StickerPackPreviewRepository.StickerManifestResult; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; final class StickerPackPreviewViewModel extends ViewModel { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java index 051e862b7..078a34297 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java @@ -8,8 +8,8 @@ import com.bumptech.glide.load.data.DataFetcher; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Hex; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; +import org.session.libsignal.libsignal.InvalidMessageException; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; import java.io.IOException; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java index 89fcc5221..9b93090d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java @@ -11,7 +11,7 @@ import com.bumptech.glide.load.model.MultiModelLoaderFactory; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.dependencies.InjectableType; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; +import org.session.libsignal.service.api.SignalServiceMessageReceiver; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java index e20adfbef..1205cf63b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java @@ -5,8 +5,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import android.text.TextUtils; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.kt index 6198d1a06..77f6d6931 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.kt @@ -21,7 +21,7 @@ import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.loki.database.BackupFileRecord import org.thoughtcrime.securesms.service.LocalBackupListener -import org.whispersystems.libsignal.util.ByteUtil +import org.session.libsignal.libsignal.util.ByteUtil import java.io.IOException import java.security.MessageDigest import java.security.NoSuchAlgorithmException diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/GroupUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/GroupUtil.java index 3792c7b5b..efd177a76 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/GroupUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/GroupUtil.java @@ -14,8 +14,8 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.OutgoingGroupMediaMessage; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientModifiedListener; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceGroup; import java.io.IOException; import java.util.Collections; @@ -24,7 +24,7 @@ import java.util.List; import network.loki.messenger.R; -import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; +import static org.session.libsignal.service.internal.push.SignalServiceProtos.GroupContext; public class GroupUtil { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java index c116009b3..3cf58160e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java @@ -27,20 +27,20 @@ import org.thoughtcrime.securesms.sms.OutgoingIdentityVerifiedMessage; import org.thoughtcrime.securesms.sms.OutgoingTextMessage; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.state.IdentityKeyStore; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionStore; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; +import org.session.libsignal.libsignal.IdentityKey; +import org.session.libsignal.libsignal.SignalProtocolAddress; +import org.session.libsignal.libsignal.state.IdentityKeyStore; +import org.session.libsignal.libsignal.state.SessionRecord; +import org.session.libsignal.libsignal.state.SessionStore; +import org.session.libsignal.libsignal.util.guava.Optional; +import org.session.libsignal.service.api.messages.SignalServiceGroup; +import org.session.libsignal.service.api.messages.multidevice.VerifiedMessage; import java.util.List; import network.loki.messenger.R; -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; +import static org.session.libsignal.libsignal.SessionCipher.SESSION_LOCK; public class IdentityUtil { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/RealtimeSleepTimer.java b/app/src/main/java/org/thoughtcrime/securesms/util/RealtimeSleepTimer.java index 99e244e8d..6a18d90b7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/RealtimeSleepTimer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/RealtimeSleepTimer.java @@ -10,7 +10,7 @@ import android.os.Build; import android.os.SystemClock; import android.util.Log; -import org.whispersystems.signalservice.api.util.SleepTimer; +import org.session.libsignal.service.api.util.SleepTimer; import java.util.concurrent.TimeUnit; @@ -52,7 +52,7 @@ public class RealtimeSleepTimer implements SleepTimer { } private class AlarmReceiver extends BroadcastReceiver { - private static final String WAKE_UP_THREAD_ACTION = "org.whispersystems.signalservice.api.util.RealtimeSleepTimer.AlarmReceiver.WAKE_UP_THREAD"; + private static final String WAKE_UP_THREAD_ACTION = "org.session.libsignal.service.api.util.RealtimeSleepTimer.AlarmReceiver.WAKE_UP_THREAD"; private void setAlarm(long millis) { final Intent intent = new Intent(WAKE_UP_THREAD_ACTION); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SearchUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/SearchUtil.java index 25e84c87c..cee7f6afd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SearchUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SearchUtil.java @@ -9,7 +9,7 @@ import android.text.style.CharacterStyle; import com.annimon.stream.Stream; -import org.whispersystems.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.Pair; import java.util.Collections; import java.util.LinkedList; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SelectedRecipientsAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/util/SelectedRecipientsAdapter.java index 202aa40d8..c603abe95 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SelectedRecipientsAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SelectedRecipientsAdapter.java @@ -12,7 +12,7 @@ import android.widget.TextView; import network.loki.messenger.R; import org.thoughtcrime.securesms.recipients.Recipient; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collection; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java index 8a3199053..055d82851 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraintOb import org.thoughtcrime.securesms.lock.RegistrationLockReminders; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference; -import org.whispersystems.libsignal.util.Medium; +import org.session.libsignal.libsignal.util.Medium; import java.io.IOException; import java.security.SecureRandom; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/Util.java b/app/src/main/java/org/thoughtcrime/securesms/util/Util.java index 79874325a..45e034d09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/Util.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/Util.java @@ -44,7 +44,7 @@ import org.thoughtcrime.securesms.components.ComposeText; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.OutgoingLegacyMmsConnection; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.io.ByteArrayOutputStream; import java.io.Closeable; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/VerifySpan.java b/app/src/main/java/org/thoughtcrime/securesms/util/VerifySpan.java index c72837b9d..436d7432d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/VerifySpan.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/VerifySpan.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.VerifyIdentityActivity; import org.thoughtcrime.securesms.crypto.IdentityKeyParcelable; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch; -import org.whispersystems.libsignal.IdentityKey; +import org.session.libsignal.libsignal.IdentityKey; public class VerifySpan extends ClickableSpan { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/dualsim/SubscriptionManagerCompat.java b/app/src/main/java/org/thoughtcrime/securesms/util/dualsim/SubscriptionManagerCompat.java index 26005a5d8..5b6df3619 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/dualsim/SubscriptionManagerCompat.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/dualsim/SubscriptionManagerCompat.java @@ -11,8 +11,8 @@ import android.telephony.TelephonyManager; import network.loki.messenger.R; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.ServiceUtil; -import org.whispersystems.libsignal.util.guava.Function; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Function; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.Collection; import java.util.Collections; diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/locks/ProximityLock.java b/app/src/main/java/org/thoughtcrime/securesms/webrtc/locks/ProximityLock.java index 323db13dc..06c21ff58 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/locks/ProximityLock.java +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/locks/ProximityLock.java @@ -4,7 +4,7 @@ import android.os.Build; import android.os.PowerManager; import org.thoughtcrime.securesms.logging.Log; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java b/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java index 26b7c03c5..ac198d549 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/service/VerificationCodeParserTest.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.service; import org.junit.Before; import org.junit.Test; import org.thoughtcrime.securesms.BaseUnitTest; -import org.whispersystems.libsignal.util.guava.Optional; +import org.session.libsignal.libsignal.util.guava.Optional; import java.util.HashMap; import java.util.Map; diff --git a/app/src/test/java/org/thoughtcrime/securesms/util/PhoneNumberFormatterTest.java b/app/src/test/java/org/thoughtcrime/securesms/util/PhoneNumberFormatterTest.java index 469df3c6c..195c5ae62 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/util/PhoneNumberFormatterTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/util/PhoneNumberFormatterTest.java @@ -4,8 +4,8 @@ import junit.framework.AssertionFailedError; import org.junit.Test; import org.thoughtcrime.securesms.BaseUnitTest; -import org.whispersystems.signalservice.api.util.InvalidNumberException; -import org.whispersystems.signalservice.api.util.PhoneNumberFormatter; +import org.session.libsignal.service.api.util.InvalidNumberException; +import org.session.libsignal.service.api.util.PhoneNumberFormatter; import static org.assertj.core.api.Assertions.assertThat; diff --git a/app/src/test/java/org/thoughtcrime/securesms/util/SearchUtilTest.java b/app/src/test/java/org/thoughtcrime/securesms/util/SearchUtilTest.java index fcca0bad4..4298567e4 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/util/SearchUtilTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/util/SearchUtilTest.java @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.util; import org.junit.Test; -import org.whispersystems.libsignal.util.Pair; +import org.session.libsignal.libsignal.util.Pair; import java.util.Arrays; import java.util.List; diff --git a/service/.editorconfig b/service/.editorconfig deleted file mode 100644 index 5c912a009..000000000 --- a/service/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -# indicate this is the root of the project -root = true - -[*.{kt,java,xml,gradle,md}] -charset = utf-8 -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true -insert_final_newline = true -end_of_line = lf \ No newline at end of file diff --git a/service/LICENSE b/service/LICENSE deleted file mode 100644 index 94a9ed024..000000000 --- a/service/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/service/android/build.gradle b/service/android/build.gradle deleted file mode 100644 index 53b2f0f48..000000000 --- a/service/android/build.gradle +++ /dev/null @@ -1,125 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'maven' -apply plugin: 'signing' - -archivesBaseName = "signal-service-android" -version = versionNumber -group = groupName - -repositories { - mavenLocal() - google() - jcenter() - mavenCentral() -} - -configurations.all { - resolutionStrategy.cacheChangingModulesFor 0, 'seconds' -} - -dependencies { - api (project(':service:java')) { - exclude group: 'org.signal', module: 'signal-metadata-java' - exclude group: 'org.apache.httpcomponents', module: 'httpclient' - } -} - -android { - compileSdkVersion androidCompileSdkVersion - buildToolsVersion androidBuildToolsVersion - - defaultConfig { - minSdkVersion androidMinSdkVersion - targetSdkVersion androidCompileSdkVersion - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - libraryVariants.all { variant -> - variant.outputs.each { output -> - def outputFile = output.outputFile - if (outputFile != null && outputFile.name.endsWith('.aar')) { - def fileName = "${archivesBaseName}-${version}.aar" - output.outputFileName = fileName - } - } - } -} - -tasks.whenTaskAdded { task -> - if (task.name.equals("lint")) { - task.enabled = false - } -} - -def isReleaseBuild() { - return version.contains("SNAPSHOT") == false -} - -def getReleaseRepositoryUrl() { - return "" -} - -def getRepositoryUsername() { - return "" -} - -def getRepositoryPassword() { - return "" -} - -signing { - required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } - sign configurations.archives -} - -uploadArchives { - configuration = configurations.archives - repositories.mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: getReleaseRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) - } - - pom.project { - name 'signal-service-android' - packaging 'aar' - description 'Signal service communication library for Android' - url 'https://github.com/loki-project/session-android-service' - - scm { - url 'scm:git@github.com:loki-project/session-android-service.git' - connection 'scm:git@github.com:loki-project/session-android-service.git' - developerConnection 'scm:git@github.com:loki-project/session-android-service.git' - } - - licenses { - license { - name 'GPLv3' - url 'https://www.gnu.org/licenses/gpl-3.0.txt' - distribution 'repo' - } - } - - developers { - developer { - name 'Niels Andriesse' - } - } - } - } -} - -task installArchives(type: Upload) { - description "Installs the artifacts to the local Maven repository." - configuration = configurations['archives'] - repositories { - mavenDeployer { - repository url: "file://${System.properties['user.home']}/.m2/repository" - } - } -} diff --git a/service/android/src/main/AndroidManifest.xml b/service/android/src/main/AndroidManifest.xml deleted file mode 100644 index c4454319d..000000000 --- a/service/android/src/main/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/service/android/src/main/java/org/whispersystems/signalservice/api/util/RealtimeSleepTimer.java b/service/android/src/main/java/org/whispersystems/signalservice/api/util/RealtimeSleepTimer.java deleted file mode 100644 index 55c2eb7d8..000000000 --- a/service/android/src/main/java/org/whispersystems/signalservice/api/util/RealtimeSleepTimer.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.whispersystems.signalservice.api.util; - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Build; -import android.os.SystemClock; -import android.util.Log; - -import org.whispersystems.signalservice.api.util.SleepTimer; - -import java.util.concurrent.TimeUnit; - -/** - * A sleep timer that is based on elapsed realtime, so - * that it works properly, even in low-power sleep modes. - * - */ -public class RealtimeSleepTimer implements SleepTimer { - private static final String TAG = RealtimeSleepTimer.class.getSimpleName(); - - private final AlarmReceiver alarmReceiver; - private final Context context; - - public RealtimeSleepTimer(Context context) { - this.context = context; - alarmReceiver = new RealtimeSleepTimer.AlarmReceiver(); - } - - @Override - public void sleep(long millis) { - context.registerReceiver(alarmReceiver, - new IntentFilter(AlarmReceiver.WAKE_UP_THREAD_ACTION)); - - final long startTime = System.currentTimeMillis(); - alarmReceiver.setAlarm(millis); - - while (System.currentTimeMillis() - startTime < millis) { - try { - synchronized (this) { - wait(millis - System.currentTimeMillis() + startTime); - } - } catch (InterruptedException e) { - Log.w(TAG, e); - } - } - - context.unregisterReceiver(alarmReceiver); - } - - private class AlarmReceiver extends BroadcastReceiver { - private static final String WAKE_UP_THREAD_ACTION = "org.whispersystems.signalservice.api.util.RealtimeSleepTimer.AlarmReceiver.WAKE_UP_THREAD"; - - private void setAlarm(long millis) { - final Intent intent = new Intent(WAKE_UP_THREAD_ACTION); - final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); - final AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); - - Log.w(TAG, "Setting alarm to wake up in " + millis + "ms."); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, - SystemClock.elapsedRealtime() + millis, - pendingIntent); - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, - SystemClock.elapsedRealtime() + millis, - pendingIntent); - } else { - alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, - SystemClock.elapsedRealtime() + millis, - pendingIntent); - } - } - - @Override - public void onReceive(Context context, Intent intent) { - Log.w(TAG, "Waking up."); - - synchronized (RealtimeSleepTimer.this) { - RealtimeSleepTimer.this.notifyAll(); - } - } - } -} - diff --git a/service/build.gradle b/service/build.gradle deleted file mode 100644 index 12101595c..000000000 --- a/service/build.gradle +++ /dev/null @@ -1,14 +0,0 @@ -apply plugin: "maven" - -subprojects { - ext.versionNumber = "2.13.2" - ext.groupName = "org.whispersystems" - - if (JavaVersion.current().isJava8Compatible()) { - allprojects { - tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') - } - } - } -} diff --git a/service/java/build.gradle b/service/java/build.gradle deleted file mode 100644 index 620741585..000000000 --- a/service/java/build.gradle +++ /dev/null @@ -1,132 +0,0 @@ -apply plugin: "java-library" -apply plugin: "kotlin" -apply plugin: "maven" -apply plugin: "signing" - -sourceCompatibility = 8 -targetCompatibility = 8 -archivesBaseName = "signal-service-java" -version = versionNumber -group = groupName - -repositories { - mavenLocal() - google() - jcenter() - mavenCentral() -} - -configurations.all { - resolutionStrategy.cacheChangingModulesFor 0, 'seconds' -} - -dependencies { - implementation "com.google.protobuf:protobuf-java:$protobufVersion" - implementation "com.googlecode.libphonenumber:libphonenumber:8.10.7" - implementation "com.fasterxml.jackson.core:jackson-databind:$jacksonDatabindVersion" - - implementation "org.whispersystems:curve25519-java:$curve25519Version" - implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" - implementation "org.threeten:threetenbp:1.3.6" - - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" - implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" - //FIXME AC: If we want to keep this library to target pure Java, - // we should remove Android related dependencies. - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9" - implementation "nl.komponents.kovenant:kovenant:$kovenantVersion" - - testImplementation "junit:junit:3.8.2" - testImplementation "org.assertj:assertj-core:1.7.1" - testImplementation "org.conscrypt:conscrypt-openjdk-uber:2.0.0" -} - -tasks.whenTaskAdded { task -> - if (task.name.equals("lint")) { - task.enabled = false - } -} - -def isReleaseBuild() { - return version.contains("SNAPSHOT") == false -} - -def getReleaseRepositoryUrl() { - return "" -} - -def getRepositoryUsername() { - return "" -} - -def getRepositoryPassword() { - return "" -} - -signing { - required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } - sign configurations.archives -} - -uploadArchives { - configuration = configurations.archives - repositories.mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: getReleaseRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) - } - - pom.project { - name "signal-service-java" - packaging "jar" - description "Signal Service communication library for Java" - url 'https://github.com/loki-project/loki-messenger-android-core' - - scm { - url 'scm:git@github.com:loki-project/loki-messenger-android-core.git' - connection 'scm:git@github.com:loki-project/loki-messenger-android-core.git' - developerConnection 'scm:git@github.com:loki-project/loki-messenger-android-core.git' - } - - licenses { - license { - name "GPLv3" - url "https://www.gnu.org/licenses/gpl-3.0.txt" - distribution "repo" - } - } - - developers { - developer { - name "Niels Andriesse" - } - } - } - } -} - -task installArchives(type: Upload) { - description "Installs the artifacts to the local Maven repository." - configuration = configurations["archives"] - repositories { - mavenDeployer { - repository url: "file://${System.properties["user.home"]}/.m2/repository" - } - } -} - -task packageJavadoc(type: Jar, dependsOn: "javadoc") { - from javadoc.destinationDir - classifier = "javadoc" -} - -task packageSources(type: Jar) { - from sourceSets.main.allSource - classifier = "sources" -} - -artifacts { - archives packageJavadoc - archives packageSources -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataMessageException.java b/service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataMessageException.java deleted file mode 100644 index 01aa341b0..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataMessageException.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.signal.libsignal.metadata; - - -public class InvalidMetadataMessageException extends Exception { - public InvalidMetadataMessageException(String s) { - super(s); - } - - public InvalidMetadataMessageException(Exception s) { - super(s); - } - -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataVersionException.java b/service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataVersionException.java deleted file mode 100644 index da52bd88d..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/InvalidMetadataVersionException.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.signal.libsignal.metadata; - - -public class InvalidMetadataVersionException extends Exception { - public InvalidMetadataVersionException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolDuplicateMessageException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolDuplicateMessageException.java deleted file mode 100644 index 1da79b268..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolDuplicateMessageException.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.signal.libsignal.metadata; - - -public class ProtocolDuplicateMessageException extends ProtocolException { - public ProtocolDuplicateMessageException(Exception e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolException.java deleted file mode 100644 index 47bf4f7c7..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolException.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.signal.libsignal.metadata; - - -public abstract class ProtocolException extends Exception { - - private final String sender; - private final int senderDevice; - - public ProtocolException(Exception e, String sender, int senderDevice) { - super(e); - this.sender = sender; - this.senderDevice = senderDevice; - } - - public String getSender() { - return sender; - } - - public int getSenderDevice() { - return senderDevice; - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyException.java deleted file mode 100644 index 013ce6ca8..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.signal.libsignal.metadata; - - -import org.whispersystems.libsignal.InvalidKeyException; - -public class ProtocolInvalidKeyException extends ProtocolException { - public ProtocolInvalidKeyException(InvalidKeyException e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyIdException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyIdException.java deleted file mode 100644 index de9526a61..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidKeyIdException.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.signal.libsignal.metadata; - - -public class ProtocolInvalidKeyIdException extends ProtocolException { - public ProtocolInvalidKeyIdException(Exception e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidMessageException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidMessageException.java deleted file mode 100644 index d50d39fd2..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidMessageException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.signal.libsignal.metadata; - - -import org.whispersystems.libsignal.InvalidMessageException; - -public class ProtocolInvalidMessageException extends ProtocolException { - public ProtocolInvalidMessageException(InvalidMessageException e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidVersionException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidVersionException.java deleted file mode 100644 index 571534c8b..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolInvalidVersionException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.signal.libsignal.metadata; - - -import org.whispersystems.libsignal.InvalidVersionException; - -public class ProtocolInvalidVersionException extends ProtocolException { - public ProtocolInvalidVersionException(InvalidVersionException e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolLegacyMessageException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolLegacyMessageException.java deleted file mode 100644 index e2f8490b8..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolLegacyMessageException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.signal.libsignal.metadata; - - -import org.whispersystems.libsignal.LegacyMessageException; - -public class ProtocolLegacyMessageException extends ProtocolException { - public ProtocolLegacyMessageException(LegacyMessageException e, String sender, int senderDeviceId) { - super(e, sender, senderDeviceId); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolNoSessionException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolNoSessionException.java deleted file mode 100644 index 5b1d0c7fb..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolNoSessionException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.signal.libsignal.metadata; - - -import org.whispersystems.libsignal.NoSessionException; - -public class ProtocolNoSessionException extends ProtocolException { - public ProtocolNoSessionException(NoSessionException e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolUntrustedIdentityException.java b/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolUntrustedIdentityException.java deleted file mode 100644 index 2253f50b8..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/ProtocolUntrustedIdentityException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.signal.libsignal.metadata; - - -import org.whispersystems.libsignal.UntrustedIdentityException; - -public class ProtocolUntrustedIdentityException extends ProtocolException { - public ProtocolUntrustedIdentityException(UntrustedIdentityException e, String sender, int senderDevice) { - super(e, sender, senderDevice); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/SealedSessionCipher.java b/service/java/src/main/java/org/signal/libsignal/metadata/SealedSessionCipher.java deleted file mode 100644 index baf6bea90..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/SealedSessionCipher.java +++ /dev/null @@ -1,305 +0,0 @@ -package org.signal.libsignal.metadata; - -import org.signal.libsignal.metadata.certificate.CertificateValidator; -import org.signal.libsignal.metadata.certificate.InvalidCertificateException; -import org.signal.libsignal.metadata.certificate.SenderCertificate; -import org.signal.libsignal.metadata.protocol.UnidentifiedSenderMessage; -import org.signal.libsignal.metadata.protocol.UnidentifiedSenderMessageContent; -import org.whispersystems.libsignal.DuplicateMessageException; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.InvalidMacException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.NoSessionException; -import org.whispersystems.libsignal.SessionCipher; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.UntrustedIdentityException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.libsignal.loki.FallbackSessionCipher; -import org.whispersystems.libsignal.loki.LokiSessionCipher; -import org.whispersystems.libsignal.loki.SessionResetProtocol; -import org.whispersystems.libsignal.protocol.CiphertextMessage; -import org.whispersystems.libsignal.protocol.PreKeySignalMessage; -import org.whispersystems.libsignal.protocol.SignalMessage; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.libsignal.util.Hex; -import org.whispersystems.libsignal.util.Pair; - -import java.io.IOException; -import java.security.InvalidAlgorithmParameterException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.text.ParseException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class SealedSessionCipher { - - private final SignalProtocolStore signalProtocolStore; - private final SessionResetProtocol sessionResetProtocol; - private final SignalProtocolAddress localAddress; - - public SealedSessionCipher(SignalProtocolStore signalProtocolStore, - SessionResetProtocol sessionResetProtocol, - SignalProtocolAddress localAddress) - { - this.signalProtocolStore = signalProtocolStore; - this.sessionResetProtocol = sessionResetProtocol; - this.localAddress = localAddress; - } - - public byte[] encrypt(SignalProtocolAddress destinationAddress, SenderCertificate senderCertificate, byte[] paddedPlaintext) - throws InvalidKeyException, UntrustedIdentityException - { - CiphertextMessage message = new SessionCipher(signalProtocolStore, destinationAddress).encrypt(paddedPlaintext); - return encrypt(destinationAddress, senderCertificate, message); - } - - public byte[] encrypt(SignalProtocolAddress destinationAddress, SenderCertificate senderCertificate, CiphertextMessage message) - throws InvalidKeyException - { - try { - IdentityKeyPair ourIdentity = signalProtocolStore.getIdentityKeyPair(); - byte[] theirPublicKey = Hex.fromStringCondensed(destinationAddress.getName()); - ECPublicKey theirIdentity = new IdentityKey(theirPublicKey, 0).getPublicKey(); - - ECKeyPair ephemeral = Curve.generateKeyPair(); - byte[] ephemeralSalt = ByteUtil.combine("UnidentifiedDelivery".getBytes(), theirIdentity.serialize(), ephemeral.getPublicKey().serialize()); - EphemeralKeys ephemeralKeys = calculateEphemeralKeys(theirIdentity, ephemeral.getPrivateKey(), ephemeralSalt); - byte[] staticKeyCiphertext = encrypt(ephemeralKeys.cipherKey, ephemeralKeys.macKey, ourIdentity.getPublicKey().serialize()); - - byte[] staticSalt = ByteUtil.combine(ephemeralKeys.chainKey, staticKeyCiphertext); - StaticKeys staticKeys = calculateStaticKeys(theirIdentity, ourIdentity.getPrivateKey(), staticSalt); - UnidentifiedSenderMessageContent content = new UnidentifiedSenderMessageContent(message.getType(), senderCertificate, message.serialize()); - byte[] messageBytes = encrypt(staticKeys.cipherKey, staticKeys.macKey, content.getSerialized()); - - return new UnidentifiedSenderMessage(ephemeral.getPublicKey(), staticKeyCiphertext, messageBytes).getSerialized(); - } catch (IOException e) { - throw new InvalidKeyException(e); - } - } - - /** - * Decrypt a sealed session message. - * This will return a Pair which is the CipherTextMessage type and the decrypted message content - */ - public Pair> decrypt(CertificateValidator validator, byte[] ciphertext, long timestamp, String prefixedPublicKey) - throws - InvalidMetadataMessageException, InvalidMetadataVersionException, - ProtocolInvalidMessageException, ProtocolInvalidKeyException, - ProtocolNoSessionException, ProtocolLegacyMessageException, - ProtocolInvalidVersionException, ProtocolDuplicateMessageException, - ProtocolInvalidKeyIdException, ProtocolUntrustedIdentityException, - SelfSendException, IOException - { - UnidentifiedSenderMessageContent content; - - try { - IdentityKeyPair ourIdentity = signalProtocolStore.getIdentityKeyPair(); - UnidentifiedSenderMessage wrapper = new UnidentifiedSenderMessage(ciphertext); - byte[] ephemeralSalt = ByteUtil.combine("UnidentifiedDelivery".getBytes(), ourIdentity.getPublicKey().serialize(), wrapper.getEphemeral().serialize()); - EphemeralKeys ephemeralKeys = calculateEphemeralKeys(wrapper.getEphemeral(), ourIdentity.getPrivateKey(), ephemeralSalt); - byte[] staticKeyBytes = decrypt(ephemeralKeys.cipherKey, ephemeralKeys.macKey, wrapper.getEncryptedStatic()); - - ECPublicKey staticKey = Curve.decodePoint(staticKeyBytes, 0); - byte[] staticSalt = ByteUtil.combine(ephemeralKeys.chainKey, wrapper.getEncryptedStatic()); - StaticKeys staticKeys = calculateStaticKeys(staticKey, ourIdentity.getPrivateKey(), staticSalt); - byte[] messageBytes = decrypt(staticKeys.cipherKey, staticKeys.macKey, wrapper.getEncryptedMessage()); - - content = new UnidentifiedSenderMessageContent(messageBytes); - validator.validate(content.getSenderCertificate(), timestamp); - - if (content.getSenderCertificate().getSender().equals(localAddress.getName()) && - content.getSenderCertificate().getSenderDeviceId() == localAddress.getDeviceId()) - { - throw new SelfSendException(); - } - } catch (InvalidKeyException e) { - throw new InvalidMetadataMessageException(e); - } catch (InvalidMacException e) { - throw new InvalidMetadataMessageException(e); - } catch (InvalidCertificateException e) { - throw new InvalidMetadataMessageException(e); - } - - try { - Pair dataPair = new Pair<>(content.getType(), decrypt(content)); - return new Pair<>( - new SignalProtocolAddress(content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()), - dataPair - ); - } catch (InvalidMessageException e) { - throw new ProtocolInvalidMessageException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (InvalidKeyException e) { - throw new ProtocolInvalidKeyException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (NoSessionException e) { - throw new ProtocolNoSessionException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (LegacyMessageException e) { - throw new ProtocolLegacyMessageException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (InvalidVersionException e) { - throw new ProtocolInvalidVersionException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (DuplicateMessageException e) { - throw new ProtocolDuplicateMessageException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (InvalidKeyIdException e) { - throw new ProtocolInvalidKeyIdException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } catch (UntrustedIdentityException e) { - throw new ProtocolUntrustedIdentityException(e, content.getSenderCertificate().getSender(), content.getSenderCertificate().getSenderDeviceId()); - } - } - - public int getSessionVersion(SignalProtocolAddress remoteAddress) { - return new SessionCipher(signalProtocolStore, remoteAddress).getSessionVersion(); - } - - public int getRemoteRegistrationId(SignalProtocolAddress remoteAddress) { - return new SessionCipher(signalProtocolStore, remoteAddress).getRemoteRegistrationId(); - } - - private EphemeralKeys calculateEphemeralKeys(ECPublicKey ephemeralPublic, ECPrivateKey ephemeralPrivate, byte[] salt) throws InvalidKeyException { - try { - byte[] ephemeralSecret = Curve.calculateAgreement(ephemeralPublic, ephemeralPrivate); - byte[] ephemeralDerived = new HKDFv3().deriveSecrets(ephemeralSecret, salt, new byte[0], 96); - byte[][] ephemeralDerivedParts = ByteUtil.split(ephemeralDerived, 32, 32, 32); - - return new EphemeralKeys(ephemeralDerivedParts[0], ephemeralDerivedParts[1], ephemeralDerivedParts[2]); - } catch (ParseException e) { - throw new AssertionError(e); - } - } - - private StaticKeys calculateStaticKeys(ECPublicKey staticPublic, ECPrivateKey staticPrivate, byte[] salt) throws InvalidKeyException { - try { - byte[] staticSecret = Curve.calculateAgreement(staticPublic, staticPrivate); - byte[] staticDerived = new HKDFv3().deriveSecrets(staticSecret, salt, new byte[0], 96); - byte[][] staticDerivedParts = ByteUtil.split(staticDerived, 32, 32, 32); - - return new StaticKeys(staticDerivedParts[1], staticDerivedParts[2]); - } catch (ParseException e) { - throw new AssertionError(e); - } - } - - private byte[] decrypt(UnidentifiedSenderMessageContent message) - throws InvalidVersionException, InvalidMessageException, InvalidKeyException, DuplicateMessageException, InvalidKeyIdException, UntrustedIdentityException, LegacyMessageException, NoSessionException - { - - SignalProtocolAddress sender = new SignalProtocolAddress(message.getSenderCertificate().getSender(), message.getSenderCertificate().getSenderDeviceId()); - - switch (message.getType()) { - case CiphertextMessage.WHISPER_TYPE: return new LokiSessionCipher(signalProtocolStore, sessionResetProtocol, sender).decrypt(new SignalMessage(message.getContent())); - case CiphertextMessage.PREKEY_TYPE: return new LokiSessionCipher(signalProtocolStore, sessionResetProtocol, sender).decrypt(new PreKeySignalMessage(message.getContent())); - case CiphertextMessage.FALLBACK_MESSAGE_TYPE: { - try { - byte[] privateKey = signalProtocolStore.getIdentityKeyPair().getPrivateKey().serialize(); - return new FallbackSessionCipher(privateKey, sender.getName()).decrypt(message.getContent()); - } catch (Exception e) { - throw new InvalidMessageException("Failed to decrypt fallback message."); - } - } - default: throw new InvalidMessageException("Unknown type: " + message.getType()); - } - } - - private byte[] encrypt(SecretKeySpec cipherKey, SecretKeySpec macKey, byte[] plaintext) { - try { - Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding"); - cipher.init(Cipher.ENCRYPT_MODE, cipherKey, new IvParameterSpec(new byte[16])); - - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(macKey); - - byte[] ciphertext = cipher.doFinal(plaintext); - byte[] ourFullMac = mac.doFinal(ciphertext); - byte[] ourMac = ByteUtil.trim(ourFullMac, 10); - - return ByteUtil.combine(ciphertext, ourMac); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } - } - - private byte[] decrypt(SecretKeySpec cipherKey, SecretKeySpec macKey, byte[] ciphertext) throws InvalidMacException { - try { - if (ciphertext.length < 10) { - throw new InvalidMacException("Ciphertext not long enough for MAC!"); - } - - byte[][] ciphertextParts = ByteUtil.split(ciphertext, ciphertext.length - 10, 10); - - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(macKey); - - byte[] digest = mac.doFinal(ciphertextParts[0]); - byte[] ourMac = ByteUtil.trim(digest, 10); - byte[] theirMac = ciphertextParts[1]; - - if (!MessageDigest.isEqual(ourMac, theirMac)) { - throw new InvalidMacException("Bad mac!"); - } - - Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding"); - cipher.init(Cipher.DECRYPT_MODE, cipherKey, new IvParameterSpec(new byte[16])); - - return cipher.doFinal(ciphertextParts[0]); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } - } - - private static class EphemeralKeys { - private final byte[] chainKey; - private final SecretKeySpec cipherKey; - private final SecretKeySpec macKey; - - private EphemeralKeys(byte[] chainKey, byte[] cipherKey, byte[] macKey) { - this.chainKey = chainKey; - this.cipherKey = new SecretKeySpec(cipherKey, "AES"); - this.macKey = new SecretKeySpec(macKey, "HmacSHA256"); - } - } - - private static class StaticKeys { - private final SecretKeySpec cipherKey; - private final SecretKeySpec macKey; - - private StaticKeys(byte[] cipherKey, byte[] macKey) { - this.cipherKey = new SecretKeySpec(cipherKey, "AES"); - this.macKey = new SecretKeySpec(macKey, "HmacSHA256"); - } - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/SelfSendException.java b/service/java/src/main/java/org/signal/libsignal/metadata/SelfSendException.java deleted file mode 100644 index abc1187d1..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/SelfSendException.java +++ /dev/null @@ -1,3 +0,0 @@ -package org.signal.libsignal.metadata; - -public class SelfSendException extends Exception { } diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/SignalProtos.java b/service/java/src/main/java/org/signal/libsignal/metadata/SignalProtos.java deleted file mode 100644 index c12b2b784..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/SignalProtos.java +++ /dev/null @@ -1,2959 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: UnidentifiedDelivery.proto - -package org.signal.libsignal.metadata; - -public final class SignalProtos { - private SignalProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface ServerCertificateOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes certificate = 1; - /** - * optional bytes certificate = 1; - */ - boolean hasCertificate(); - /** - * optional bytes certificate = 1; - */ - com.google.protobuf.ByteString getCertificate(); - - // optional bytes signature = 2; - /** - * optional bytes signature = 2; - */ - boolean hasSignature(); - /** - * optional bytes signature = 2; - */ - com.google.protobuf.ByteString getSignature(); - } - /** - * Protobuf type {@code signal.ServerCertificate} - */ - public static final class ServerCertificate extends - com.google.protobuf.GeneratedMessage - implements ServerCertificateOrBuilder { - // Use ServerCertificate.newBuilder() to construct. - private ServerCertificate(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ServerCertificate(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ServerCertificate defaultInstance; - public static ServerCertificate getDefaultInstance() { - return defaultInstance; - } - - public ServerCertificate getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ServerCertificate( - 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; - certificate_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - signature_ = 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.ServerCertificate.class, org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ServerCertificate parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ServerCertificate(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface CertificateOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 id = 1; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional bytes key = 2; - /** - * optional bytes key = 2; - */ - boolean hasKey(); - /** - * optional bytes key = 2; - */ - com.google.protobuf.ByteString getKey(); - } - /** - * Protobuf type {@code signal.ServerCertificate.Certificate} - */ - public static final class Certificate extends - com.google.protobuf.GeneratedMessage - implements CertificateOrBuilder { - // Use Certificate.newBuilder() to construct. - private Certificate(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Certificate(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Certificate defaultInstance; - public static Certificate getDefaultInstance() { - return defaultInstance; - } - - public Certificate getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Certificate( - 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; - 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_Certificate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_Certificate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.class, org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Certificate parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Certificate(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional bytes key = 2; - public static final int KEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString key_; - /** - * optional bytes key = 2; - */ - public boolean hasKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes key = 2; - */ - public com.google.protobuf.ByteString getKey() { - return key_; - } - - private void initFields() { - id_ = 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, id_); - } - 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, id_); - } - 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.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate 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.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate 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 signal.ServerCertificate.Certificate} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.signal.libsignal.metadata.SignalProtos.ServerCertificate.CertificateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_Certificate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_Certificate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.class, org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.Builder.class); - } - - // Construct using org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.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); - 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_Certificate_descriptor; - } - - public org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate getDefaultInstanceForType() { - return org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.getDefaultInstance(); - } - - public org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate build() { - org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate buildPartial() { - org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate result = new org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate(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.key_ = key_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate) { - return mergeFrom((org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate other) { - if (other == org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - 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.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Certificate) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 id = 1; - private int id_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - onChanged(); - return this; - } - - // optional bytes key = 2; - private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes key = 2; - */ - public boolean hasKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes key = 2; - */ - public com.google.protobuf.ByteString getKey() { - return key_; - } - /** - * optional bytes key = 2; - */ - public Builder setKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - key_ = value; - onChanged(); - return this; - } - /** - * optional bytes key = 2; - */ - public Builder clearKey() { - bitField0_ = (bitField0_ & ~0x00000002); - key_ = getDefaultInstance().getKey(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signal.ServerCertificate.Certificate) - } - - static { - defaultInstance = new Certificate(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signal.ServerCertificate.Certificate) - } - - private int bitField0_; - // optional bytes certificate = 1; - public static final int CERTIFICATE_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString certificate_; - /** - * optional bytes certificate = 1; - */ - public boolean hasCertificate() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes certificate = 1; - */ - public com.google.protobuf.ByteString getCertificate() { - return certificate_; - } - - // optional bytes signature = 2; - public static final int SIGNATURE_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString signature_; - /** - * optional bytes signature = 2; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes signature = 2; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - - private void initFields() { - certificate_ = com.google.protobuf.ByteString.EMPTY; - signature_ = 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, certificate_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, signature_); - } - 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, certificate_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, signature_); - } - 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.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.ServerCertificate 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.signal.libsignal.metadata.SignalProtos.ServerCertificate 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 signal.ServerCertificate} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.signal.libsignal.metadata.SignalProtos.ServerCertificateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.ServerCertificate.class, org.signal.libsignal.metadata.SignalProtos.ServerCertificate.Builder.class); - } - - // Construct using org.signal.libsignal.metadata.SignalProtos.ServerCertificate.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(); - certificate_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - signature_ = 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_ServerCertificate_descriptor; - } - - public org.signal.libsignal.metadata.SignalProtos.ServerCertificate getDefaultInstanceForType() { - return org.signal.libsignal.metadata.SignalProtos.ServerCertificate.getDefaultInstance(); - } - - public org.signal.libsignal.metadata.SignalProtos.ServerCertificate build() { - org.signal.libsignal.metadata.SignalProtos.ServerCertificate result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.signal.libsignal.metadata.SignalProtos.ServerCertificate buildPartial() { - org.signal.libsignal.metadata.SignalProtos.ServerCertificate result = new org.signal.libsignal.metadata.SignalProtos.ServerCertificate(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.certificate_ = certificate_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.signature_ = signature_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.signal.libsignal.metadata.SignalProtos.ServerCertificate) { - return mergeFrom((org.signal.libsignal.metadata.SignalProtos.ServerCertificate)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.signal.libsignal.metadata.SignalProtos.ServerCertificate other) { - if (other == org.signal.libsignal.metadata.SignalProtos.ServerCertificate.getDefaultInstance()) return this; - if (other.hasCertificate()) { - setCertificate(other.getCertificate()); - } - if (other.hasSignature()) { - setSignature(other.getSignature()); - } - 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.signal.libsignal.metadata.SignalProtos.ServerCertificate parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.signal.libsignal.metadata.SignalProtos.ServerCertificate) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes certificate = 1; - private com.google.protobuf.ByteString certificate_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes certificate = 1; - */ - public boolean hasCertificate() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes certificate = 1; - */ - public com.google.protobuf.ByteString getCertificate() { - return certificate_; - } - /** - * optional bytes certificate = 1; - */ - public Builder setCertificate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - certificate_ = value; - onChanged(); - return this; - } - /** - * optional bytes certificate = 1; - */ - public Builder clearCertificate() { - bitField0_ = (bitField0_ & ~0x00000001); - certificate_ = getDefaultInstance().getCertificate(); - onChanged(); - return this; - } - - // optional bytes signature = 2; - private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes signature = 2; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes signature = 2; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - /** - * optional bytes signature = 2; - */ - public Builder setSignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - signature_ = value; - onChanged(); - return this; - } - /** - * optional bytes signature = 2; - */ - public Builder clearSignature() { - bitField0_ = (bitField0_ & ~0x00000002); - signature_ = getDefaultInstance().getSignature(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signal.ServerCertificate) - } - - static { - defaultInstance = new ServerCertificate(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signal.ServerCertificate) - } - - public interface SenderCertificateOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string sender = 1; - /** - * optional string sender = 1; - */ - boolean hasSender(); - /** - * optional string sender = 1; - */ - java.lang.String getSender(); - /** - * optional string sender = 1; - */ - com.google.protobuf.ByteString - getSenderBytes(); - - // optional uint32 senderDevice = 2; - /** - * optional uint32 senderDevice = 2; - */ - boolean hasSenderDevice(); - /** - * optional uint32 senderDevice = 2; - */ - int getSenderDevice(); - } - /** - * Protobuf type {@code signal.SenderCertificate} - */ - public static final class SenderCertificate extends - com.google.protobuf.GeneratedMessage - implements SenderCertificateOrBuilder { - // Use SenderCertificate.newBuilder() to construct. - private SenderCertificate(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SenderCertificate(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SenderCertificate defaultInstance; - public static SenderCertificate getDefaultInstance() { - return defaultInstance; - } - - public SenderCertificate getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SenderCertificate( - 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; - sender_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - senderDevice_ = input.readUInt32(); - 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_SenderCertificate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_SenderCertificate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.SenderCertificate.class, org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SenderCertificate parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SenderCertificate(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string sender = 1; - public static final int SENDER_FIELD_NUMBER = 1; - private java.lang.Object sender_; - /** - * optional string sender = 1; - */ - public boolean hasSender() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string sender = 1; - */ - public java.lang.String getSender() { - java.lang.Object ref = sender_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - sender_ = s; - } - return s; - } - } - /** - * optional string sender = 1; - */ - public com.google.protobuf.ByteString - getSenderBytes() { - java.lang.Object ref = sender_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 senderDevice = 2; - public static final int SENDERDEVICE_FIELD_NUMBER = 2; - private int senderDevice_; - /** - * optional uint32 senderDevice = 2; - */ - public boolean hasSenderDevice() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 senderDevice = 2; - */ - public int getSenderDevice() { - return senderDevice_; - } - - private void initFields() { - sender_ = ""; - senderDevice_ = 0; - } - 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, getSenderBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, senderDevice_); - } - 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, getSenderBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, senderDevice_); - } - 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.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.SenderCertificate 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.signal.libsignal.metadata.SignalProtos.SenderCertificate 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 signal.SenderCertificate} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_SenderCertificate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_SenderCertificate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.SenderCertificate.class, org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder.class); - } - - // Construct using org.signal.libsignal.metadata.SignalProtos.SenderCertificate.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(); - sender_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - senderDevice_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_SenderCertificate_descriptor; - } - - public org.signal.libsignal.metadata.SignalProtos.SenderCertificate getDefaultInstanceForType() { - return org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance(); - } - - public org.signal.libsignal.metadata.SignalProtos.SenderCertificate build() { - org.signal.libsignal.metadata.SignalProtos.SenderCertificate result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.signal.libsignal.metadata.SignalProtos.SenderCertificate buildPartial() { - org.signal.libsignal.metadata.SignalProtos.SenderCertificate result = new org.signal.libsignal.metadata.SignalProtos.SenderCertificate(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.sender_ = sender_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.senderDevice_ = senderDevice_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.signal.libsignal.metadata.SignalProtos.SenderCertificate) { - return mergeFrom((org.signal.libsignal.metadata.SignalProtos.SenderCertificate)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.signal.libsignal.metadata.SignalProtos.SenderCertificate other) { - if (other == org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance()) return this; - if (other.hasSender()) { - bitField0_ |= 0x00000001; - sender_ = other.sender_; - onChanged(); - } - if (other.hasSenderDevice()) { - setSenderDevice(other.getSenderDevice()); - } - 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.signal.libsignal.metadata.SignalProtos.SenderCertificate parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.signal.libsignal.metadata.SignalProtos.SenderCertificate) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string sender = 1; - private java.lang.Object sender_ = ""; - /** - * optional string sender = 1; - */ - public boolean hasSender() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string sender = 1; - */ - public java.lang.String getSender() { - java.lang.Object ref = sender_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - sender_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string sender = 1; - */ - public com.google.protobuf.ByteString - getSenderBytes() { - java.lang.Object ref = sender_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string sender = 1; - */ - public Builder setSender( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - sender_ = value; - onChanged(); - return this; - } - /** - * optional string sender = 1; - */ - public Builder clearSender() { - bitField0_ = (bitField0_ & ~0x00000001); - sender_ = getDefaultInstance().getSender(); - onChanged(); - return this; - } - /** - * optional string sender = 1; - */ - public Builder setSenderBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - sender_ = value; - onChanged(); - return this; - } - - // optional uint32 senderDevice = 2; - private int senderDevice_ ; - /** - * optional uint32 senderDevice = 2; - */ - public boolean hasSenderDevice() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 senderDevice = 2; - */ - public int getSenderDevice() { - return senderDevice_; - } - /** - * optional uint32 senderDevice = 2; - */ - public Builder setSenderDevice(int value) { - bitField0_ |= 0x00000002; - senderDevice_ = value; - onChanged(); - return this; - } - /** - * optional uint32 senderDevice = 2; - */ - public Builder clearSenderDevice() { - bitField0_ = (bitField0_ & ~0x00000002); - senderDevice_ = 0; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signal.SenderCertificate) - } - - static { - defaultInstance = new SenderCertificate(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signal.SenderCertificate) - } - - public interface UnidentifiedSenderMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes ephemeralPublic = 1; - /** - * optional bytes ephemeralPublic = 1; - */ - boolean hasEphemeralPublic(); - /** - * optional bytes ephemeralPublic = 1; - */ - com.google.protobuf.ByteString getEphemeralPublic(); - - // optional bytes encryptedStatic = 2; - /** - * optional bytes encryptedStatic = 2; - */ - boolean hasEncryptedStatic(); - /** - * optional bytes encryptedStatic = 2; - */ - com.google.protobuf.ByteString getEncryptedStatic(); - - // optional bytes encryptedMessage = 3; - /** - * optional bytes encryptedMessage = 3; - */ - boolean hasEncryptedMessage(); - /** - * optional bytes encryptedMessage = 3; - */ - com.google.protobuf.ByteString getEncryptedMessage(); - } - /** - * Protobuf type {@code signal.UnidentifiedSenderMessage} - */ - public static final class UnidentifiedSenderMessage extends - com.google.protobuf.GeneratedMessage - implements UnidentifiedSenderMessageOrBuilder { - // Use UnidentifiedSenderMessage.newBuilder() to construct. - private UnidentifiedSenderMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private UnidentifiedSenderMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final UnidentifiedSenderMessage defaultInstance; - public static UnidentifiedSenderMessage getDefaultInstance() { - return defaultInstance; - } - - public UnidentifiedSenderMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private UnidentifiedSenderMessage( - 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; - ephemeralPublic_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - encryptedStatic_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - encryptedMessage_ = 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.class, org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public UnidentifiedSenderMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new UnidentifiedSenderMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface MessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - boolean hasType(); - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type getType(); - - // optional .signal.SenderCertificate senderCertificate = 2; - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - boolean hasSenderCertificate(); - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - org.signal.libsignal.metadata.SignalProtos.SenderCertificate getSenderCertificate(); - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder getSenderCertificateOrBuilder(); - - // optional bytes content = 3; - /** - * optional bytes content = 3; - */ - boolean hasContent(); - /** - * optional bytes content = 3; - */ - com.google.protobuf.ByteString getContent(); - } - /** - * Protobuf type {@code signal.UnidentifiedSenderMessage.Message} - */ - public static final class Message extends - com.google.protobuf.GeneratedMessage - implements MessageOrBuilder { - // Use Message.newBuilder() to construct. - private Message(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Message(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Message defaultInstance; - public static Message getDefaultInstance() { - return defaultInstance; - } - - public Message getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Message( - 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: { - int rawValue = input.readEnum(); - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type value = org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(1, rawValue); - } else { - bitField0_ |= 0x00000001; - type_ = value; - } - break; - } - case 18: { - org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = senderCertificate_.toBuilder(); - } - senderCertificate_ = input.readMessage(org.signal.libsignal.metadata.SignalProtos.SenderCertificate.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(senderCertificate_); - senderCertificate_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - bitField0_ |= 0x00000004; - content_ = 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_Message_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_Message_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.class, org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Message parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Message(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signal.UnidentifiedSenderMessage.Message.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * PREKEY_MESSAGE = 1; - */ - PREKEY_MESSAGE(0, 1), - /** - * MESSAGE = 2; - */ - MESSAGE(1, 2), - /** - * FALLBACK_MESSAGE = 3; - */ - FALLBACK_MESSAGE(2, 3), - ; - - /** - * PREKEY_MESSAGE = 1; - */ - public static final int PREKEY_MESSAGE_VALUE = 1; - /** - * MESSAGE = 2; - */ - public static final int MESSAGE_VALUE = 2; - /** - * FALLBACK_MESSAGE = 3; - */ - public static final int FALLBACK_MESSAGE_VALUE = 3; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 1: return PREKEY_MESSAGE; - case 2: return MESSAGE; - case 3: return FALLBACK_MESSAGE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signal.UnidentifiedSenderMessage.Message.Type) - } - - private int bitField0_; - // optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - public static final int TYPE_FIELD_NUMBER = 1; - private org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type type_; - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type getType() { - return type_; - } - - // optional .signal.SenderCertificate senderCertificate = 2; - public static final int SENDERCERTIFICATE_FIELD_NUMBER = 2; - private org.signal.libsignal.metadata.SignalProtos.SenderCertificate senderCertificate_; - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public boolean hasSenderCertificate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public org.signal.libsignal.metadata.SignalProtos.SenderCertificate getSenderCertificate() { - return senderCertificate_; - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder getSenderCertificateOrBuilder() { - return senderCertificate_; - } - - // optional bytes content = 3; - public static final int CONTENT_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString content_; - /** - * optional bytes content = 3; - */ - public boolean hasContent() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes content = 3; - */ - public com.google.protobuf.ByteString getContent() { - return content_; - } - - private void initFields() { - type_ = org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type.PREKEY_MESSAGE; - senderCertificate_ = org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance(); - content_ = 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.writeEnum(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(2, senderCertificate_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, content_); - } - 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 - .computeEnumSize(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, senderCertificate_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, content_); - } - 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.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message 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.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message 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 signal.UnidentifiedSenderMessage.Message} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.MessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_Message_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_Message_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.class, org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Builder.class); - } - - // Construct using org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getSenderCertificateFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - type_ = org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type.PREKEY_MESSAGE; - bitField0_ = (bitField0_ & ~0x00000001); - if (senderCertificateBuilder_ == null) { - senderCertificate_ = org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance(); - } else { - senderCertificateBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - content_ = 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_Message_descriptor; - } - - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message getDefaultInstanceForType() { - return org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.getDefaultInstance(); - } - - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message build() { - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message buildPartial() { - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message result = new org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.type_ = type_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - if (senderCertificateBuilder_ == null) { - result.senderCertificate_ = senderCertificate_; - } else { - result.senderCertificate_ = senderCertificateBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.content_ = content_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message) { - return mergeFrom((org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message other) { - if (other == org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.getDefaultInstance()) return this; - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasSenderCertificate()) { - mergeSenderCertificate(other.getSenderCertificate()); - } - if (other.hasContent()) { - setContent(other.getContent()); - } - 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.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - private org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type type_ = org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type.PREKEY_MESSAGE; - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type getType() { - return type_; - } - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - public Builder setType(org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signal.UnidentifiedSenderMessage.Message.Type type = 1; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Message.Type.PREKEY_MESSAGE; - onChanged(); - return this; - } - - // optional .signal.SenderCertificate senderCertificate = 2; - private org.signal.libsignal.metadata.SignalProtos.SenderCertificate senderCertificate_ = org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.signal.libsignal.metadata.SignalProtos.SenderCertificate, org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder, org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder> senderCertificateBuilder_; - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public boolean hasSenderCertificate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public org.signal.libsignal.metadata.SignalProtos.SenderCertificate getSenderCertificate() { - if (senderCertificateBuilder_ == null) { - return senderCertificate_; - } else { - return senderCertificateBuilder_.getMessage(); - } - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public Builder setSenderCertificate(org.signal.libsignal.metadata.SignalProtos.SenderCertificate value) { - if (senderCertificateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - senderCertificate_ = value; - onChanged(); - } else { - senderCertificateBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public Builder setSenderCertificate( - org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder builderForValue) { - if (senderCertificateBuilder_ == null) { - senderCertificate_ = builderForValue.build(); - onChanged(); - } else { - senderCertificateBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public Builder mergeSenderCertificate(org.signal.libsignal.metadata.SignalProtos.SenderCertificate value) { - if (senderCertificateBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - senderCertificate_ != org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance()) { - senderCertificate_ = - org.signal.libsignal.metadata.SignalProtos.SenderCertificate.newBuilder(senderCertificate_).mergeFrom(value).buildPartial(); - } else { - senderCertificate_ = value; - } - onChanged(); - } else { - senderCertificateBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public Builder clearSenderCertificate() { - if (senderCertificateBuilder_ == null) { - senderCertificate_ = org.signal.libsignal.metadata.SignalProtos.SenderCertificate.getDefaultInstance(); - onChanged(); - } else { - senderCertificateBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder getSenderCertificateBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getSenderCertificateFieldBuilder().getBuilder(); - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - public org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder getSenderCertificateOrBuilder() { - if (senderCertificateBuilder_ != null) { - return senderCertificateBuilder_.getMessageOrBuilder(); - } else { - return senderCertificate_; - } - } - /** - * optional .signal.SenderCertificate senderCertificate = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.signal.libsignal.metadata.SignalProtos.SenderCertificate, org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder, org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder> - getSenderCertificateFieldBuilder() { - if (senderCertificateBuilder_ == null) { - senderCertificateBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.signal.libsignal.metadata.SignalProtos.SenderCertificate, org.signal.libsignal.metadata.SignalProtos.SenderCertificate.Builder, org.signal.libsignal.metadata.SignalProtos.SenderCertificateOrBuilder>( - senderCertificate_, - getParentForChildren(), - isClean()); - senderCertificate_ = null; - } - return senderCertificateBuilder_; - } - - // optional bytes content = 3; - private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes content = 3; - */ - public boolean hasContent() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes content = 3; - */ - public com.google.protobuf.ByteString getContent() { - return content_; - } - /** - * optional bytes content = 3; - */ - public Builder setContent(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - content_ = value; - onChanged(); - return this; - } - /** - * optional bytes content = 3; - */ - public Builder clearContent() { - bitField0_ = (bitField0_ & ~0x00000004); - content_ = getDefaultInstance().getContent(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signal.UnidentifiedSenderMessage.Message) - } - - static { - defaultInstance = new Message(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signal.UnidentifiedSenderMessage.Message) - } - - private int bitField0_; - // optional bytes ephemeralPublic = 1; - public static final int EPHEMERALPUBLIC_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString ephemeralPublic_; - /** - * optional bytes ephemeralPublic = 1; - */ - public boolean hasEphemeralPublic() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ephemeralPublic = 1; - */ - public com.google.protobuf.ByteString getEphemeralPublic() { - return ephemeralPublic_; - } - - // optional bytes encryptedStatic = 2; - public static final int ENCRYPTEDSTATIC_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString encryptedStatic_; - /** - * optional bytes encryptedStatic = 2; - */ - public boolean hasEncryptedStatic() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes encryptedStatic = 2; - */ - public com.google.protobuf.ByteString getEncryptedStatic() { - return encryptedStatic_; - } - - // optional bytes encryptedMessage = 3; - public static final int ENCRYPTEDMESSAGE_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString encryptedMessage_; - /** - * optional bytes encryptedMessage = 3; - */ - public boolean hasEncryptedMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes encryptedMessage = 3; - */ - public com.google.protobuf.ByteString getEncryptedMessage() { - return encryptedMessage_; - } - - private void initFields() { - ephemeralPublic_ = com.google.protobuf.ByteString.EMPTY; - encryptedStatic_ = com.google.protobuf.ByteString.EMPTY; - encryptedMessage_ = 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, ephemeralPublic_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, encryptedStatic_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, encryptedMessage_); - } - 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, ephemeralPublic_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, encryptedStatic_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, encryptedMessage_); - } - 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.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage 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.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage 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 signal.UnidentifiedSenderMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.class, org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.Builder.class); - } - - // Construct using org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.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(); - ephemeralPublic_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - encryptedStatic_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - encryptedMessage_ = 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.signal.libsignal.metadata.SignalProtos.internal_static_signal_UnidentifiedSenderMessage_descriptor; - } - - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage getDefaultInstanceForType() { - return org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.getDefaultInstance(); - } - - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage build() { - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage buildPartial() { - org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage result = new org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.ephemeralPublic_ = ephemeralPublic_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.encryptedStatic_ = encryptedStatic_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.encryptedMessage_ = encryptedMessage_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage) { - return mergeFrom((org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage other) { - if (other == org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage.getDefaultInstance()) return this; - if (other.hasEphemeralPublic()) { - setEphemeralPublic(other.getEphemeralPublic()); - } - if (other.hasEncryptedStatic()) { - setEncryptedStatic(other.getEncryptedStatic()); - } - if (other.hasEncryptedMessage()) { - setEncryptedMessage(other.getEncryptedMessage()); - } - 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.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.signal.libsignal.metadata.SignalProtos.UnidentifiedSenderMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes ephemeralPublic = 1; - private com.google.protobuf.ByteString ephemeralPublic_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ephemeralPublic = 1; - */ - public boolean hasEphemeralPublic() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ephemeralPublic = 1; - */ - public com.google.protobuf.ByteString getEphemeralPublic() { - return ephemeralPublic_; - } - /** - * optional bytes ephemeralPublic = 1; - */ - public Builder setEphemeralPublic(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - ephemeralPublic_ = value; - onChanged(); - return this; - } - /** - * optional bytes ephemeralPublic = 1; - */ - public Builder clearEphemeralPublic() { - bitField0_ = (bitField0_ & ~0x00000001); - ephemeralPublic_ = getDefaultInstance().getEphemeralPublic(); - onChanged(); - return this; - } - - // optional bytes encryptedStatic = 2; - private com.google.protobuf.ByteString encryptedStatic_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes encryptedStatic = 2; - */ - public boolean hasEncryptedStatic() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes encryptedStatic = 2; - */ - public com.google.protobuf.ByteString getEncryptedStatic() { - return encryptedStatic_; - } - /** - * optional bytes encryptedStatic = 2; - */ - public Builder setEncryptedStatic(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - encryptedStatic_ = value; - onChanged(); - return this; - } - /** - * optional bytes encryptedStatic = 2; - */ - public Builder clearEncryptedStatic() { - bitField0_ = (bitField0_ & ~0x00000002); - encryptedStatic_ = getDefaultInstance().getEncryptedStatic(); - onChanged(); - return this; - } - - // optional bytes encryptedMessage = 3; - private com.google.protobuf.ByteString encryptedMessage_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes encryptedMessage = 3; - */ - public boolean hasEncryptedMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes encryptedMessage = 3; - */ - public com.google.protobuf.ByteString getEncryptedMessage() { - return encryptedMessage_; - } - /** - * optional bytes encryptedMessage = 3; - */ - public Builder setEncryptedMessage(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - encryptedMessage_ = value; - onChanged(); - return this; - } - /** - * optional bytes encryptedMessage = 3; - */ - public Builder clearEncryptedMessage() { - bitField0_ = (bitField0_ & ~0x00000004); - encryptedMessage_ = getDefaultInstance().getEncryptedMessage(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signal.UnidentifiedSenderMessage) - } - - static { - defaultInstance = new UnidentifiedSenderMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signal.UnidentifiedSenderMessage) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signal_ServerCertificate_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signal_ServerCertificate_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signal_ServerCertificate_Certificate_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signal_ServerCertificate_Certificate_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signal_SenderCertificate_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signal_SenderCertificate_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signal_UnidentifiedSenderMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signal_UnidentifiedSenderMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signal_UnidentifiedSenderMessage_Message_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signal_UnidentifiedSenderMessage_Message_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\032UnidentifiedDelivery.proto\022\006signal\"c\n\021" + - "ServerCertificate\022\023\n\013certificate\030\001 \001(\014\022\021" + - "\n\tsignature\030\002 \001(\014\032&\n\013Certificate\022\n\n\002id\030\001" + - " \001(\r\022\013\n\003key\030\002 \001(\014\"9\n\021SenderCertificate\022\016" + - "\n\006sender\030\001 \001(\t\022\024\n\014senderDevice\030\002 \001(\r\"\267\002\n" + - "\031UnidentifiedSenderMessage\022\027\n\017ephemeralP" + - "ublic\030\001 \001(\014\022\027\n\017encryptedStatic\030\002 \001(\014\022\030\n\020" + - "encryptedMessage\030\003 \001(\014\032\315\001\n\007Message\022<\n\004ty" + - "pe\030\001 \001(\0162..signal.UnidentifiedSenderMess" + - "age.Message.Type\0224\n\021senderCertificate\030\002 ", - "\001(\0132\031.signal.SenderCertificate\022\017\n\007conten" + - "t\030\003 \001(\014\"=\n\004Type\022\022\n\016PREKEY_MESSAGE\020\001\022\013\n\007M" + - "ESSAGE\020\002\022\024\n\020FALLBACK_MESSAGE\020\003B-\n\035org.si" + - "gnal.libsignal.metadataB\014SignalProtos" - }; - 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_signal_ServerCertificate_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_signal_ServerCertificate_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signal_ServerCertificate_descriptor, - new java.lang.String[] { "Certificate", "Signature", }); - internal_static_signal_ServerCertificate_Certificate_descriptor = - internal_static_signal_ServerCertificate_descriptor.getNestedTypes().get(0); - internal_static_signal_ServerCertificate_Certificate_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signal_ServerCertificate_Certificate_descriptor, - new java.lang.String[] { "Id", "Key", }); - internal_static_signal_SenderCertificate_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_signal_SenderCertificate_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signal_SenderCertificate_descriptor, - new java.lang.String[] { "Sender", "SenderDevice", }); - internal_static_signal_UnidentifiedSenderMessage_descriptor = - getDescriptor().getMessageTypes().get(2); - internal_static_signal_UnidentifiedSenderMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signal_UnidentifiedSenderMessage_descriptor, - new java.lang.String[] { "EphemeralPublic", "EncryptedStatic", "EncryptedMessage", }); - internal_static_signal_UnidentifiedSenderMessage_Message_descriptor = - internal_static_signal_UnidentifiedSenderMessage_descriptor.getNestedTypes().get(0); - internal_static_signal_UnidentifiedSenderMessage_Message_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signal_UnidentifiedSenderMessage_Message_descriptor, - new java.lang.String[] { "Type", "SenderCertificate", "Content", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/CertificateValidator.java b/service/java/src/main/java/org/signal/libsignal/metadata/certificate/CertificateValidator.java deleted file mode 100644 index 9db2535e5..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/CertificateValidator.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.signal.libsignal.metadata.certificate; - - -import java.util.HashSet; -import java.util.Set; - -public class CertificateValidator { - - @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") - private static final Set REVOKED = new HashSet() {{ - - }}; - - public void validate(SenderCertificate certificate, long validationTime) throws InvalidCertificateException { - if (certificate.getSender() == null || certificate.getSenderDeviceId() <= 0) { - throw new InvalidCertificateException("Sender or sender device id is invalid"); - } - } - - // VisibleForTesting - void validate(ServerCertificate certificate) throws InvalidCertificateException { - } -} - diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/InvalidCertificateException.java b/service/java/src/main/java/org/signal/libsignal/metadata/certificate/InvalidCertificateException.java deleted file mode 100644 index f2ec14634..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/InvalidCertificateException.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.signal.libsignal.metadata.certificate; - - -public class InvalidCertificateException extends Exception { - public InvalidCertificateException(String s) { - super(s); - } - - public InvalidCertificateException(Exception e) { - super(e); - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/SenderCertificate.java b/service/java/src/main/java/org/signal/libsignal/metadata/certificate/SenderCertificate.java deleted file mode 100644 index 077bb1fb6..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/SenderCertificate.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.signal.libsignal.metadata.certificate; - - -import com.google.protobuf.InvalidProtocolBufferException; - -import org.signal.libsignal.metadata.SignalProtos; - - -public class SenderCertificate { - - private final int senderDeviceId; - private final String sender; - - private final byte[] serialized; - private final byte[] certificate; - - public SenderCertificate(byte[] serialized) throws InvalidCertificateException { - try { - SignalProtos.SenderCertificate certificate = SignalProtos.SenderCertificate.parseFrom(serialized); - - if (!certificate.hasSenderDevice() || !certificate.hasSender()) { - throw new InvalidCertificateException("Missing fields"); - } - - this.sender = certificate.getSender(); - this.senderDeviceId = certificate.getSenderDevice(); - - this.serialized = serialized; - this.certificate = certificate.toByteArray(); - } catch (InvalidProtocolBufferException e) { - throw new InvalidCertificateException(e); - } - } - - - public int getSenderDeviceId() { - return senderDeviceId; - } - - public String getSender() { - return sender; - } - - public byte[] getSerialized() { - return serialized; - } - - public byte[] getCertificate() { - return certificate; - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/ServerCertificate.java b/service/java/src/main/java/org/signal/libsignal/metadata/certificate/ServerCertificate.java deleted file mode 100644 index 34c24f591..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/certificate/ServerCertificate.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.signal.libsignal.metadata.certificate; - - -import com.google.protobuf.InvalidProtocolBufferException; - -import org.signal.libsignal.metadata.SignalProtos; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; - -public class ServerCertificate { - - private final int keyId; - private final ECPublicKey key; - - private final byte[] serialized; - private final byte[] certificate; - private final byte[] signature; - - public ServerCertificate(byte[] serialized) throws InvalidCertificateException { - try { - SignalProtos.ServerCertificate wrapper = SignalProtos.ServerCertificate.parseFrom(serialized); - - if (!wrapper.hasCertificate() || !wrapper.hasSignature()) { - throw new InvalidCertificateException("Missing fields"); - } - - SignalProtos.ServerCertificate.Certificate certificate = SignalProtos.ServerCertificate.Certificate.parseFrom(wrapper.getCertificate()); - - if (!certificate.hasId() || !certificate.hasKey()) { - throw new InvalidCertificateException("Missing fields"); - } - - this.keyId = certificate.getId(); - this.key = Curve.decodePoint(certificate.getKey().toByteArray(), 0); - this.serialized = serialized; - this.certificate = wrapper.getCertificate().toByteArray(); - this.signature = wrapper.getSignature().toByteArray(); - - } catch (InvalidProtocolBufferException e) { - throw new InvalidCertificateException(e); - } catch (InvalidKeyException e) { - throw new InvalidCertificateException(e); - } - } - - public int getKeyId() { - return keyId; - } - - public ECPublicKey getKey() { - return key; - } - - public byte[] getSerialized() { - return serialized; - } - - public byte[] getCertificate() { - return certificate; - } - - public byte[] getSignature() { - return signature; - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessage.java b/service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessage.java deleted file mode 100644 index c79fcb81e..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessage.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.signal.libsignal.metadata.protocol; - - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.signal.libsignal.metadata.InvalidMetadataMessageException; -import org.signal.libsignal.metadata.InvalidMetadataVersionException; -import org.signal.libsignal.metadata.SignalProtos; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.ByteUtil; - -public class UnidentifiedSenderMessage { - - private static final int CIPHERTEXT_VERSION = 1; - - private final int version; - private final ECPublicKey ephemeral; - private final byte[] encryptedStatic; - private final byte[] encryptedMessage; - private final byte[] serialized; - - public UnidentifiedSenderMessage(byte[] serialized) - throws InvalidMetadataMessageException, InvalidMetadataVersionException - { - try { - this.version = ByteUtil.highBitsToInt(serialized[0]); - - if (version > CIPHERTEXT_VERSION) { - throw new InvalidMetadataVersionException("Unknown version: " + this.version); - } - - SignalProtos.UnidentifiedSenderMessage unidentifiedSenderMessage = SignalProtos.UnidentifiedSenderMessage.parseFrom(ByteString.copyFrom(serialized, 1, serialized.length - 1)); - - if (!unidentifiedSenderMessage.hasEphemeralPublic() || - !unidentifiedSenderMessage.hasEncryptedStatic() || - !unidentifiedSenderMessage.hasEncryptedMessage()) - { - throw new InvalidMetadataMessageException("Missing fields"); - } - - this.ephemeral = Curve.decodePoint(unidentifiedSenderMessage.getEphemeralPublic().toByteArray(), 0); - this.encryptedStatic = unidentifiedSenderMessage.getEncryptedStatic().toByteArray(); - this.encryptedMessage = unidentifiedSenderMessage.getEncryptedMessage().toByteArray(); - this.serialized = serialized; - } catch (InvalidProtocolBufferException e) { - throw new InvalidMetadataMessageException(e); - } catch (InvalidKeyException e) { - throw new InvalidMetadataMessageException(e); - } - } - - public UnidentifiedSenderMessage(ECPublicKey ephemeral, byte[] encryptedStatic, byte[] encryptedMessage) { - this.version = CIPHERTEXT_VERSION; - this.ephemeral = ephemeral; - this.encryptedStatic = encryptedStatic; - this.encryptedMessage = encryptedMessage; - - byte[] versionBytes = {ByteUtil.intsToByteHighAndLow(CIPHERTEXT_VERSION, CIPHERTEXT_VERSION)}; - byte[] messageBytes = SignalProtos.UnidentifiedSenderMessage.newBuilder() - .setEncryptedMessage(ByteString.copyFrom(encryptedMessage)) - .setEncryptedStatic(ByteString.copyFrom(encryptedStatic)) - .setEphemeralPublic(ByteString.copyFrom(ephemeral.serialize())) - .build() - .toByteArray(); - - this.serialized = ByteUtil.combine(versionBytes, messageBytes); - } - - public ECPublicKey getEphemeral() { - return ephemeral; - } - - public byte[] getEncryptedStatic() { - return encryptedStatic; - } - - public byte[] getEncryptedMessage() { - return encryptedMessage; - } - - public byte[] getSerialized() { - return serialized; - } -} diff --git a/service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessageContent.java b/service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessageContent.java deleted file mode 100644 index 7d56554d1..000000000 --- a/service/java/src/main/java/org/signal/libsignal/metadata/protocol/UnidentifiedSenderMessageContent.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.signal.libsignal.metadata.protocol; - - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.signal.libsignal.metadata.InvalidMetadataMessageException; -import org.signal.libsignal.metadata.SignalProtos; -import org.signal.libsignal.metadata.certificate.InvalidCertificateException; -import org.signal.libsignal.metadata.certificate.SenderCertificate; -import org.whispersystems.libsignal.protocol.CiphertextMessage; - -public class UnidentifiedSenderMessageContent { - - private final int type; - private final SenderCertificate senderCertificate; - private final byte[] content; - private final byte[] serialized; - - public UnidentifiedSenderMessageContent(byte[] serialized) throws InvalidMetadataMessageException, InvalidCertificateException { - try { - SignalProtos.UnidentifiedSenderMessage.Message message = SignalProtos.UnidentifiedSenderMessage.Message.parseFrom(serialized); - - if (!message.hasType() || !message.hasSenderCertificate() || !message.hasContent()) { - throw new InvalidMetadataMessageException("Missing fields"); - } - - switch (message.getType()) { - case MESSAGE: this.type = CiphertextMessage.WHISPER_TYPE; break; - case PREKEY_MESSAGE: this.type = CiphertextMessage.PREKEY_TYPE; break; - case FALLBACK_MESSAGE: this.type = CiphertextMessage.FALLBACK_MESSAGE_TYPE; break; - default: throw new InvalidMetadataMessageException("Unknown type: " + message.getType().getNumber()); - } - - this.senderCertificate = new SenderCertificate(message.getSenderCertificate().toByteArray()); - this.content = message.getContent().toByteArray(); - this.serialized = serialized; - } catch (InvalidProtocolBufferException e) { - throw new InvalidMetadataMessageException(e); - } - } - - public UnidentifiedSenderMessageContent(int type, SenderCertificate senderCertificate, byte[] content) { - try { - this.serialized = SignalProtos.UnidentifiedSenderMessage.Message.newBuilder() - .setType(SignalProtos.UnidentifiedSenderMessage.Message.Type.valueOf(getProtoType(type))) - .setSenderCertificate(SignalProtos.SenderCertificate.parseFrom(senderCertificate.getSerialized())) - .setContent(ByteString.copyFrom(content)) - .build() - .toByteArray(); - - this.type = type; - this.senderCertificate = senderCertificate; - this.content = content; - } catch (InvalidProtocolBufferException e) { - throw new AssertionError(e); - } - } - - public int getType() { - return type; - } - - public SenderCertificate getSenderCertificate() { - return senderCertificate; - } - - public byte[] getContent() { - return content; - } - - public byte[] getSerialized() { - return serialized; - } - - private int getProtoType(int type) { - switch (type) { - case CiphertextMessage.WHISPER_TYPE: return SignalProtos.UnidentifiedSenderMessage.Message.Type.MESSAGE_VALUE; - case CiphertextMessage.PREKEY_TYPE: return SignalProtos.UnidentifiedSenderMessage.Message.Type.PREKEY_MESSAGE_VALUE; - case CiphertextMessage.FALLBACK_MESSAGE_TYPE: return SignalProtos.UnidentifiedSenderMessage.Message.Type.FALLBACK_MESSAGE_VALUE; - default: throw new AssertionError(type); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/DecryptionCallback.java b/service/java/src/main/java/org/whispersystems/libsignal/DecryptionCallback.java deleted file mode 100644 index 9525ffa95..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/DecryptionCallback.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public interface DecryptionCallback { - public void handlePlaintext(byte[] plaintext); -} \ No newline at end of file diff --git a/service/java/src/main/java/org/whispersystems/libsignal/DuplicateMessageException.java b/service/java/src/main/java/org/whispersystems/libsignal/DuplicateMessageException.java deleted file mode 100644 index 8934b8b04..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/DuplicateMessageException.java +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class DuplicateMessageException extends Exception { - public DuplicateMessageException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/IdentityKey.java b/service/java/src/main/java/org/whispersystems/libsignal/IdentityKey.java deleted file mode 100644 index 09c2a4d15..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/IdentityKey.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - - -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.Hex; - -/** - * A class for representing an identity key. - * - * @author Moxie Marlinspike - */ - -public class IdentityKey { - - private final ECPublicKey publicKey; - - public IdentityKey(ECPublicKey publicKey) { - this.publicKey = publicKey; - } - - public IdentityKey(byte[] bytes, int offset) throws InvalidKeyException { - this.publicKey = Curve.decodePoint(bytes, offset); - } - - public ECPublicKey getPublicKey() { - return publicKey; - } - - public byte[] serialize() { - return publicKey.serialize(); - } - - public String getFingerprint() { - return Hex.toString(publicKey.serialize()); - } - - @Override - public boolean equals(Object other) { - if (other == null) return false; - if (!(other instanceof IdentityKey)) return false; - - return publicKey.equals(((IdentityKey) other).getPublicKey()); - } - - @Override - public int hashCode() { - return publicKey.hashCode(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/IdentityKeyPair.java b/service/java/src/main/java/org/whispersystems/libsignal/IdentityKeyPair.java deleted file mode 100644 index f694e930f..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/IdentityKeyPair.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPrivateKey; - -import static org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure; - -/** - * Holder for public and private identity key pair. - * - * @author Moxie Marlinspike - */ -public class IdentityKeyPair { - - private final IdentityKey publicKey; - private final ECPrivateKey privateKey; - - public IdentityKeyPair(IdentityKey publicKey, ECPrivateKey privateKey) { - this.publicKey = publicKey; - this.privateKey = privateKey; - } - - public IdentityKeyPair(byte[] serialized) throws InvalidKeyException { - try { - IdentityKeyPairStructure structure = IdentityKeyPairStructure.parseFrom(serialized); - this.publicKey = new IdentityKey(structure.getPublicKey().toByteArray(), 0); - this.privateKey = Curve.decodePrivatePoint(structure.getPrivateKey().toByteArray()); - } catch (InvalidProtocolBufferException e) { - throw new InvalidKeyException(e); - } - } - - public IdentityKey getPublicKey() { - return publicKey; - } - - public ECPrivateKey getPrivateKey() { - return privateKey; - } - - public byte[] serialize() { - return IdentityKeyPairStructure.newBuilder() - .setPublicKey(ByteString.copyFrom(publicKey.serialize())) - .setPrivateKey(ByteString.copyFrom(privateKey.serialize())) - .build().toByteArray(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyException.java b/service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyException.java deleted file mode 100644 index c186a71eb..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyException.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class InvalidKeyException extends Exception { - - public InvalidKeyException() {} - - public InvalidKeyException(String detailMessage) { - super(detailMessage); - } - - public InvalidKeyException(Throwable throwable) { - super(throwable); - } - - public InvalidKeyException(String detailMessage, Throwable throwable) { - super(detailMessage, throwable); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyIdException.java b/service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyIdException.java deleted file mode 100644 index 3a59fd108..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/InvalidKeyIdException.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class InvalidKeyIdException extends Exception { - public InvalidKeyIdException(String detailMessage) { - super(detailMessage); - } - - public InvalidKeyIdException(Throwable throwable) { - super(throwable); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/InvalidMacException.java b/service/java/src/main/java/org/whispersystems/libsignal/InvalidMacException.java deleted file mode 100644 index d1add4248..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/InvalidMacException.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class InvalidMacException extends Exception { - - public InvalidMacException(String detailMessage) { - super(detailMessage); - } - - public InvalidMacException(Throwable throwable) { - super(throwable); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/InvalidMessageException.java b/service/java/src/main/java/org/whispersystems/libsignal/InvalidMessageException.java deleted file mode 100644 index 967e0eb25..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/InvalidMessageException.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -import java.util.List; - -public class InvalidMessageException extends Exception { - - public InvalidMessageException() {} - - public InvalidMessageException(String detailMessage) { - super(detailMessage); - } - - public InvalidMessageException(Throwable throwable) { - super(throwable); - } - - public InvalidMessageException(String detailMessage, Throwable throwable) { - super(detailMessage, throwable); - } - - public InvalidMessageException(String detailMessage, List exceptions) { - super(detailMessage, exceptions.get(0)); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/InvalidVersionException.java b/service/java/src/main/java/org/whispersystems/libsignal/InvalidVersionException.java deleted file mode 100644 index 576f9afb7..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/InvalidVersionException.java +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class InvalidVersionException extends Exception { - public InvalidVersionException(String detailMessage) { - super(detailMessage); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/LegacyMessageException.java b/service/java/src/main/java/org/whispersystems/libsignal/LegacyMessageException.java deleted file mode 100644 index 6326a9fa4..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/LegacyMessageException.java +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class LegacyMessageException extends Exception { - public LegacyMessageException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/NoSessionException.java b/service/java/src/main/java/org/whispersystems/libsignal/NoSessionException.java deleted file mode 100644 index 038531271..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/NoSessionException.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class NoSessionException extends Exception { - public NoSessionException(String s) { - super(s); - } - - public NoSessionException(Exception nested) { - super(nested); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/SessionBuilder.java b/service/java/src/main/java/org/whispersystems/libsignal/SessionBuilder.java deleted file mode 100644 index 197e18663..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/SessionBuilder.java +++ /dev/null @@ -1,212 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - - -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.protocol.PreKeySignalMessage; -import org.whispersystems.libsignal.protocol.SignalMessage; -import org.whispersystems.libsignal.ratchet.AliceSignalProtocolParameters; -import org.whispersystems.libsignal.ratchet.BobSignalProtocolParameters; -import org.whispersystems.libsignal.ratchet.RatchetingSession; -import org.whispersystems.libsignal.state.IdentityKeyStore; -import org.whispersystems.libsignal.state.PreKeyBundle; -import org.whispersystems.libsignal.state.PreKeyStore; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionStore; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.state.SignedPreKeyStore; -import org.whispersystems.libsignal.util.guava.Optional; - -/** - * SessionBuilder is responsible for setting up encrypted sessions. - * Once a session has been established, {@link org.whispersystems.libsignal.SessionCipher} - * can be used to encrypt/decrypt messages in that session. - *

- * Sessions are built from one of three different possible vectors: - *

    - *
  1. A {@link org.whispersystems.libsignal.state.PreKeyBundle} retrieved from a server.
  2. - *
  3. A {@link PreKeySignalMessage} received from a client.
  4. - *
- * - * Sessions are constructed per recipientId + deviceId tuple. Remote logical users are identified - * by their recipientId, and each logical recipientId can have multiple physical devices. - * - * @author Moxie Marlinspike - */ -public class SessionBuilder { - - private static final String TAG = SessionBuilder.class.getSimpleName(); - - private final SessionStore sessionStore; - private final PreKeyStore preKeyStore; - private final SignedPreKeyStore signedPreKeyStore; - private final IdentityKeyStore identityKeyStore; - private final SignalProtocolAddress remoteAddress; - - /** - * Constructs a SessionBuilder. - * - * @param sessionStore The {@link org.whispersystems.libsignal.state.SessionStore} to store the constructed session in. - * @param preKeyStore The {@link org.whispersystems.libsignal.state.PreKeyStore} where the client's local {@link org.whispersystems.libsignal.state.PreKeyRecord}s are stored. - * @param identityKeyStore The {@link org.whispersystems.libsignal.state.IdentityKeyStore} containing the client's identity key information. - * @param remoteAddress The address of the remote user to build a session with. - */ - public SessionBuilder(SessionStore sessionStore, - PreKeyStore preKeyStore, - SignedPreKeyStore signedPreKeyStore, - IdentityKeyStore identityKeyStore, - SignalProtocolAddress remoteAddress) - { - this.sessionStore = sessionStore; - this.preKeyStore = preKeyStore; - this.signedPreKeyStore = signedPreKeyStore; - this.identityKeyStore = identityKeyStore; - this.remoteAddress = remoteAddress; - } - - /** - * Constructs a SessionBuilder - * @param store The {@link SignalProtocolStore} to store all state information in. - * @param remoteAddress The address of the remote user to build a session with. - */ - public SessionBuilder(SignalProtocolStore store, SignalProtocolAddress remoteAddress) { - this(store, store, store, store, remoteAddress); - } - - /** - * Build a new session from a received {@link PreKeySignalMessage}. - * - * After a session is constructed in this way, the embedded {@link SignalMessage} - * can be decrypted. - * - * @param message The received {@link PreKeySignalMessage}. - * @throws org.whispersystems.libsignal.InvalidKeyIdException when there is no local - * {@link org.whispersystems.libsignal.state.PreKeyRecord} - * that corresponds to the PreKey ID in - * the message. - * @throws org.whispersystems.libsignal.InvalidKeyException when the message is formatted incorrectly. - * @throws org.whispersystems.libsignal.UntrustedIdentityException when the {@link IdentityKey} of the sender is untrusted. - */ - /*package*/ Optional process(SessionRecord sessionRecord, PreKeySignalMessage message) - throws InvalidKeyIdException, InvalidKeyException, UntrustedIdentityException - { - IdentityKey theirIdentityKey = message.getIdentityKey(); - - if (!identityKeyStore.isTrustedIdentity(remoteAddress, theirIdentityKey, IdentityKeyStore.Direction.RECEIVING)) { - throw new UntrustedIdentityException(remoteAddress.getName(), theirIdentityKey); - } - - Optional unsignedPreKeyId = processV3(sessionRecord, message); - - identityKeyStore.saveIdentity(remoteAddress, theirIdentityKey); - - return unsignedPreKeyId; - } - - private Optional processV3(SessionRecord sessionRecord, PreKeySignalMessage message) - throws UntrustedIdentityException, InvalidKeyIdException, InvalidKeyException - { - - if (sessionRecord.hasSessionState(message.getMessageVersion(), message.getBaseKey().serialize())) { - Log.w(TAG, "We've already setup a session for this V3 message, letting bundled message fall through..."); - return Optional.absent(); - } - - ECKeyPair ourSignedPreKey = signedPreKeyStore.loadSignedPreKey(message.getSignedPreKeyId()).getKeyPair(); - - BobSignalProtocolParameters.Builder parameters = BobSignalProtocolParameters.newBuilder(); - - parameters.setTheirBaseKey(message.getBaseKey()) - .setTheirIdentityKey(message.getIdentityKey()) - .setOurIdentityKey(identityKeyStore.getIdentityKeyPair()) - .setOurSignedPreKey(ourSignedPreKey) - .setOurRatchetKey(ourSignedPreKey); - - if (message.getPreKeyId().isPresent()) { - parameters.setOurOneTimePreKey(Optional.of(preKeyStore.loadPreKey(message.getPreKeyId().get()).getKeyPair())); - } else { - parameters.setOurOneTimePreKey(Optional.absent()); - } - - if (!sessionRecord.isFresh()) sessionRecord.archiveCurrentState(); - - RatchetingSession.initializeSession(sessionRecord.getSessionState(), parameters.create()); - - sessionRecord.getSessionState().setLocalRegistrationId(identityKeyStore.getLocalRegistrationId()); - sessionRecord.getSessionState().setRemoteRegistrationId(message.getRegistrationId()); - sessionRecord.getSessionState().setAliceBaseKey(message.getBaseKey().serialize()); - - if (message.getPreKeyId().isPresent()) { - return message.getPreKeyId(); - } else { - return Optional.absent(); - } - } - - /** - * Build a new session from a {@link org.whispersystems.libsignal.state.PreKeyBundle} retrieved from - * a server. - * - * @param preKey A PreKey for the destination recipient, retrieved from a server. - * @throws InvalidKeyException when the {@link org.whispersystems.libsignal.state.PreKeyBundle} is - * badly formatted. - * @throws org.whispersystems.libsignal.UntrustedIdentityException when the sender's - * {@link IdentityKey} is not - * trusted. - */ - public void process(PreKeyBundle preKey) throws InvalidKeyException, UntrustedIdentityException { - synchronized (SessionCipher.SESSION_LOCK) { - if (!identityKeyStore.isTrustedIdentity(remoteAddress, preKey.getIdentityKey(), IdentityKeyStore.Direction.SENDING)) { - throw new UntrustedIdentityException(remoteAddress.getName(), preKey.getIdentityKey()); - } - - if (preKey.getSignedPreKey() != null && - !Curve.verifySignature(preKey.getIdentityKey().getPublicKey(), - preKey.getSignedPreKey().serialize(), - preKey.getSignedPreKeySignature())) - { - throw new InvalidKeyException("Invalid signature on device key!"); - } - - if (preKey.getSignedPreKey() == null) { - throw new InvalidKeyException("No signed prekey!"); - } - - SessionRecord sessionRecord = sessionStore.loadSession(remoteAddress); - ECKeyPair ourBaseKey = Curve.generateKeyPair(); - ECPublicKey theirSignedPreKey = preKey.getSignedPreKey(); - Optional theirOneTimePreKey = Optional.fromNullable(preKey.getPreKey()); - Optional theirOneTimePreKeyId = theirOneTimePreKey.isPresent() ? Optional.of(preKey.getPreKeyId()) : - Optional.absent(); - - AliceSignalProtocolParameters.Builder parameters = AliceSignalProtocolParameters.newBuilder(); - - parameters.setOurBaseKey(ourBaseKey) - .setOurIdentityKey(identityKeyStore.getIdentityKeyPair()) - .setTheirIdentityKey(preKey.getIdentityKey()) - .setTheirSignedPreKey(theirSignedPreKey) - .setTheirRatchetKey(theirSignedPreKey) - .setTheirOneTimePreKey(theirOneTimePreKey); - - if (!sessionRecord.isFresh()) sessionRecord.archiveCurrentState(); - - RatchetingSession.initializeSession(sessionRecord.getSessionState(), parameters.create()); - - sessionRecord.getSessionState().setUnacknowledgedPreKeyMessage(theirOneTimePreKeyId, preKey.getSignedPreKeyId(), ourBaseKey.getPublicKey()); - sessionRecord.getSessionState().setLocalRegistrationId(identityKeyStore.getLocalRegistrationId()); - sessionRecord.getSessionState().setRemoteRegistrationId(preKey.getRegistrationId()); - sessionRecord.getSessionState().setAliceBaseKey(ourBaseKey.getPublicKey().serialize()); - - identityKeyStore.saveIdentity(remoteAddress, preKey.getIdentityKey()); - sessionStore.storeSession(remoteAddress, sessionRecord); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/SessionCipher.java b/service/java/src/main/java/org/whispersystems/libsignal/SessionCipher.java deleted file mode 100644 index 4b8b24c00..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/SessionCipher.java +++ /dev/null @@ -1,440 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.loki.FallbackSessionCipher; -import org.whispersystems.libsignal.protocol.CiphertextMessage; -import org.whispersystems.libsignal.protocol.PreKeySignalMessage; -import org.whispersystems.libsignal.protocol.SignalMessage; -import org.whispersystems.libsignal.ratchet.ChainKey; -import org.whispersystems.libsignal.ratchet.MessageKeys; -import org.whispersystems.libsignal.ratchet.RootKey; -import org.whispersystems.libsignal.state.IdentityKeyStore; -import org.whispersystems.libsignal.state.PreKeyStore; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionState; -import org.whispersystems.libsignal.state.SessionStore; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.state.SignedPreKeyStore; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; - -import java.security.InvalidAlgorithmParameterException; -import java.security.NoSuchAlgorithmException; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -import static org.whispersystems.libsignal.state.SessionState.UnacknowledgedPreKeyMessageItems; - -/** - * The main entry point for Signal Protocol encrypt/decrypt operations. - * - * Once a session has been established with {@link SessionBuilder}, - * this class can be used for all encrypt/decrypt operations within - * that session. - * - * @author Moxie Marlinspike - */ -public class SessionCipher { - - public static final Object SESSION_LOCK = new Object(); - - private final SessionStore sessionStore; - private final IdentityKeyStore identityKeyStore; - private final SessionBuilder sessionBuilder; - private final PreKeyStore preKeyStore; - private final SignalProtocolAddress remoteAddress; - - /** - * Construct a SessionCipher for encrypt/decrypt operations on a session. - * In order to use SessionCipher, a session must have already been created - * and stored using {@link SessionBuilder}. - * - * @param sessionStore The {@link SessionStore} that contains a session for this recipient. - * @param remoteAddress The remote address that messages will be encrypted to or decrypted from. - */ - public SessionCipher(SessionStore sessionStore, PreKeyStore preKeyStore, - SignedPreKeyStore signedPreKeyStore, IdentityKeyStore identityKeyStore, - SignalProtocolAddress remoteAddress) - { - this.sessionStore = sessionStore; - this.preKeyStore = preKeyStore; - this.identityKeyStore = identityKeyStore; - this.remoteAddress = remoteAddress; - this.sessionBuilder = new SessionBuilder(sessionStore, preKeyStore, signedPreKeyStore, - identityKeyStore, remoteAddress); - } - - public SessionCipher(SignalProtocolStore store, SignalProtocolAddress remoteAddress) { - this(store, store, store, store, remoteAddress); - } - - /** - * Encrypt a message. - * - * @param paddedMessage The plaintext message bytes, optionally padded to a constant multiple. - * @return A ciphertext message encrypted to the recipient+device tuple. - */ - public CiphertextMessage encrypt(byte[] paddedMessage) throws UntrustedIdentityException { - synchronized (SESSION_LOCK) { - SessionRecord sessionRecord = sessionStore.loadSession(remoteAddress); - SessionState sessionState = sessionRecord.getSessionState(); - ChainKey chainKey = sessionState.getSenderChainKey(); - MessageKeys messageKeys = chainKey.getMessageKeys(); - ECPublicKey senderEphemeral = sessionState.getSenderRatchetKey(); - int previousCounter = sessionState.getPreviousCounter(); - int sessionVersion = sessionState.getSessionVersion(); - - byte[] ciphertextBody = getCiphertext(messageKeys, paddedMessage); - CiphertextMessage ciphertextMessage = new SignalMessage(sessionVersion, messageKeys.getMacKey(), - senderEphemeral, chainKey.getIndex(), - previousCounter, ciphertextBody, - sessionState.getLocalIdentityKey(), - sessionState.getRemoteIdentityKey()); - - if (sessionState.hasUnacknowledgedPreKeyMessage()) { - UnacknowledgedPreKeyMessageItems items = sessionState.getUnacknowledgedPreKeyMessageItems(); - int localRegistrationId = sessionState.getLocalRegistrationId(); - - ciphertextMessage = new PreKeySignalMessage(sessionVersion, localRegistrationId, items.getPreKeyId(), - items.getSignedPreKeyId(), items.getBaseKey(), - sessionState.getLocalIdentityKey(), - (SignalMessage) ciphertextMessage); - } - - sessionState.setSenderChainKey(chainKey.getNextChainKey()); - - if (!identityKeyStore.isTrustedIdentity(remoteAddress, sessionState.getRemoteIdentityKey(), IdentityKeyStore.Direction.SENDING)) { - throw new UntrustedIdentityException(remoteAddress.getName(), sessionState.getRemoteIdentityKey()); - } - - identityKeyStore.saveIdentity(remoteAddress, sessionState.getRemoteIdentityKey()); - sessionStore.storeSession(remoteAddress, sessionRecord); - return ciphertextMessage; - } - } - - /** - * Decrypt a message. - * - * @param ciphertext The {@link PreKeySignalMessage} to decrypt. - * - * @return The plaintext. - * @throws InvalidMessageException if the input is not valid ciphertext. - * @throws DuplicateMessageException if the input is a message that has already been received. - * @throws LegacyMessageException if the input is a message formatted by a protocol version that - * is no longer supported. - * @throws InvalidKeyIdException when there is no local {@link org.whispersystems.libsignal.state.PreKeyRecord} - * that corresponds to the PreKey ID in the message. - * @throws InvalidKeyException when the message is formatted incorrectly. - * @throws UntrustedIdentityException when the {@link IdentityKey} of the sender is untrusted. - */ - public byte[] decrypt(PreKeySignalMessage ciphertext) - throws DuplicateMessageException, LegacyMessageException, InvalidMessageException, - InvalidKeyIdException, InvalidKeyException, UntrustedIdentityException - { - return decrypt(ciphertext, new NullDecryptionCallback()); - } - - /** - * Decrypt a message. - * - * @param ciphertext The {@link PreKeySignalMessage} to decrypt. - * @param callback A callback that is triggered after decryption is complete, - * but before the updated session state has been committed to the session - * DB. This allows some implementations to store the committed plaintext - * to a DB first, in case they are concerned with a crash happening between - * the time the session state is updated but before they're able to store - * the plaintext to disk. - * - * @return The plaintext. - * @throws InvalidMessageException if the input is not valid ciphertext. - * @throws DuplicateMessageException if the input is a message that has already been received. - * @throws LegacyMessageException if the input is a message formatted by a protocol version that - * is no longer supported. - * @throws InvalidKeyIdException when there is no local {@link org.whispersystems.libsignal.state.PreKeyRecord} - * that corresponds to the PreKey ID in the message. - * @throws InvalidKeyException when the message is formatted incorrectly. - * @throws UntrustedIdentityException when the {@link IdentityKey} of the sender is untrusted. - */ - public byte[] decrypt(PreKeySignalMessage ciphertext, DecryptionCallback callback) - throws DuplicateMessageException, LegacyMessageException, InvalidMessageException, - InvalidKeyIdException, InvalidKeyException, UntrustedIdentityException - { - synchronized (SESSION_LOCK) { - SessionRecord sessionRecord = sessionStore.loadSession(remoteAddress); - Optional unsignedPreKeyId = sessionBuilder.process(sessionRecord, ciphertext); - byte[] plaintext = decrypt(sessionRecord, ciphertext.getWhisperMessage()); - - callback.handlePlaintext(plaintext); - - sessionStore.storeSession(remoteAddress, sessionRecord); - - if (unsignedPreKeyId.isPresent()) { - preKeyStore.removePreKey(unsignedPreKeyId.get()); - } - - return plaintext; - } - } - - /** - * Decrypt a message. - * - * @param ciphertext The {@link SignalMessage} to decrypt. - * - * @return The plaintext. - * @throws InvalidMessageException if the input is not valid ciphertext. - * @throws DuplicateMessageException if the input is a message that has already been received. - * @throws LegacyMessageException if the input is a message formatted by a protocol version that - * is no longer supported. - * @throws NoSessionException if there is no established session for this contact. - */ - public byte[] decrypt(SignalMessage ciphertext) - throws InvalidMessageException, DuplicateMessageException, LegacyMessageException, - NoSessionException, UntrustedIdentityException - { - return decrypt(ciphertext, new NullDecryptionCallback()); - } - - /** - * Decrypt a message. - * - * @param ciphertext The {@link SignalMessage} to decrypt. - * @param callback A callback that is triggered after decryption is complete, - * but before the updated session state has been committed to the session - * DB. This allows some implementations to store the committed plaintext - * to a DB first, in case they are concerned with a crash happening between - * the time the session state is updated but before they're able to store - * the plaintext to disk. - * - * @return The plaintext. - * @throws InvalidMessageException if the input is not valid ciphertext. - * @throws DuplicateMessageException if the input is a message that has already been received. - * @throws LegacyMessageException if the input is a message formatted by a protocol version that - * is no longer supported. - * @throws NoSessionException if there is no established session for this contact. - */ - public byte[] decrypt(SignalMessage ciphertext, DecryptionCallback callback) - throws InvalidMessageException, DuplicateMessageException, LegacyMessageException, - NoSessionException, UntrustedIdentityException - { - synchronized (SESSION_LOCK) { - - if (!sessionStore.containsSession(remoteAddress)) { - throw new NoSessionException("No session for: " + remoteAddress); - } - - SessionRecord sessionRecord = sessionStore.loadSession(remoteAddress); - byte[] plaintext = decrypt(sessionRecord, ciphertext); - - if (!identityKeyStore.isTrustedIdentity(remoteAddress, sessionRecord.getSessionState().getRemoteIdentityKey(), IdentityKeyStore.Direction.RECEIVING)) { - throw new UntrustedIdentityException(remoteAddress.getName(), sessionRecord.getSessionState().getRemoteIdentityKey()); - } - - identityKeyStore.saveIdentity(remoteAddress, sessionRecord.getSessionState().getRemoteIdentityKey()); - - callback.handlePlaintext(plaintext); - - sessionStore.storeSession(remoteAddress, sessionRecord); - - return plaintext; - } - } - - private byte[] decrypt(SessionRecord sessionRecord, SignalMessage ciphertext) - throws DuplicateMessageException, LegacyMessageException, InvalidMessageException - { - synchronized (SESSION_LOCK) { - Iterator previousStates = sessionRecord.getPreviousSessionStates().iterator(); - List exceptions = new LinkedList(); - - try { - SessionState sessionState = new SessionState(sessionRecord.getSessionState()); - byte[] plaintext = decrypt(sessionState, ciphertext); - - sessionRecord.setState(sessionState); - return plaintext; - } catch (InvalidMessageException e) { - exceptions.add(e); - } - - while (previousStates.hasNext()) { - try { - SessionState promotedState = new SessionState(previousStates.next()); - byte[] plaintext = decrypt(promotedState, ciphertext); - - previousStates.remove(); - sessionRecord.promoteState(promotedState); - - return plaintext; - } catch (InvalidMessageException e) { - exceptions.add(e); - } - } - - throw new InvalidMessageException("No valid sessions.", exceptions); - } - } - - private byte[] decrypt(SessionState sessionState, SignalMessage ciphertextMessage) - throws InvalidMessageException, DuplicateMessageException, LegacyMessageException - { - if (!sessionState.hasSenderChain()) { - throw new InvalidMessageException("Uninitialized session!"); - } - - if (ciphertextMessage.getMessageVersion() != sessionState.getSessionVersion()) { - throw new InvalidMessageException(String.format("Message version %d, but session version %d", - ciphertextMessage.getMessageVersion(), - sessionState.getSessionVersion())); - } - - ECPublicKey theirEphemeral = ciphertextMessage.getSenderRatchetKey(); - int counter = ciphertextMessage.getCounter(); - ChainKey chainKey = getOrCreateChainKey(sessionState, theirEphemeral); - MessageKeys messageKeys = getOrCreateMessageKeys(sessionState, theirEphemeral, - chainKey, counter); - - ciphertextMessage.verifyMac(sessionState.getRemoteIdentityKey(), - sessionState.getLocalIdentityKey(), - messageKeys.getMacKey()); - - byte[] plaintext = getPlaintext(messageKeys, ciphertextMessage.getBody()); - - sessionState.clearUnacknowledgedPreKeyMessage(); - - return plaintext; - } - - public int getRemoteRegistrationId() { - synchronized (SESSION_LOCK) { - SessionRecord record = sessionStore.loadSession(remoteAddress); - return record.getSessionState().getRemoteRegistrationId(); - } - } - - public int getSessionVersion() { - synchronized (SESSION_LOCK) { - if (!sessionStore.containsSession(remoteAddress)) { - // Loki - If we have no session then we must be using the FallbackSessionCipher - return FallbackSessionCipher.getSessionVersion(); - } - - SessionRecord record = sessionStore.loadSession(remoteAddress); - return record.getSessionState().getSessionVersion(); - } - } - - private ChainKey getOrCreateChainKey(SessionState sessionState, ECPublicKey theirEphemeral) - throws InvalidMessageException - { - try { - if (sessionState.hasReceiverChain(theirEphemeral)) { - return sessionState.getReceiverChainKey(theirEphemeral); - } else { - RootKey rootKey = sessionState.getRootKey(); - ECKeyPair ourEphemeral = sessionState.getSenderRatchetKeyPair(); - Pair receiverChain = rootKey.createChain(theirEphemeral, ourEphemeral); - ECKeyPair ourNewEphemeral = Curve.generateKeyPair(); - Pair senderChain = receiverChain.first().createChain(theirEphemeral, ourNewEphemeral); - - sessionState.setRootKey(senderChain.first()); - sessionState.addReceiverChain(theirEphemeral, receiverChain.second()); - sessionState.setPreviousCounter(Math.max(sessionState.getSenderChainKey().getIndex()-1, 0)); - sessionState.setSenderChain(ourNewEphemeral, senderChain.second()); - - return receiverChain.second(); - } - } catch (InvalidKeyException e) { - throw new InvalidMessageException(e); - } - } - - private MessageKeys getOrCreateMessageKeys(SessionState sessionState, - ECPublicKey theirEphemeral, - ChainKey chainKey, int counter) - throws InvalidMessageException, DuplicateMessageException - { - if (chainKey.getIndex() > counter) { - if (sessionState.hasMessageKeys(theirEphemeral, counter)) { - return sessionState.removeMessageKeys(theirEphemeral, counter); - } else { - throw new DuplicateMessageException("Received message with old counter: " + - chainKey.getIndex() + " , " + counter); - } - } - - if (counter - chainKey.getIndex() > 2000) { - throw new InvalidMessageException("Over 2000 messages into the future!"); - } - - while (chainKey.getIndex() < counter) { - MessageKeys messageKeys = chainKey.getMessageKeys(); - sessionState.setMessageKeys(theirEphemeral, messageKeys); - chainKey = chainKey.getNextChainKey(); - } - - sessionState.setReceiverChainKey(theirEphemeral, chainKey.getNextChainKey()); - return chainKey.getMessageKeys(); - } - - private byte[] getCiphertext(MessageKeys messageKeys, byte[] plaintext) { - try { - Cipher cipher = getCipher(Cipher.ENCRYPT_MODE, messageKeys.getCipherKey(), messageKeys.getIv()); - return cipher.doFinal(plaintext); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } - } - - private byte[] getPlaintext(MessageKeys messageKeys, byte[] cipherText) - throws InvalidMessageException - { - try { - Cipher cipher = getCipher(Cipher.DECRYPT_MODE, messageKeys.getCipherKey(), messageKeys.getIv()); - return cipher.doFinal(cipherText); - } catch (IllegalBlockSizeException e) { - throw new InvalidMessageException(e); - } catch (BadPaddingException e) { - throw new InvalidMessageException(e); - } - } - - private Cipher getCipher(int mode, SecretKeySpec key, IvParameterSpec iv) { - try { - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(mode, key, iv); - return cipher; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } - } - - private static class NullDecryptionCallback implements DecryptionCallback { - @Override - public void handlePlaintext(byte[] plaintext) {} - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/SignalProtocolAddress.java b/service/java/src/main/java/org/whispersystems/libsignal/SignalProtocolAddress.java deleted file mode 100644 index 7d6a0afec..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/SignalProtocolAddress.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class SignalProtocolAddress { - - private final String name; - private final int deviceId; - - public SignalProtocolAddress(String name, int deviceId) { - this.name = name; - this.deviceId = deviceId; - } - - public String getName() { - return name; - } - - public int getDeviceId() { - return deviceId; - } - - @Override - public String toString() { - return name + ":" + deviceId; - } - - @Override - public boolean equals(Object other) { - if (other == null) return false; - if (!(other instanceof SignalProtocolAddress)) return false; - - SignalProtocolAddress that = (SignalProtocolAddress)other; - return this.name.equals(that.name) && this.deviceId == that.deviceId; - } - - @Override - public int hashCode() { - return this.name.hashCode() ^ this.deviceId; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/StaleKeyExchangeException.java b/service/java/src/main/java/org/whispersystems/libsignal/StaleKeyExchangeException.java deleted file mode 100644 index 546931aa2..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/StaleKeyExchangeException.java +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class StaleKeyExchangeException extends Throwable { -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/UntrustedIdentityException.java b/service/java/src/main/java/org/whispersystems/libsignal/UntrustedIdentityException.java deleted file mode 100644 index 38b59b778..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/UntrustedIdentityException.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal; - -public class UntrustedIdentityException extends Exception { - - private final String name; - private final IdentityKey key; - - public UntrustedIdentityException(String name, IdentityKey key) { - this.name = name; - this.key = key; - } - - public IdentityKey getUntrustedIdentity() { - return key; - } - - public String getName() { - return name; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCodeGenerator.java b/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCodeGenerator.java deleted file mode 100644 index 416efba00..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCodeGenerator.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.whispersystems.libsignal.devices; - -import org.whispersystems.libsignal.util.ByteArrayComparator; -import org.whispersystems.libsignal.util.ByteUtil; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -public class DeviceConsistencyCodeGenerator { - - private static final int CODE_VERSION = 0; - - public static String generateFor(DeviceConsistencyCommitment commitment, - List signatures) - { - try { - ArrayList sortedSignatures = new ArrayList(signatures); - Collections.sort(sortedSignatures, new SignatureComparator()); - - MessageDigest messageDigest = MessageDigest.getInstance("SHA-512"); - messageDigest.update(ByteUtil.shortToByteArray(CODE_VERSION)); - messageDigest.update(commitment.toByteArray()); - - for (DeviceConsistencySignature signature : sortedSignatures) { - messageDigest.update(signature.getVrfOutput()); - } - - byte[] hash = messageDigest.digest(); - - String digits = getEncodedChunk(hash, 0) + getEncodedChunk(hash, 5); - return digits.substring(0, 6); - - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - private static String getEncodedChunk(byte[] hash, int offset) { - long chunk = ByteUtil.byteArray5ToLong(hash, offset) % 100000; - return String.format("%05d", chunk); - } - - - private static class SignatureComparator extends ByteArrayComparator implements Comparator { - @Override - public int compare(DeviceConsistencySignature first, DeviceConsistencySignature second) { - return compare(first.getVrfOutput(), second.getVrfOutput()); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCommitment.java b/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCommitment.java deleted file mode 100644 index 3fd68915d..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencyCommitment.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.whispersystems.libsignal.devices; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.libsignal.util.IdentityKeyComparator; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class DeviceConsistencyCommitment { - - private static final String VERSION = "DeviceConsistencyCommitment_V0"; - - private final int generation; - private final byte[] serialized; - - public DeviceConsistencyCommitment(int generation, List identityKeys) { - try { - ArrayList sortedIdentityKeys = new ArrayList(identityKeys); - Collections.sort(sortedIdentityKeys, new IdentityKeyComparator()); - - MessageDigest messageDigest = MessageDigest.getInstance("SHA-512"); - messageDigest.update(VERSION.getBytes()); - messageDigest.update(ByteUtil.intToByteArray(generation)); - - for (IdentityKey commitment : sortedIdentityKeys) { - messageDigest.update(commitment.getPublicKey().serialize()); - } - - this.generation = generation; - this.serialized = messageDigest.digest(); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - public byte[] toByteArray() { - return serialized; - } - - public int getGeneration() { - return generation; - } - - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencySignature.java b/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencySignature.java deleted file mode 100644 index cfd40a600..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/devices/DeviceConsistencySignature.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.whispersystems.libsignal.devices; - -public class DeviceConsistencySignature { - - private final byte[] signature; - private final byte[] vrfOutput; - - public DeviceConsistencySignature(byte[] signature, byte[] vrfOutput) { - this.signature = signature; - this.vrfOutput = vrfOutput; - } - - public byte[] getVrfOutput() { - return vrfOutput; - } - - public byte[] getSignature() { - return signature; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ecc/Curve.java b/service/java/src/main/java/org/whispersystems/libsignal/ecc/Curve.java deleted file mode 100644 index 8f4f2caa0..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ecc/Curve.java +++ /dev/null @@ -1,139 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ecc; - -import org.whispersystems.curve25519.Curve25519; -import org.whispersystems.curve25519.Curve25519KeyPair; -import org.whispersystems.curve25519.VrfSignatureVerificationFailedException; -import org.whispersystems.libsignal.InvalidKeyException; - -import static org.whispersystems.curve25519.Curve25519.BEST; - -public class Curve { - - public static final int DJB_TYPE = 0x05; - - public static boolean isNative() { - return Curve25519.getInstance(BEST).isNative(); - } - - public static ECKeyPair generateKeyPair() { - Curve25519KeyPair keyPair = Curve25519.getInstance(BEST).generateKeyPair(); - return new ECKeyPair(new DjbECPublicKey(keyPair.getPublicKey()), new DjbECPrivateKey(keyPair.getPrivateKey())); - } - - public static ECPublicKey decodePoint(byte[] bytes, int offset) - throws InvalidKeyException - { - if (bytes == null || bytes.length - offset < 1) { - throw new InvalidKeyException("No key type identifier"); - } - - int type = bytes[offset] & 0xFF; - - switch (type) { - case Curve.DJB_TYPE: - if (bytes.length - offset < 33) { - throw new InvalidKeyException("Bad key length: " + bytes.length); - } - - byte[] keyBytes = new byte[32]; - System.arraycopy(bytes, offset+1, keyBytes, 0, keyBytes.length); - return new DjbECPublicKey(keyBytes); - default: - throw new InvalidKeyException("Bad key type: " + type); - } - } - - public static ECPrivateKey decodePrivatePoint(byte[] bytes) { - return new DjbECPrivateKey(bytes); - } - - public static byte[] calculateAgreement(ECPublicKey publicKey, ECPrivateKey privateKey) - throws InvalidKeyException - { - if (publicKey == null) { - throw new InvalidKeyException("public value is null"); - } - - if (privateKey == null) { - throw new InvalidKeyException("private value is null"); - } - - if (publicKey.getType() != privateKey.getType()) { - throw new InvalidKeyException("Public and private keys must be of the same type!"); - } - - if (publicKey.getType() == DJB_TYPE) { - return Curve25519.getInstance(BEST) - .calculateAgreement(((DjbECPublicKey) publicKey).getPublicKey(), - ((DjbECPrivateKey) privateKey).getPrivateKey()); - } else { - throw new InvalidKeyException("Unknown type: " + publicKey.getType()); - } - } - - public static boolean verifySignature(ECPublicKey signingKey, byte[] message, byte[] signature) - throws InvalidKeyException - { - if (signingKey == null || message == null || signature == null) { - throw new InvalidKeyException("Values must not be null"); - } - - if (signingKey.getType() == DJB_TYPE) { - return Curve25519.getInstance(BEST) - .verifySignature(((DjbECPublicKey) signingKey).getPublicKey(), message, signature); - } else { - throw new InvalidKeyException("Unknown type: " + signingKey.getType()); - } - } - - public static byte[] calculateSignature(ECPrivateKey signingKey, byte[] message) - throws InvalidKeyException - { - if (signingKey == null || message == null) { - throw new InvalidKeyException("Values must not be null"); - } - - if (signingKey.getType() == DJB_TYPE) { - return Curve25519.getInstance(BEST) - .calculateSignature(((DjbECPrivateKey) signingKey).getPrivateKey(), message); - } else { - throw new InvalidKeyException("Unknown type: " + signingKey.getType()); - } - } - - public static byte[] calculateVrfSignature(ECPrivateKey signingKey, byte[] message) - throws InvalidKeyException - { - if (signingKey == null || message == null) { - throw new InvalidKeyException("Values must not be null"); - } - - if (signingKey.getType() == DJB_TYPE) { - return Curve25519.getInstance(BEST) - .calculateVrfSignature(((DjbECPrivateKey)signingKey).getPrivateKey(), message); - } else { - throw new InvalidKeyException("Unknown type: " + signingKey.getType()); - } - } - - public static byte[] verifyVrfSignature(ECPublicKey signingKey, byte[] message, byte[] signature) - throws InvalidKeyException, VrfSignatureVerificationFailedException - { - if (signingKey == null || message == null || signature == null) { - throw new InvalidKeyException("Values must not be null"); - } - - if (signingKey.getType() == DJB_TYPE) { - return Curve25519.getInstance(BEST) - .verifyVrfSignature(((DjbECPublicKey) signingKey).getPublicKey(), message, signature); - } else { - throw new InvalidKeyException("Unknown type: " + signingKey.getType()); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPrivateKey.java b/service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPrivateKey.java deleted file mode 100644 index 0a8392135..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPrivateKey.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.ecc; - -public class DjbECPrivateKey implements ECPrivateKey { - - private final byte[] privateKey; - - public DjbECPrivateKey(byte[] privateKey) { - this.privateKey = privateKey; - } - - @Override - public byte[] serialize() { - return privateKey; - } - - @Override - public int getType() { - return Curve.DJB_TYPE; - } - - public byte[] getPrivateKey() { - return privateKey; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPublicKey.java b/service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPublicKey.java deleted file mode 100644 index a4dcbc248..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ecc/DjbECPublicKey.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.ecc; - -import org.whispersystems.libsignal.util.ByteUtil; - -import java.math.BigInteger; -import java.util.Arrays; - -public class DjbECPublicKey implements ECPublicKey { - - private final byte[] publicKey; - - public DjbECPublicKey(byte[] publicKey) { - this.publicKey = publicKey; - } - - @Override - public byte[] serialize() { - byte[] type = {Curve.DJB_TYPE}; - return ByteUtil.combine(type, publicKey); - } - - @Override - public int getType() { - return Curve.DJB_TYPE; - } - - @Override - public boolean equals(Object other) { - if (other == null) return false; - if (!(other instanceof DjbECPublicKey)) return false; - - DjbECPublicKey that = (DjbECPublicKey)other; - return Arrays.equals(this.publicKey, that.publicKey); - } - - @Override - public int hashCode() { - return Arrays.hashCode(publicKey); - } - - @Override - public int compareTo(ECPublicKey another) { - return new BigInteger(publicKey).compareTo(new BigInteger(((DjbECPublicKey)another).publicKey)); - } - - public byte[] getPublicKey() { - return publicKey; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECKeyPair.java b/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECKeyPair.java deleted file mode 100644 index ee2f6010e..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECKeyPair.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ecc; - -public class ECKeyPair { - - private final ECPublicKey publicKey; - private final ECPrivateKey privateKey; - - public ECKeyPair(ECPublicKey publicKey, ECPrivateKey privateKey) { - this.publicKey = publicKey; - this.privateKey = privateKey; - } - - public ECPublicKey getPublicKey() { - return publicKey; - } - - public ECPrivateKey getPrivateKey() { - return privateKey; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPrivateKey.java b/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPrivateKey.java deleted file mode 100644 index fb478b062..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPrivateKey.java +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.ecc; - -public interface ECPrivateKey { - public byte[] serialize(); - public int getType(); -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPublicKey.java b/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPublicKey.java deleted file mode 100644 index ec9c9c9b4..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ecc/ECPublicKey.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.ecc; - -public interface ECPublicKey extends Comparable { - - public static final int KEY_SIZE = 33; - - public byte[] serialize(); - - public int getType(); -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/DisplayableFingerprint.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/DisplayableFingerprint.java deleted file mode 100644 index f04aecb49..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/DisplayableFingerprint.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -import org.whispersystems.libsignal.util.ByteUtil; - -public class DisplayableFingerprint { - - private final String localFingerprintNumbers; - private final String remoteFingerprintNumbers; - - DisplayableFingerprint(byte[] localFingerprint, byte[] remoteFingerprint) - { - this.localFingerprintNumbers = getDisplayStringFor(localFingerprint); - this.remoteFingerprintNumbers = getDisplayStringFor(remoteFingerprint); - } - - public String getDisplayText() { - if (localFingerprintNumbers.compareTo(remoteFingerprintNumbers) <= 0) { - return localFingerprintNumbers + remoteFingerprintNumbers; - } else { - return remoteFingerprintNumbers + localFingerprintNumbers; - } - } - - private String getDisplayStringFor(byte[] fingerprint) { - return getEncodedChunk(fingerprint, 0) + - getEncodedChunk(fingerprint, 5) + - getEncodedChunk(fingerprint, 10) + - getEncodedChunk(fingerprint, 15) + - getEncodedChunk(fingerprint, 20) + - getEncodedChunk(fingerprint, 25); - } - - private String getEncodedChunk(byte[] hash, int offset) { - long chunk = ByteUtil.byteArray5ToLong(hash, offset) % 100000; - return String.format("%05d", chunk); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/Fingerprint.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/Fingerprint.java deleted file mode 100644 index edeb3e721..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/Fingerprint.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -public class Fingerprint { - - private final DisplayableFingerprint displayableFingerprint; - private final ScannableFingerprint scannableFingerprint; - - public Fingerprint(DisplayableFingerprint displayableFingerprint, - ScannableFingerprint scannableFingerprint) - { - this.displayableFingerprint = displayableFingerprint; - this.scannableFingerprint = scannableFingerprint; - } - - /** - * @return A text fingerprint that can be displayed and compared remotely. - */ - public DisplayableFingerprint getDisplayableFingerprint() { - return displayableFingerprint; - } - - /** - * @return A scannable fingerprint that can be scanned anc compared locally. - */ - public ScannableFingerprint getScannableFingerprint() { - return scannableFingerprint; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintGenerator.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintGenerator.java deleted file mode 100644 index 49c141c89..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintGenerator.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -import org.whispersystems.libsignal.IdentityKey; - -import java.util.List; - -public interface FingerprintGenerator { - public Fingerprint createFor(String localStableIdentifier, IdentityKey localIdentityKey, - String remoteStableIdentifier, IdentityKey remoteIdentityKey); - - public Fingerprint createFor(String localStableIdentifier, List localIdentityKey, - String remoteStableIdentifier, List remoteIdentityKey); -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintIdentifierMismatchException.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintIdentifierMismatchException.java deleted file mode 100644 index 62764a913..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintIdentifierMismatchException.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -public class FingerprintIdentifierMismatchException extends Exception { - - private final String localIdentifier; - private final String remoteIdentifier; - private final String scannedLocalIdentifier; - private final String scannedRemoteIdentifier; - - public FingerprintIdentifierMismatchException(String localIdentifier, String remoteIdentifier, - String scannedLocalIdentifier, String scannedRemoteIdentifier) - { - this.localIdentifier = localIdentifier; - this.remoteIdentifier = remoteIdentifier; - this.scannedLocalIdentifier = scannedLocalIdentifier; - this.scannedRemoteIdentifier = scannedRemoteIdentifier; - } - - public String getScannedRemoteIdentifier() { - return scannedRemoteIdentifier; - } - - public String getScannedLocalIdentifier() { - return scannedLocalIdentifier; - } - - public String getRemoteIdentifier() { - return remoteIdentifier; - } - - public String getLocalIdentifier() { - return localIdentifier; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintParsingException.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintParsingException.java deleted file mode 100644 index b1930275e..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintParsingException.java +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -public class FingerprintParsingException extends Exception { - - public FingerprintParsingException(Exception nested) { - super(nested); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintProtos.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintProtos.java deleted file mode 100644 index 6f6debb92..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintProtos.java +++ /dev/null @@ -1,1277 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: FingerprintProtocol.proto - -package org.whispersystems.libsignal.fingerprint; - -public final class FingerprintProtos { - private FingerprintProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface LogicalFingerprintOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes content = 1; - /** - * optional bytes content = 1; - * - *
-     *  optional bytes identifier = 2;
-     * 
- */ - boolean hasContent(); - /** - * optional bytes content = 1; - * - *
-     *  optional bytes identifier = 2;
-     * 
- */ - com.google.protobuf.ByteString getContent(); - } - /** - * Protobuf type {@code textsecure.LogicalFingerprint} - */ - public static final class LogicalFingerprint extends - com.google.protobuf.GeneratedMessage - implements LogicalFingerprintOrBuilder { - // Use LogicalFingerprint.newBuilder() to construct. - private LogicalFingerprint(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private LogicalFingerprint(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final LogicalFingerprint defaultInstance; - public static LogicalFingerprint getDefaultInstance() { - return defaultInstance; - } - - public LogicalFingerprint getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private LogicalFingerprint( - 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; - content_ = 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.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_LogicalFingerprint_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_LogicalFingerprint_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.class, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public LogicalFingerprint parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new LogicalFingerprint(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes content = 1; - public static final int CONTENT_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString content_; - /** - * optional bytes content = 1; - * - *
-     *  optional bytes identifier = 2;
-     * 
- */ - public boolean hasContent() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes content = 1; - * - *
-     *  optional bytes identifier = 2;
-     * 
- */ - public com.google.protobuf.ByteString getContent() { - return content_; - } - - private void initFields() { - content_ = 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, content_); - } - 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, content_); - } - 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.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint 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.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint 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.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint 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.LogicalFingerprint} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_LogicalFingerprint_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_LogicalFingerprint_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.class, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder.class); - } - - // Construct using org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.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(); - content_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_LogicalFingerprint_descriptor; - } - - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getDefaultInstanceForType() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - } - - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint build() { - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint buildPartial() { - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint result = new org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.content_ = content_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint) { - return mergeFrom((org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint other) { - if (other == org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance()) return this; - if (other.hasContent()) { - setContent(other.getContent()); - } - 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.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes content = 1; - private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes content = 1; - * - *
-       *  optional bytes identifier = 2;
-       * 
- */ - public boolean hasContent() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes content = 1; - * - *
-       *  optional bytes identifier = 2;
-       * 
- */ - public com.google.protobuf.ByteString getContent() { - return content_; - } - /** - * optional bytes content = 1; - * - *
-       *  optional bytes identifier = 2;
-       * 
- */ - public Builder setContent(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - content_ = value; - onChanged(); - return this; - } - /** - * optional bytes content = 1; - * - *
-       *  optional bytes identifier = 2;
-       * 
- */ - public Builder clearContent() { - bitField0_ = (bitField0_ & ~0x00000001); - content_ = getDefaultInstance().getContent(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.LogicalFingerprint) - } - - static { - defaultInstance = new LogicalFingerprint(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.LogicalFingerprint) - } - - public interface CombinedFingerprintsOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 version = 1; - /** - * optional uint32 version = 1; - */ - boolean hasVersion(); - /** - * optional uint32 version = 1; - */ - int getVersion(); - - // optional .textsecure.LogicalFingerprint localFingerprint = 2; - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - boolean hasLocalFingerprint(); - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getLocalFingerprint(); - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder getLocalFingerprintOrBuilder(); - - // optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - boolean hasRemoteFingerprint(); - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getRemoteFingerprint(); - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder getRemoteFingerprintOrBuilder(); - } - /** - * Protobuf type {@code textsecure.CombinedFingerprints} - */ - public static final class CombinedFingerprints extends - com.google.protobuf.GeneratedMessage - implements CombinedFingerprintsOrBuilder { - // Use CombinedFingerprints.newBuilder() to construct. - private CombinedFingerprints(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private CombinedFingerprints(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final CombinedFingerprints defaultInstance; - public static CombinedFingerprints getDefaultInstance() { - return defaultInstance; - } - - public CombinedFingerprints getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private CombinedFingerprints( - 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; - version_ = input.readUInt32(); - break; - } - case 18: { - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = localFingerprint_.toBuilder(); - } - localFingerprint_ = input.readMessage(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(localFingerprint_); - localFingerprint_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = remoteFingerprint_.toBuilder(); - } - remoteFingerprint_ = input.readMessage(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(remoteFingerprint_); - remoteFingerprint_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - 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.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_CombinedFingerprints_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_CombinedFingerprints_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.class, org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public CombinedFingerprints parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new CombinedFingerprints(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 version = 1; - public static final int VERSION_FIELD_NUMBER = 1; - private int version_; - /** - * optional uint32 version = 1; - */ - public boolean hasVersion() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 version = 1; - */ - public int getVersion() { - return version_; - } - - // optional .textsecure.LogicalFingerprint localFingerprint = 2; - public static final int LOCALFINGERPRINT_FIELD_NUMBER = 2; - private org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint localFingerprint_; - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public boolean hasLocalFingerprint() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getLocalFingerprint() { - return localFingerprint_; - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder getLocalFingerprintOrBuilder() { - return localFingerprint_; - } - - // optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - public static final int REMOTEFINGERPRINT_FIELD_NUMBER = 3; - private org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint remoteFingerprint_; - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public boolean hasRemoteFingerprint() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getRemoteFingerprint() { - return remoteFingerprint_; - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder getRemoteFingerprintOrBuilder() { - return remoteFingerprint_; - } - - private void initFields() { - version_ = 0; - localFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - remoteFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - } - 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, version_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(2, localFingerprint_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, remoteFingerprint_); - } - 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, version_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, localFingerprint_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, remoteFingerprint_); - } - 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.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints 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.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints 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.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints 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.CombinedFingerprints} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprintsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_CombinedFingerprints_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_CombinedFingerprints_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.class, org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.Builder.class); - } - - // Construct using org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getLocalFingerprintFieldBuilder(); - getRemoteFingerprintFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - version_ = 0; - bitField0_ = (bitField0_ & ~0x00000001); - if (localFingerprintBuilder_ == null) { - localFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - } else { - localFingerprintBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - if (remoteFingerprintBuilder_ == null) { - remoteFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - } else { - remoteFingerprintBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.internal_static_textsecure_CombinedFingerprints_descriptor; - } - - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints getDefaultInstanceForType() { - return org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.getDefaultInstance(); - } - - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints build() { - org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints buildPartial() { - org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints result = new org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.version_ = version_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - if (localFingerprintBuilder_ == null) { - result.localFingerprint_ = localFingerprint_; - } else { - result.localFingerprint_ = localFingerprintBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (remoteFingerprintBuilder_ == null) { - result.remoteFingerprint_ = remoteFingerprint_; - } else { - result.remoteFingerprint_ = remoteFingerprintBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints) { - return mergeFrom((org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints other) { - if (other == org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints.getDefaultInstance()) return this; - if (other.hasVersion()) { - setVersion(other.getVersion()); - } - if (other.hasLocalFingerprint()) { - mergeLocalFingerprint(other.getLocalFingerprint()); - } - if (other.hasRemoteFingerprint()) { - mergeRemoteFingerprint(other.getRemoteFingerprint()); - } - 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.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 version = 1; - private int version_ ; - /** - * optional uint32 version = 1; - */ - public boolean hasVersion() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 version = 1; - */ - public int getVersion() { - return version_; - } - /** - * optional uint32 version = 1; - */ - public Builder setVersion(int value) { - bitField0_ |= 0x00000001; - version_ = value; - onChanged(); - return this; - } - /** - * optional uint32 version = 1; - */ - public Builder clearVersion() { - bitField0_ = (bitField0_ & ~0x00000001); - version_ = 0; - onChanged(); - return this; - } - - // optional .textsecure.LogicalFingerprint localFingerprint = 2; - private org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint localFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder> localFingerprintBuilder_; - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public boolean hasLocalFingerprint() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getLocalFingerprint() { - if (localFingerprintBuilder_ == null) { - return localFingerprint_; - } else { - return localFingerprintBuilder_.getMessage(); - } - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public Builder setLocalFingerprint(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint value) { - if (localFingerprintBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - localFingerprint_ = value; - onChanged(); - } else { - localFingerprintBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public Builder setLocalFingerprint( - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder builderForValue) { - if (localFingerprintBuilder_ == null) { - localFingerprint_ = builderForValue.build(); - onChanged(); - } else { - localFingerprintBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public Builder mergeLocalFingerprint(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint value) { - if (localFingerprintBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - localFingerprint_ != org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance()) { - localFingerprint_ = - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.newBuilder(localFingerprint_).mergeFrom(value).buildPartial(); - } else { - localFingerprint_ = value; - } - onChanged(); - } else { - localFingerprintBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public Builder clearLocalFingerprint() { - if (localFingerprintBuilder_ == null) { - localFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - onChanged(); - } else { - localFingerprintBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder getLocalFingerprintBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getLocalFingerprintFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder getLocalFingerprintOrBuilder() { - if (localFingerprintBuilder_ != null) { - return localFingerprintBuilder_.getMessageOrBuilder(); - } else { - return localFingerprint_; - } - } - /** - * optional .textsecure.LogicalFingerprint localFingerprint = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder> - getLocalFingerprintFieldBuilder() { - if (localFingerprintBuilder_ == null) { - localFingerprintBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder>( - localFingerprint_, - getParentForChildren(), - isClean()); - localFingerprint_ = null; - } - return localFingerprintBuilder_; - } - - // optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - private org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint remoteFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder> remoteFingerprintBuilder_; - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public boolean hasRemoteFingerprint() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint getRemoteFingerprint() { - if (remoteFingerprintBuilder_ == null) { - return remoteFingerprint_; - } else { - return remoteFingerprintBuilder_.getMessage(); - } - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public Builder setRemoteFingerprint(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint value) { - if (remoteFingerprintBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - remoteFingerprint_ = value; - onChanged(); - } else { - remoteFingerprintBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public Builder setRemoteFingerprint( - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder builderForValue) { - if (remoteFingerprintBuilder_ == null) { - remoteFingerprint_ = builderForValue.build(); - onChanged(); - } else { - remoteFingerprintBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public Builder mergeRemoteFingerprint(org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint value) { - if (remoteFingerprintBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - remoteFingerprint_ != org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance()) { - remoteFingerprint_ = - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.newBuilder(remoteFingerprint_).mergeFrom(value).buildPartial(); - } else { - remoteFingerprint_ = value; - } - onChanged(); - } else { - remoteFingerprintBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public Builder clearRemoteFingerprint() { - if (remoteFingerprintBuilder_ == null) { - remoteFingerprint_ = org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.getDefaultInstance(); - onChanged(); - } else { - remoteFingerprintBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder getRemoteFingerprintBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getRemoteFingerprintFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - public org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder getRemoteFingerprintOrBuilder() { - if (remoteFingerprintBuilder_ != null) { - return remoteFingerprintBuilder_.getMessageOrBuilder(); - } else { - return remoteFingerprint_; - } - } - /** - * optional .textsecure.LogicalFingerprint remoteFingerprint = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder> - getRemoteFingerprintFieldBuilder() { - if (remoteFingerprintBuilder_ == null) { - remoteFingerprintBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint.Builder, org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprintOrBuilder>( - remoteFingerprint_, - getParentForChildren(), - isClean()); - remoteFingerprint_ = null; - } - return remoteFingerprintBuilder_; - } - - // @@protoc_insertion_point(builder_scope:textsecure.CombinedFingerprints) - } - - static { - defaultInstance = new CombinedFingerprints(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.CombinedFingerprints) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_LogicalFingerprint_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_LogicalFingerprint_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_CombinedFingerprints_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_CombinedFingerprints_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\031FingerprintProtocol.proto\022\ntextsecure\"" + - "%\n\022LogicalFingerprint\022\017\n\007content\030\001 \001(\014\"\234" + - "\001\n\024CombinedFingerprints\022\017\n\007version\030\001 \001(\r" + - "\0228\n\020localFingerprint\030\002 \001(\0132\036.textsecure." + - "LogicalFingerprint\0229\n\021remoteFingerprint\030" + - "\003 \001(\0132\036.textsecure.LogicalFingerprintB=\n" + - "(org.whispersystems.libsignal.fingerprin" + - "tB\021FingerprintProtos" - }; - 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_LogicalFingerprint_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_textsecure_LogicalFingerprint_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_LogicalFingerprint_descriptor, - new java.lang.String[] { "Content", }); - internal_static_textsecure_CombinedFingerprints_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_textsecure_CombinedFingerprints_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_CombinedFingerprints_descriptor, - new java.lang.String[] { "Version", "LocalFingerprint", "RemoteFingerprint", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintVersionMismatchException.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintVersionMismatchException.java deleted file mode 100644 index 79a4eaa14..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/FingerprintVersionMismatchException.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -public class FingerprintVersionMismatchException extends Exception { - - private final int theirVersion; - private final int ourVersion; - - public FingerprintVersionMismatchException(int theirVersion, int ourVersion) { - super(); - this.theirVersion = theirVersion; - this.ourVersion = ourVersion; - } - - public int getTheirVersion() { - return theirVersion; - } - - public int getOurVersion() { - return ourVersion; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/NumericFingerprintGenerator.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/NumericFingerprintGenerator.java deleted file mode 100644 index 3cc7c5e2b..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/NumericFingerprintGenerator.java +++ /dev/null @@ -1,127 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.libsignal.util.IdentityKeyComparator; - -import java.io.ByteArrayOutputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -public class NumericFingerprintGenerator implements FingerprintGenerator { - - private static final int FINGERPRINT_VERSION = 0; - - private final int iterations; - - /** - * Construct a fingerprint generator for 60 digit numerics. - * - * @param iterations The number of internal iterations to perform in the process of - * generating a fingerprint. This needs to be constant, and synchronized - * across all clients. - * - * The higher the iteration count, the higher the security level: - * - * - 1024 ~ 109.7 bits - * - 1400 > 110 bits - * - 5200 > 112 bits - */ - public NumericFingerprintGenerator(int iterations) { - this.iterations = iterations; - } - - /** - * Generate a scannable and displayble fingerprint. - * - * @param localStableIdentifier The client's "stable" identifier. - * @param localIdentityKey The client's identity key. - * @param remoteStableIdentifier The remote party's "stable" identifier. - * @param remoteIdentityKey The remote party's identity key. - * @return A unique fingerprint for this conversation. - */ - @Override - public Fingerprint createFor(String localStableIdentifier, final IdentityKey localIdentityKey, - String remoteStableIdentifier, final IdentityKey remoteIdentityKey) - { - return createFor(localStableIdentifier, - new LinkedList() {{ - add(localIdentityKey); - }}, - remoteStableIdentifier, - new LinkedList() {{ - add(remoteIdentityKey); - }}); - } - - /** - * Generate a scannable and displayble fingerprint for logical identities that have multiple - * physical keys. - * - * Do not trust the output of this unless you've been through the device consistency process - * for the provided localIdentityKeys. - * - * @param localStableIdentifier The client's "stable" identifier. - * @param localIdentityKeys The client's collection of physical identity keys. - * @param remoteStableIdentifier The remote party's "stable" identifier. - * @param remoteIdentityKeys The remote party's collection of physical identity key. - * @return A unique fingerprint for this conversation. - */ - public Fingerprint createFor(String localStableIdentifier, List localIdentityKeys, - String remoteStableIdentifier, List remoteIdentityKeys) - { - byte[] localFingerprint = getFingerprint(iterations, localStableIdentifier, localIdentityKeys); - byte[] remoteFingerprint = getFingerprint(iterations, remoteStableIdentifier, remoteIdentityKeys); - - DisplayableFingerprint displayableFingerprint = new DisplayableFingerprint(localFingerprint, - remoteFingerprint); - - ScannableFingerprint scannableFingerprint = new ScannableFingerprint(localFingerprint, - remoteFingerprint); - - return new Fingerprint(displayableFingerprint, scannableFingerprint); - } - - private byte[] getFingerprint(int iterations, String stableIdentifier, List unsortedIdentityKeys) { - try { - MessageDigest digest = MessageDigest.getInstance("SHA-512"); - byte[] publicKey = getLogicalKeyBytes(unsortedIdentityKeys); - byte[] hash = ByteUtil.combine(ByteUtil.shortToByteArray(FINGERPRINT_VERSION), - publicKey, stableIdentifier.getBytes()); - - for (int i=0;i identityKeys) { - ArrayList sortedIdentityKeys = new ArrayList(identityKeys); - Collections.sort(sortedIdentityKeys, new IdentityKeyComparator()); - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - for (IdentityKey identityKey : sortedIdentityKeys) { - byte[] publicKeyBytes = identityKey.getPublicKey().serialize(); - baos.write(publicKeyBytes, 0, publicKeyBytes.length); - } - - return baos.toByteArray(); - } - - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/ScannableFingerprint.java b/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/ScannableFingerprint.java deleted file mode 100644 index 91b58c8f4..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/fingerprint/ScannableFingerprint.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (C) 2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.fingerprint; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.fingerprint.FingerprintProtos.CombinedFingerprints; -import org.whispersystems.libsignal.fingerprint.FingerprintProtos.LogicalFingerprint; -import org.whispersystems.libsignal.util.ByteUtil; - -import java.security.MessageDigest; - -public class ScannableFingerprint { - - private static final int VERSION = 1; - - private final CombinedFingerprints fingerprints; - - ScannableFingerprint(byte[] localFingerprintData, byte[] remoteFingerprintData) - { - LogicalFingerprint localFingerprint = LogicalFingerprint.newBuilder() - .setContent(ByteString.copyFrom(ByteUtil.trim(localFingerprintData, 32))) - .build(); - - LogicalFingerprint remoteFingerprint = LogicalFingerprint.newBuilder() - .setContent(ByteString.copyFrom(ByteUtil.trim(remoteFingerprintData, 32))) - .build(); - - this.fingerprints = CombinedFingerprints.newBuilder() - .setVersion(VERSION) - .setLocalFingerprint(localFingerprint) - .setRemoteFingerprint(remoteFingerprint) - .build(); - } - - /** - * @return A byte string to be displayed in a QR code. - */ - public byte[] getSerialized() { - return fingerprints.toByteArray(); - } - - /** - * Compare a scanned QR code with what we expect. - * - * @param scannedFingerprintData The scanned data - * @return True if matching, otehrwise false. - * @throws FingerprintVersionMismatchException if the scanned fingerprint is the wrong version. - */ - public boolean compareTo(byte[] scannedFingerprintData) - throws FingerprintVersionMismatchException, - FingerprintParsingException - { - try { - CombinedFingerprints scanned = CombinedFingerprints.parseFrom(scannedFingerprintData); - - if (!scanned.hasRemoteFingerprint() || !scanned.hasLocalFingerprint() || - !scanned.hasVersion() || scanned.getVersion() != VERSION) - { - throw new FingerprintVersionMismatchException(scanned.getVersion(), VERSION); - } - - return MessageDigest.isEqual(fingerprints.getLocalFingerprint().getContent().toByteArray(), scanned.getRemoteFingerprint().getContent().toByteArray()) && - MessageDigest.isEqual(fingerprints.getRemoteFingerprint().getContent().toByteArray(), scanned.getLocalFingerprint().getContent().toByteArray()); - } catch (InvalidProtocolBufferException e) { - throw new FingerprintParsingException(e); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/GroupCipher.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/GroupCipher.java deleted file mode 100644 index 3d06fafd6..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/GroupCipher.java +++ /dev/null @@ -1,228 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups; - -import org.whispersystems.libsignal.DecryptionCallback; -import org.whispersystems.libsignal.DuplicateMessageException; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.NoSessionException; -import org.whispersystems.libsignal.groups.ratchet.SenderChainKey; -import org.whispersystems.libsignal.groups.ratchet.SenderMessageKey; -import org.whispersystems.libsignal.groups.state.SenderKeyRecord; -import org.whispersystems.libsignal.groups.state.SenderKeyState; -import org.whispersystems.libsignal.groups.state.SenderKeyStore; -import org.whispersystems.libsignal.protocol.SenderKeyMessage; - -import java.security.InvalidAlgorithmParameterException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -/** - * The main entry point for Signal Protocol group encrypt/decrypt operations. - * - * Once a session has been established with {@link org.whispersystems.libsignal.groups.GroupSessionBuilder} - * and a {@link org.whispersystems.libsignal.protocol.SenderKeyDistributionMessage} has been - * distributed to each member of the group, this class can be used for all subsequent encrypt/decrypt - * operations within that session (ie: until group membership changes). - * - * @author Moxie Marlinspike - */ -public class GroupCipher { - - static final Object LOCK = new Object(); - - private final SenderKeyStore senderKeyStore; - private final SenderKeyName senderKeyId; - - public GroupCipher(SenderKeyStore senderKeyStore, SenderKeyName senderKeyId) { - this.senderKeyStore = senderKeyStore; - this.senderKeyId = senderKeyId; - } - - /** - * Encrypt a message. - * - * @param paddedPlaintext The plaintext message bytes, optionally padded. - * @return Ciphertext. - * @throws NoSessionException - */ - public byte[] encrypt(byte[] paddedPlaintext) throws NoSessionException { - synchronized (LOCK) { - try { - SenderKeyRecord record = senderKeyStore.loadSenderKey(senderKeyId); - SenderKeyState senderKeyState = record.getSenderKeyState(); - SenderMessageKey senderKey = senderKeyState.getSenderChainKey().getSenderMessageKey(); - byte[] ciphertext = getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext); - - SenderKeyMessage senderKeyMessage = new SenderKeyMessage(senderKeyState.getKeyId(), - senderKey.getIteration(), - ciphertext, - senderKeyState.getSigningKeyPrivate()); - - senderKeyState.setSenderChainKey(senderKeyState.getSenderChainKey().getNext()); - - senderKeyStore.storeSenderKey(senderKeyId, record); - - return senderKeyMessage.serialize(); - } catch (InvalidKeyIdException e) { - throw new NoSessionException(e); - } - } - } - - /** - * Decrypt a SenderKey group message. - * - * @param senderKeyMessageBytes The received ciphertext. - * @return Plaintext - * @throws LegacyMessageException - * @throws InvalidMessageException - * @throws DuplicateMessageException - */ - public byte[] decrypt(byte[] senderKeyMessageBytes) - throws LegacyMessageException, DuplicateMessageException, InvalidMessageException, NoSessionException - { - return decrypt(senderKeyMessageBytes, new NullDecryptionCallback()); - } - - /** - * Decrypt a SenderKey group message. - * - * @param senderKeyMessageBytes The received ciphertext. - * @param callback A callback that is triggered after decryption is complete, - * but before the updated session state has been committed to the session - * DB. This allows some implementations to store the committed plaintext - * to a DB first, in case they are concerned with a crash happening between - * the time the session state is updated but before they're able to store - * the plaintext to disk. - * @return Plaintext - * @throws LegacyMessageException - * @throws InvalidMessageException - * @throws DuplicateMessageException - */ - public byte[] decrypt(byte[] senderKeyMessageBytes, DecryptionCallback callback) - throws LegacyMessageException, InvalidMessageException, DuplicateMessageException, - NoSessionException - { - synchronized (LOCK) { - try { - SenderKeyRecord record = senderKeyStore.loadSenderKey(senderKeyId); - - if (record.isEmpty()) { - throw new NoSessionException("No sender key for: " + senderKeyId); - } - - SenderKeyMessage senderKeyMessage = new SenderKeyMessage(senderKeyMessageBytes); - SenderKeyState senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId()); - - senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic()); - - SenderMessageKey senderKey = getSenderKey(senderKeyState, senderKeyMessage.getIteration()); - - byte[] plaintext = getPlainText(senderKey.getIv(), senderKey.getCipherKey(), senderKeyMessage.getCipherText()); - - callback.handlePlaintext(plaintext); - - senderKeyStore.storeSenderKey(senderKeyId, record); - - return plaintext; - } catch (org.whispersystems.libsignal.InvalidKeyException e) { - throw new InvalidMessageException(e); - } catch (InvalidKeyIdException e) { - throw new InvalidMessageException(e); - } - } - } - - private SenderMessageKey getSenderKey(SenderKeyState senderKeyState, int iteration) - throws DuplicateMessageException, InvalidMessageException - { - SenderChainKey senderChainKey = senderKeyState.getSenderChainKey(); - - if (senderChainKey.getIteration() > iteration) { - if (senderKeyState.hasSenderMessageKey(iteration)) { - return senderKeyState.removeSenderMessageKey(iteration); - } else { - throw new DuplicateMessageException("Received message with old counter: " + - senderChainKey.getIteration() + " , " + iteration); - } - } - - if (iteration - senderChainKey.getIteration() > 2000) { - throw new InvalidMessageException("Over 2000 messages into the future!"); - } - - while (senderChainKey.getIteration() < iteration) { - senderKeyState.addSenderMessageKey(senderChainKey.getSenderMessageKey()); - senderChainKey = senderChainKey.getNext(); - } - - senderKeyState.setSenderChainKey(senderChainKey.getNext()); - return senderChainKey.getSenderMessageKey(); - } - - private byte[] getPlainText(byte[] iv, byte[] key, byte[] ciphertext) - throws InvalidMessageException - { - try { - IvParameterSpec ivParameterSpec = new IvParameterSpec(iv); - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - - cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, "AES"), ivParameterSpec); - - return cipher.doFinal(ciphertext); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch(java.security.InvalidKeyException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new InvalidMessageException(e); - } catch (BadPaddingException e) { - throw new InvalidMessageException(e); - } - } - - private byte[] getCipherText(byte[] iv, byte[] key, byte[] plaintext) { - try { - IvParameterSpec ivParameterSpec = new IvParameterSpec(iv); - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - - cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), ivParameterSpec); - - return cipher.doFinal(plaintext); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } - } - - private static class NullDecryptionCallback implements DecryptionCallback { - @Override - public void handlePlaintext(byte[] plaintext) {} - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/GroupSessionBuilder.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/GroupSessionBuilder.java deleted file mode 100644 index f8f2bbb19..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/GroupSessionBuilder.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.groups.state.SenderKeyRecord; -import org.whispersystems.libsignal.groups.state.SenderKeyState; -import org.whispersystems.libsignal.groups.state.SenderKeyStore; -import org.whispersystems.libsignal.protocol.SenderKeyDistributionMessage; -import org.whispersystems.libsignal.util.KeyHelper; - -/** - * GroupSessionBuilder is responsible for setting up group SenderKey encrypted sessions. - * - * Once a session has been established, {@link org.whispersystems.libsignal.groups.GroupCipher} - * can be used to encrypt/decrypt messages in that session. - *

- * The built sessions are unidirectional: they can be used either for sending or for receiving, - * but not both. - * - * Sessions are constructed per (groupId + senderId + deviceId) tuple. Remote logical users - * are identified by their senderId, and each logical recipientId can have multiple physical - * devices. - * - * @author Moxie Marlinspike - */ - -public class GroupSessionBuilder { - - private final SenderKeyStore senderKeyStore; - - public GroupSessionBuilder(SenderKeyStore senderKeyStore) { - this.senderKeyStore = senderKeyStore; - } - - /** - * Construct a group session for receiving messages from senderKeyName. - * - * @param senderKeyName The (groupId, senderId, deviceId) tuple associated with the SenderKeyDistributionMessage. - * @param senderKeyDistributionMessage A received SenderKeyDistributionMessage. - */ - public void process(SenderKeyName senderKeyName, SenderKeyDistributionMessage senderKeyDistributionMessage) { - synchronized (GroupCipher.LOCK) { - SenderKeyRecord senderKeyRecord = senderKeyStore.loadSenderKey(senderKeyName); - senderKeyRecord.addSenderKeyState(senderKeyDistributionMessage.getId(), - senderKeyDistributionMessage.getIteration(), - senderKeyDistributionMessage.getChainKey(), - senderKeyDistributionMessage.getSignatureKey()); - senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord); - } - } - - /** - * Construct a group session for sending messages. - * - * @param senderKeyName The (groupId, senderId, deviceId) tuple. In this case, 'senderId' should be the caller. - * @return A SenderKeyDistributionMessage that is individually distributed to each member of the group. - */ - public SenderKeyDistributionMessage create(SenderKeyName senderKeyName) { - synchronized (GroupCipher.LOCK) { - try { - SenderKeyRecord senderKeyRecord = senderKeyStore.loadSenderKey(senderKeyName); - - if (senderKeyRecord.isEmpty()) { - senderKeyRecord.setSenderKeyState(KeyHelper.generateSenderKeyId(), - 0, - KeyHelper.generateSenderKey(), - KeyHelper.generateSenderSigningKey()); - senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord); - } - - SenderKeyState state = senderKeyRecord.getSenderKeyState(); - - return new SenderKeyDistributionMessage(state.getKeyId(), - state.getSenderChainKey().getIteration(), - state.getSenderChainKey().getSeed(), - state.getSigningKeyPublic()); - - } catch (InvalidKeyIdException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/SenderKeyName.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/SenderKeyName.java deleted file mode 100644 index f9b6a01d5..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/SenderKeyName.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups; - -import org.whispersystems.libsignal.SignalProtocolAddress; - -/** - * A representation of a (groupId + senderId + deviceId) tuple. - */ -public class SenderKeyName { - - private final String groupId; - private final SignalProtocolAddress sender; - - public SenderKeyName(String groupId, SignalProtocolAddress sender) { - this.groupId = groupId; - this.sender = sender; - } - - public String getGroupId() { - return groupId; - } - - public SignalProtocolAddress getSender() { - return sender; - } - - public String serialize() { - return groupId + "::" + sender.getName() + "::" + String.valueOf(sender.getDeviceId()); - } - - @Override - public boolean equals(Object other) { - if (other == null) return false; - if (!(other instanceof SenderKeyName)) return false; - - SenderKeyName that = (SenderKeyName)other; - - return - this.groupId.equals(that.groupId) && - this.sender.equals(that.sender); - } - - @Override - public int hashCode() { - return this.groupId.hashCode() ^ this.sender.hashCode(); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderChainKey.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderChainKey.java deleted file mode 100644 index f5e39c079..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderChainKey.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups.ratchet; - -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -/** - * Each SenderKey is a "chain" of keys, each derived from the previous. - * - * At any given point in time, the state of a SenderKey can be represented - * as the current chain key value, along with its iteration count. From there, - * subsequent iterations can be derived, as well as individual message keys from - * each chain key. - * - * @author Moxie Marlinspike - */ -public class SenderChainKey { - - private static final byte[] MESSAGE_KEY_SEED = {0x01}; - private static final byte[] CHAIN_KEY_SEED = {0x02}; - - private final int iteration; - private final byte[] chainKey; - - public SenderChainKey(int iteration, byte[] chainKey) { - this.iteration = iteration; - this.chainKey = chainKey; - } - - public int getIteration() { - return iteration; - } - - public SenderMessageKey getSenderMessageKey() { - return new SenderMessageKey(iteration, getDerivative(MESSAGE_KEY_SEED, chainKey)); - } - - public SenderChainKey getNext() { - return new SenderChainKey(iteration + 1, getDerivative(CHAIN_KEY_SEED, chainKey)); - } - - public byte[] getSeed() { - return chainKey; - } - - private byte[] getDerivative(byte[] seed, byte[] key) { - try { - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(key, "HmacSHA256")); - - return mac.doFinal(seed); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderMessageKey.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderMessageKey.java deleted file mode 100644 index 8cc18abb9..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/ratchet/SenderMessageKey.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.groups.ratchet; - -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.libsignal.util.ByteUtil; - -/** - * The final symmetric material (IV and Cipher Key) used for encrypting - * individual SenderKey messages. - * - * @author Moxie Marlinspike - */ -public class SenderMessageKey { - - private final int iteration; - private final byte[] iv; - private final byte[] cipherKey; - private final byte[] seed; - - public SenderMessageKey(int iteration, byte[] seed) { - byte[] derivative = new HKDFv3().deriveSecrets(seed, "WhisperGroup".getBytes(), 48); - byte[][] parts = ByteUtil.split(derivative, 16, 32); - - this.iteration = iteration; - this.seed = seed; - this.iv = parts[0]; - this.cipherKey = parts[1]; - } - - public int getIteration() { - return iteration; - } - - public byte[] getIv() { - return iv; - } - - public byte[] getCipherKey() { - return cipherKey; - } - - public byte[] getSeed() { - return seed; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyRecord.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyRecord.java deleted file mode 100644 index 33c530978..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyRecord.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups.state; - -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.state.StorageProtos; - -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; - -import static org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure; - -/** - * A durable representation of a set of SenderKeyStates for a specific - * SenderKeyName. - * - * @author Moxie Marlisnpike - */ -public class SenderKeyRecord { - - private static final int MAX_STATES = 5; - - private LinkedList senderKeyStates = new LinkedList(); - - public SenderKeyRecord() {} - - public SenderKeyRecord(byte[] serialized) throws IOException { - SenderKeyRecordStructure senderKeyRecordStructure = SenderKeyRecordStructure.parseFrom(serialized); - - for (StorageProtos.SenderKeyStateStructure structure : senderKeyRecordStructure.getSenderKeyStatesList()) { - this.senderKeyStates.add(new SenderKeyState(structure)); - } - } - - public boolean isEmpty() { - return senderKeyStates.isEmpty(); - } - - public SenderKeyState getSenderKeyState() throws InvalidKeyIdException { - if (!senderKeyStates.isEmpty()) { - return senderKeyStates.get(0); - } else { - throw new InvalidKeyIdException("No key state in record!"); - } - } - - public SenderKeyState getSenderKeyState(int keyId) throws InvalidKeyIdException { - for (SenderKeyState state : senderKeyStates) { - if (state.getKeyId() == keyId) { - return state; - } - } - - throw new InvalidKeyIdException("No keys for: " + keyId); - } - - public void addSenderKeyState(int id, int iteration, byte[] chainKey, ECPublicKey signatureKey) { - senderKeyStates.addFirst(new SenderKeyState(id, iteration, chainKey, signatureKey)); - - if (senderKeyStates.size() > MAX_STATES) { - senderKeyStates.removeLast(); - } - } - - public void setSenderKeyState(int id, int iteration, byte[] chainKey, ECKeyPair signatureKey) { - senderKeyStates.clear(); - senderKeyStates.add(new SenderKeyState(id, iteration, chainKey, signatureKey)); - } - - public byte[] serialize() { - SenderKeyRecordStructure.Builder recordStructure = SenderKeyRecordStructure.newBuilder(); - - for (SenderKeyState senderKeyState : senderKeyStates) { - recordStructure.addSenderKeyStates(senderKeyState.getStructure()); - } - - return recordStructure.build().toByteArray(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyState.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyState.java deleted file mode 100644 index 0dd89f5fd..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyState.java +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups.state; - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.groups.ratchet.SenderChainKey; -import org.whispersystems.libsignal.groups.ratchet.SenderMessageKey; -import org.whispersystems.libsignal.util.guava.Optional; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import static org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure; - -/** - * Represents the state of an individual SenderKey ratchet. - * - * @author Moxie Marlinspike - */ -public class SenderKeyState { - - private static final int MAX_MESSAGE_KEYS = 2000; - - private SenderKeyStateStructure senderKeyStateStructure; - - public SenderKeyState(int id, int iteration, byte[] chainKey, ECPublicKey signatureKey) { - this(id, iteration, chainKey, signatureKey, Optional.absent()); - } - - public SenderKeyState(int id, int iteration, byte[] chainKey, ECKeyPair signatureKey) { - this(id, iteration, chainKey, signatureKey.getPublicKey(), Optional.of(signatureKey.getPrivateKey())); - } - - private SenderKeyState(int id, int iteration, byte[] chainKey, - ECPublicKey signatureKeyPublic, - Optional signatureKeyPrivate) - { - SenderKeyStateStructure.SenderChainKey senderChainKeyStructure = - SenderKeyStateStructure.SenderChainKey.newBuilder() - .setIteration(iteration) - .setSeed(ByteString.copyFrom(chainKey)) - .build(); - - SenderKeyStateStructure.SenderSigningKey.Builder signingKeyStructure = - SenderKeyStateStructure.SenderSigningKey.newBuilder() - .setPublic(ByteString.copyFrom(signatureKeyPublic.serialize())); - - if (signatureKeyPrivate.isPresent()) { - signingKeyStructure.setPrivate(ByteString.copyFrom(signatureKeyPrivate.get().serialize())); - } - - this.senderKeyStateStructure = SenderKeyStateStructure.newBuilder() - .setSenderKeyId(id) - .setSenderChainKey(senderChainKeyStructure) - .setSenderSigningKey(signingKeyStructure) - .build(); - } - - public SenderKeyState(SenderKeyStateStructure senderKeyStateStructure) { - this.senderKeyStateStructure = senderKeyStateStructure; - } - - public int getKeyId() { - return senderKeyStateStructure.getSenderKeyId(); - } - - public SenderChainKey getSenderChainKey() { - return new SenderChainKey(senderKeyStateStructure.getSenderChainKey().getIteration(), - senderKeyStateStructure.getSenderChainKey().getSeed().toByteArray()); - } - - public void setSenderChainKey(SenderChainKey chainKey) { - SenderKeyStateStructure.SenderChainKey senderChainKeyStructure = - SenderKeyStateStructure.SenderChainKey.newBuilder() - .setIteration(chainKey.getIteration()) - .setSeed(ByteString.copyFrom(chainKey.getSeed())) - .build(); - - this.senderKeyStateStructure = senderKeyStateStructure.toBuilder() - .setSenderChainKey(senderChainKeyStructure) - .build(); - } - - public ECPublicKey getSigningKeyPublic() throws InvalidKeyException { - return Curve.decodePoint(senderKeyStateStructure.getSenderSigningKey() - .getPublic() - .toByteArray(), 0); - } - - public ECPrivateKey getSigningKeyPrivate() { - return Curve.decodePrivatePoint(senderKeyStateStructure.getSenderSigningKey() - .getPrivate().toByteArray()); - } - - public boolean hasSenderMessageKey(int iteration) { - for (SenderKeyStateStructure.SenderMessageKey senderMessageKey : senderKeyStateStructure.getSenderMessageKeysList()) { - if (senderMessageKey.getIteration() == iteration) return true; - } - - return false; - } - - public void addSenderMessageKey(SenderMessageKey senderMessageKey) { - SenderKeyStateStructure.SenderMessageKey senderMessageKeyStructure = - SenderKeyStateStructure.SenderMessageKey.newBuilder() - .setIteration(senderMessageKey.getIteration()) - .setSeed(ByteString.copyFrom(senderMessageKey.getSeed())) - .build(); - - SenderKeyStateStructure.Builder builder = this.senderKeyStateStructure.toBuilder(); - - builder.addSenderMessageKeys(senderMessageKeyStructure); - - if (builder.getSenderMessageKeysCount() > MAX_MESSAGE_KEYS) { - builder.removeSenderMessageKeys(0); - } - - this.senderKeyStateStructure = builder.build(); - } - - public SenderMessageKey removeSenderMessageKey(int iteration) { - List keys = new LinkedList(senderKeyStateStructure.getSenderMessageKeysList()); - Iterator iterator = keys.iterator(); - - SenderKeyStateStructure.SenderMessageKey result = null; - - while (iterator.hasNext()) { - SenderKeyStateStructure.SenderMessageKey senderMessageKey = iterator.next(); - - if (senderMessageKey.getIteration() == iteration) { - result = senderMessageKey; - iterator.remove(); - break; - } - } - - this.senderKeyStateStructure = this.senderKeyStateStructure.toBuilder() - .clearSenderMessageKeys() - .addAllSenderMessageKeys(keys) - .build(); - - if (result != null) { - return new SenderMessageKey(result.getIteration(), result.getSeed().toByteArray()); - } else { - return null; - } - } - - public SenderKeyStateStructure getStructure() { - return senderKeyStateStructure; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyStore.java deleted file mode 100644 index 123bb9c41..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/groups/state/SenderKeyStore.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.groups.state; - -import org.whispersystems.libsignal.groups.SenderKeyName; - -public interface SenderKeyStore { - - /** - * Commit to storage the {@link org.whispersystems.libsignal.groups.state.SenderKeyRecord} for a - * given (groupId + senderId + deviceId) tuple. - * - * @param senderKeyName the (groupId + senderId + deviceId) tuple. - * @param record the current SenderKeyRecord for the specified senderKeyName. - */ - public void storeSenderKey(SenderKeyName senderKeyName, SenderKeyRecord record); - - /** - * Returns a copy of the {@link org.whispersystems.libsignal.groups.state.SenderKeyRecord} - * corresponding to the (groupId + senderId + deviceId) tuple, or a new SenderKeyRecord if - * one does not currently exist. - *

- * It is important that implementations return a copy of the current durable information. The - * returned SenderKeyRecord 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 senderKeyName The (groupId + senderId + deviceId) tuple. - * @return a copy of the SenderKeyRecord corresponding to the (groupId + senderId + deviceId tuple, or - * a new SenderKeyRecord if one does not currently exist. - */ - - public SenderKeyRecord loadSenderKey(SenderKeyName senderKeyName); -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedMessageSecrets.java b/service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedMessageSecrets.java deleted file mode 100644 index 47c138e65..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedMessageSecrets.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.kdf; - -import org.whispersystems.libsignal.util.ByteUtil; - -import java.text.ParseException; - -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class DerivedMessageSecrets { - - public static final int SIZE = 80; - private static final int CIPHER_KEY_LENGTH = 32; - private static final int MAC_KEY_LENGTH = 32; - private static final int IV_LENGTH = 16; - - private final SecretKeySpec cipherKey; - private final SecretKeySpec macKey; - private final IvParameterSpec iv; - - public DerivedMessageSecrets(byte[] okm) { - try { - byte[][] keys = ByteUtil.split(okm, CIPHER_KEY_LENGTH, MAC_KEY_LENGTH, IV_LENGTH); - - this.cipherKey = new SecretKeySpec(keys[0], "AES"); - this.macKey = new SecretKeySpec(keys[1], "HmacSHA256"); - this.iv = new IvParameterSpec(keys[2]); - } catch (ParseException e) { - throw new AssertionError(e); - } - } - - public SecretKeySpec getCipherKey() { - return cipherKey; - } - - public SecretKeySpec getMacKey() { - return macKey; - } - - public IvParameterSpec getIv() { - return iv; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedRootSecrets.java b/service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedRootSecrets.java deleted file mode 100644 index 877107141..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/kdf/DerivedRootSecrets.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.kdf; - -import org.whispersystems.libsignal.util.ByteUtil; - -public class DerivedRootSecrets { - - public static final int SIZE = 64; - - private final byte[] rootKey; - private final byte[] chainKey; - - public DerivedRootSecrets(byte[] okm) { - byte[][] keys = ByteUtil.split(okm, 32, 32); - this.rootKey = keys[0]; - this.chainKey = keys[1]; - } - - public byte[] getRootKey() { - return rootKey; - } - - public byte[] getChainKey() { - return chainKey; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/kdf/HKDF.java b/service/java/src/main/java/org/whispersystems/libsignal/kdf/HKDF.java deleted file mode 100644 index 6607ba7e0..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/kdf/HKDF.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Copyright (C) 2013-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.kdf; - -import java.io.ByteArrayOutputStream; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -public abstract class HKDF { - - private static final int HASH_OUTPUT_SIZE = 32; - - public static HKDF createFor(int messageVersion) { - switch (messageVersion) { - case 2: return new HKDFv2(); - case 3: return new HKDFv3(); - default: throw new AssertionError("Unknown version: " + messageVersion); - } - } - - public byte[] deriveSecrets(byte[] inputKeyMaterial, byte[] info, int outputLength) { - byte[] salt = new byte[HASH_OUTPUT_SIZE]; - return deriveSecrets(inputKeyMaterial, salt, info, outputLength); - } - - public byte[] deriveSecrets(byte[] inputKeyMaterial, byte[] salt, byte[] info, int outputLength) { - byte[] prk = extract(salt, inputKeyMaterial); - return expand(prk, info, outputLength); - } - - private byte[] extract(byte[] salt, byte[] inputKeyMaterial) { - try { - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(salt, "HmacSHA256")); - return mac.doFinal(inputKeyMaterial); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - - private byte[] expand(byte[] prk, byte[] info, int outputSize) { - try { - int iterations = (int) Math.ceil((double) outputSize / (double) HASH_OUTPUT_SIZE); - byte[] mixin = new byte[0]; - ByteArrayOutputStream results = new ByteArrayOutputStream(); - int remainingBytes = outputSize; - - for (int i= getIterationStartOffset();i - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.protocol; - -public interface CiphertextMessage { - - public static final int CURRENT_VERSION = 3; - - public static final int WHISPER_TYPE = 2; - public static final int PREKEY_TYPE = 3; - public static final int SENDERKEY_TYPE = 4; - public static final int SENDERKEY_DISTRIBUTION_TYPE = 5; - public static final int CLOSED_GROUP_CIPHERTEXT = 6; - public static final int FALLBACK_MESSAGE_TYPE = 999; // Loki - - // This should be the worst case (worse than V2). So not always accurate, but good enough for padding. - public static final int ENCRYPTED_MESSAGE_OVERHEAD = 53; - - public byte[] serialize(); - - public int getType(); - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/protocol/DeviceConsistencyMessage.java b/service/java/src/main/java/org/whispersystems/libsignal/protocol/DeviceConsistencyMessage.java deleted file mode 100644 index bd5f7dca5..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/protocol/DeviceConsistencyMessage.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.whispersystems.libsignal.protocol; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.curve25519.VrfSignatureVerificationFailedException; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.devices.DeviceConsistencyCommitment; -import org.whispersystems.libsignal.devices.DeviceConsistencySignature; -import org.whispersystems.libsignal.ecc.Curve; - -public class DeviceConsistencyMessage { - - private final DeviceConsistencySignature signature; - private final int generation; - private final byte[] serialized; - - public DeviceConsistencyMessage(DeviceConsistencyCommitment commitment, IdentityKeyPair identityKeyPair) { - try { - byte[] signatureBytes = Curve.calculateVrfSignature(identityKeyPair.getPrivateKey(), commitment.toByteArray()); - byte[] vrfOutputBytes = Curve.verifyVrfSignature(identityKeyPair.getPublicKey().getPublicKey(), commitment.toByteArray(), signatureBytes); - - this.generation = commitment.getGeneration(); - this.signature = new DeviceConsistencySignature(signatureBytes, vrfOutputBytes); - this.serialized = SignalProtos.DeviceConsistencyCodeMessage.newBuilder() - .setGeneration(commitment.getGeneration()) - .setSignature(ByteString.copyFrom(signature.getSignature())) - .build() - .toByteArray(); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (VrfSignatureVerificationFailedException e) { - throw new AssertionError(e); - } - } - - public DeviceConsistencyMessage(DeviceConsistencyCommitment commitment, byte[] serialized, IdentityKey identityKey) throws InvalidMessageException { - try { - SignalProtos.DeviceConsistencyCodeMessage message = SignalProtos.DeviceConsistencyCodeMessage.parseFrom(serialized); - byte[] vrfOutputBytes = Curve.verifyVrfSignature(identityKey.getPublicKey(), commitment.toByteArray(), message.getSignature().toByteArray()); - - this.generation = message.getGeneration(); - this.signature = new DeviceConsistencySignature(message.getSignature().toByteArray(), vrfOutputBytes); - this.serialized = serialized; - } catch (InvalidProtocolBufferException e) { - throw new InvalidMessageException(e); - } catch (InvalidKeyException e) { - throw new InvalidMessageException(e); - } catch (VrfSignatureVerificationFailedException e) { - throw new InvalidMessageException(e); - } - } - - public byte[] getSerialized() { - return serialized; - } - - public DeviceConsistencySignature getSignature() { - return signature; - } - - public int getGeneration() { - return generation; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/protocol/PreKeySignalMessage.java b/service/java/src/main/java/org/whispersystems/libsignal/protocol/PreKeySignalMessage.java deleted file mode 100644 index d3f982c96..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/protocol/PreKeySignalMessage.java +++ /dev/null @@ -1,143 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.protocol; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.libsignal.util.guava.Optional; - - -public class PreKeySignalMessage implements CiphertextMessage { - - private final int version; - private final int registrationId; - private final Optional preKeyId; - private final int signedPreKeyId; - private final ECPublicKey baseKey; - private final IdentityKey identityKey; - private final SignalMessage message; - private final byte[] serialized; - - public PreKeySignalMessage(byte[] serialized) - throws InvalidMessageException, InvalidVersionException - { - try { - this.version = ByteUtil.highBitsToInt(serialized[0]); - - if (this.version > CiphertextMessage.CURRENT_VERSION) { - throw new InvalidVersionException("Unknown version: " + this.version); - } - - if (this.version < CiphertextMessage.CURRENT_VERSION) { - throw new LegacyMessageException("Legacy version: " + this.version); - } - - SignalProtos.PreKeySignalMessage preKeyWhisperMessage - = SignalProtos.PreKeySignalMessage.parseFrom(ByteString.copyFrom(serialized, 1, - serialized.length-1)); - - if (!preKeyWhisperMessage.hasSignedPreKeyId() || - !preKeyWhisperMessage.hasBaseKey() || - !preKeyWhisperMessage.hasIdentityKey() || - !preKeyWhisperMessage.hasMessage()) - { - throw new InvalidMessageException("Incomplete message."); - } - - this.serialized = serialized; - this.registrationId = preKeyWhisperMessage.getRegistrationId(); - this.preKeyId = preKeyWhisperMessage.hasPreKeyId() ? Optional.of(preKeyWhisperMessage.getPreKeyId()) : Optional.absent(); - this.signedPreKeyId = preKeyWhisperMessage.hasSignedPreKeyId() ? preKeyWhisperMessage.getSignedPreKeyId() : -1; - this.baseKey = Curve.decodePoint(preKeyWhisperMessage.getBaseKey().toByteArray(), 0); - this.identityKey = new IdentityKey(Curve.decodePoint(preKeyWhisperMessage.getIdentityKey().toByteArray(), 0)); - this.message = new SignalMessage(preKeyWhisperMessage.getMessage().toByteArray()); - } catch (InvalidProtocolBufferException e) { - throw new InvalidMessageException(e); - } catch (InvalidKeyException e) { - throw new InvalidMessageException(e); - } catch (LegacyMessageException e) { - throw new InvalidMessageException(e); - } - } - - public PreKeySignalMessage(int messageVersion, int registrationId, Optional preKeyId, - int signedPreKeyId, ECPublicKey baseKey, IdentityKey identityKey, - SignalMessage message) - { - this.version = messageVersion; - this.registrationId = registrationId; - this.preKeyId = preKeyId; - this.signedPreKeyId = signedPreKeyId; - this.baseKey = baseKey; - this.identityKey = identityKey; - this.message = message; - - SignalProtos.PreKeySignalMessage.Builder builder = - SignalProtos.PreKeySignalMessage.newBuilder() - .setSignedPreKeyId(signedPreKeyId) - .setBaseKey(ByteString.copyFrom(baseKey.serialize())) - .setIdentityKey(ByteString.copyFrom(identityKey.serialize())) - .setMessage(ByteString.copyFrom(message.serialize())) - .setRegistrationId(registrationId); - - if (preKeyId.isPresent()) { - builder.setPreKeyId(preKeyId.get()); - } - - byte[] versionBytes = {ByteUtil.intsToByteHighAndLow(this.version, CURRENT_VERSION)}; - byte[] messageBytes = builder.build().toByteArray(); - - this.serialized = ByteUtil.combine(versionBytes, messageBytes); - } - - public int getMessageVersion() { - return version; - } - - public IdentityKey getIdentityKey() { - return identityKey; - } - - public int getRegistrationId() { - return registrationId; - } - - public Optional getPreKeyId() { - return preKeyId; - } - - public int getSignedPreKeyId() { - return signedPreKeyId; - } - - public ECPublicKey getBaseKey() { - return baseKey; - } - - public SignalMessage getWhisperMessage() { - return message; - } - - @Override - public byte[] serialize() { - return serialized; - } - - @Override - public int getType() { - return CiphertextMessage.PREKEY_TYPE; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyDistributionMessage.java b/service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyDistributionMessage.java deleted file mode 100644 index 31935f3aa..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyDistributionMessage.java +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.protocol; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.ByteUtil; - -public class SenderKeyDistributionMessage implements CiphertextMessage { - - private final int id; - private final int iteration; - private final byte[] chainKey; - private final ECPublicKey signatureKey; - private final byte[] serialized; - - public SenderKeyDistributionMessage(int id, int iteration, byte[] chainKey, ECPublicKey signatureKey) { - byte[] version = {ByteUtil.intsToByteHighAndLow(CURRENT_VERSION, CURRENT_VERSION)}; - byte[] protobuf = SignalProtos.SenderKeyDistributionMessage.newBuilder() - .setId(id) - .setIteration(iteration) - .setChainKey(ByteString.copyFrom(chainKey)) - .setSigningKey(ByteString.copyFrom(signatureKey.serialize())) - .build().toByteArray(); - - this.id = id; - this.iteration = iteration; - this.chainKey = chainKey; - this.signatureKey = signatureKey; - this.serialized = ByteUtil.combine(version, protobuf); - } - - public SenderKeyDistributionMessage(byte[] serialized) throws LegacyMessageException, InvalidMessageException { - try { - byte[][] messageParts = ByteUtil.split(serialized, 1, serialized.length - 1); - byte version = messageParts[0][0]; - byte[] message = messageParts[1]; - - if (ByteUtil.highBitsToInt(version) < CiphertextMessage.CURRENT_VERSION) { - throw new LegacyMessageException("Legacy message: " + ByteUtil.highBitsToInt(version)); - } - - if (ByteUtil.highBitsToInt(version) > CURRENT_VERSION) { - throw new InvalidMessageException("Unknown version: " + ByteUtil.highBitsToInt(version)); - } - - SignalProtos.SenderKeyDistributionMessage distributionMessage = SignalProtos.SenderKeyDistributionMessage.parseFrom(message); - - if (!distributionMessage.hasId() || - !distributionMessage.hasIteration() || - !distributionMessage.hasChainKey() || - !distributionMessage.hasSigningKey()) - { - throw new InvalidMessageException("Incomplete message."); - } - - this.serialized = serialized; - this.id = distributionMessage.getId(); - this.iteration = distributionMessage.getIteration(); - this.chainKey = distributionMessage.getChainKey().toByteArray(); - this.signatureKey = Curve.decodePoint(distributionMessage.getSigningKey().toByteArray(), 0); - } catch (InvalidProtocolBufferException e) { - throw new InvalidMessageException(e); - } catch (InvalidKeyException e) { - throw new InvalidMessageException(e); - } - } - - @Override - public byte[] serialize() { - return serialized; - } - - @Override - public int getType() { - return SENDERKEY_DISTRIBUTION_TYPE; - } - - public int getIteration() { - return iteration; - } - - public byte[] getChainKey() { - return chainKey; - } - - public ECPublicKey getSignatureKey() { - return signatureKey; - } - - public int getId() { - return id; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyMessage.java b/service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyMessage.java deleted file mode 100644 index 977babe12..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SenderKeyMessage.java +++ /dev/null @@ -1,128 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.protocol; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.ByteUtil; - -import java.text.ParseException; - -public class SenderKeyMessage implements CiphertextMessage { - - private static final int SIGNATURE_LENGTH = 64; - - private final int messageVersion; - private final int keyId; - private final int iteration; - private final byte[] ciphertext; - private final byte[] serialized; - - public SenderKeyMessage(byte[] serialized) throws InvalidMessageException, LegacyMessageException { - try { - byte[][] messageParts = ByteUtil.split(serialized, 1, serialized.length - 1 - SIGNATURE_LENGTH, SIGNATURE_LENGTH); - byte version = messageParts[0][0]; - byte[] message = messageParts[1]; - byte[] signature = messageParts[2]; - - if (ByteUtil.highBitsToInt(version) < 3) { - throw new LegacyMessageException("Legacy message: " + ByteUtil.highBitsToInt(version)); - } - - if (ByteUtil.highBitsToInt(version) > CURRENT_VERSION) { - throw new InvalidMessageException("Unknown version: " + ByteUtil.highBitsToInt(version)); - } - - SignalProtos.SenderKeyMessage senderKeyMessage = SignalProtos.SenderKeyMessage.parseFrom(message); - - if (!senderKeyMessage.hasId() || - !senderKeyMessage.hasIteration() || - !senderKeyMessage.hasCiphertext()) - { - throw new InvalidMessageException("Incomplete message."); - } - - this.serialized = serialized; - this.messageVersion = ByteUtil.highBitsToInt(version); - this.keyId = senderKeyMessage.getId(); - this.iteration = senderKeyMessage.getIteration(); - this.ciphertext = senderKeyMessage.getCiphertext().toByteArray(); - } catch (InvalidProtocolBufferException e) { - throw new InvalidMessageException(e); - } catch (ParseException e) { - throw new InvalidMessageException(e); - } - } - - public SenderKeyMessage(int keyId, int iteration, byte[] ciphertext, ECPrivateKey signatureKey) { - byte[] version = {ByteUtil.intsToByteHighAndLow(CURRENT_VERSION, CURRENT_VERSION)}; - byte[] message = SignalProtos.SenderKeyMessage.newBuilder() - .setId(keyId) - .setIteration(iteration) - .setCiphertext(ByteString.copyFrom(ciphertext)) - .build().toByteArray(); - - byte[] signature = getSignature(signatureKey, ByteUtil.combine(version, message)); - - this.serialized = ByteUtil.combine(version, message, signature); - this.messageVersion = CURRENT_VERSION; - this.keyId = keyId; - this.iteration = iteration; - this.ciphertext = ciphertext; - } - - public int getKeyId() { - return keyId; - } - - public int getIteration() { - return iteration; - } - - public byte[] getCipherText() { - return ciphertext; - } - - public void verifySignature(ECPublicKey signatureKey) - throws InvalidMessageException - { - try { - byte[][] parts = ByteUtil.split(serialized, serialized.length - SIGNATURE_LENGTH, SIGNATURE_LENGTH); - - if (!Curve.verifySignature(signatureKey, parts[0], parts[1])) { - throw new InvalidMessageException("Invalid signature!"); - } - - } catch (InvalidKeyException e) { - throw new InvalidMessageException(e); - } - } - - private byte[] getSignature(ECPrivateKey signatureKey, byte[] serialized) { - try { - return Curve.calculateSignature(signatureKey, serialized); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - - @Override - public byte[] serialize() { - return serialized; - } - - @Override - public int getType() { - return CiphertextMessage.SENDERKEY_TYPE; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalMessage.java b/service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalMessage.java deleted file mode 100644 index b5d7adac4..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalMessage.java +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.protocol; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.ByteUtil; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.text.ParseException; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -public class SignalMessage implements CiphertextMessage { - - private static final int MAC_LENGTH = 8; - - private final int messageVersion; - private final ECPublicKey senderRatchetKey; - private final int counter; - private final int previousCounter; - private final byte[] ciphertext; - private final byte[] serialized; - - public SignalMessage(byte[] serialized) throws InvalidMessageException, LegacyMessageException { - try { - byte[][] messageParts = ByteUtil.split(serialized, 1, serialized.length - 1 - MAC_LENGTH, MAC_LENGTH); - byte version = messageParts[0][0]; - byte[] message = messageParts[1]; - byte[] mac = messageParts[2]; - - if (ByteUtil.highBitsToInt(version) < CURRENT_VERSION) { - throw new LegacyMessageException("Legacy message: " + ByteUtil.highBitsToInt(version)); - } - - if (ByteUtil.highBitsToInt(version) > CURRENT_VERSION) { - throw new InvalidMessageException("Unknown version: " + ByteUtil.highBitsToInt(version)); - } - - SignalProtos.SignalMessage whisperMessage = SignalProtos.SignalMessage.parseFrom(message); - - if (!whisperMessage.hasCiphertext() || - !whisperMessage.hasCounter() || - !whisperMessage.hasRatchetKey()) - { - throw new InvalidMessageException("Incomplete message."); - } - - this.serialized = serialized; - this.senderRatchetKey = Curve.decodePoint(whisperMessage.getRatchetKey().toByteArray(), 0); - this.messageVersion = ByteUtil.highBitsToInt(version); - this.counter = whisperMessage.getCounter(); - this.previousCounter = whisperMessage.getPreviousCounter(); - this.ciphertext = whisperMessage.getCiphertext().toByteArray(); - } catch (InvalidProtocolBufferException e) { - throw new InvalidMessageException(e); - } catch (InvalidKeyException e) { - throw new InvalidMessageException(e); - } catch (ParseException e) { - throw new InvalidMessageException(e); - } - } - - public SignalMessage(int messageVersion, SecretKeySpec macKey, ECPublicKey senderRatchetKey, - int counter, int previousCounter, byte[] ciphertext, - IdentityKey senderIdentityKey, - IdentityKey receiverIdentityKey) - { - byte[] version = {ByteUtil.intsToByteHighAndLow(messageVersion, CURRENT_VERSION)}; - byte[] message = SignalProtos.SignalMessage.newBuilder() - .setRatchetKey(ByteString.copyFrom(senderRatchetKey.serialize())) - .setCounter(counter) - .setPreviousCounter(previousCounter) - .setCiphertext(ByteString.copyFrom(ciphertext)) - .build().toByteArray(); - - byte[] mac = getMac(senderIdentityKey, receiverIdentityKey, macKey, ByteUtil.combine(version, message)); - - this.serialized = ByteUtil.combine(version, message, mac); - this.senderRatchetKey = senderRatchetKey; - this.counter = counter; - this.previousCounter = previousCounter; - this.ciphertext = ciphertext; - this.messageVersion = messageVersion; - } - - public ECPublicKey getSenderRatchetKey() { - return senderRatchetKey; - } - - public int getMessageVersion() { - return messageVersion; - } - - public int getCounter() { - return counter; - } - - public byte[] getBody() { - return ciphertext; - } - - public void verifyMac(IdentityKey senderIdentityKey, IdentityKey receiverIdentityKey, SecretKeySpec macKey) - throws InvalidMessageException - { - byte[][] parts = ByteUtil.split(serialized, serialized.length - MAC_LENGTH, MAC_LENGTH); - byte[] ourMac = getMac(senderIdentityKey, receiverIdentityKey, macKey, parts[0]); - byte[] theirMac = parts[1]; - - if (!MessageDigest.isEqual(ourMac, theirMac)) { - throw new InvalidMessageException("Bad Mac!"); - } - } - - private byte[] getMac(IdentityKey senderIdentityKey, - IdentityKey receiverIdentityKey, - SecretKeySpec macKey, byte[] serialized) - { - try { - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(macKey); - - mac.update(senderIdentityKey.getPublicKey().serialize()); - mac.update(receiverIdentityKey.getPublicKey().serialize()); - - byte[] fullMac = mac.doFinal(serialized); - return ByteUtil.trim(fullMac, MAC_LENGTH); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } - } - - @Override - public byte[] serialize() { - return serialized; - } - - @Override - public int getType() { - return CiphertextMessage.WHISPER_TYPE; - } - - public static boolean isLegacy(byte[] message) { - return message != null && message.length >= 1 && - ByteUtil.highBitsToInt(message[0]) != CiphertextMessage.CURRENT_VERSION; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalProtos.java b/service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalProtos.java deleted file mode 100644 index 86b24f71b..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/protocol/SignalProtos.java +++ /dev/null @@ -1,4698 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WhisperTextProtocol.proto - -package org.whispersystems.libsignal.protocol; - -public final class SignalProtos { - private SignalProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface SignalMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes ratchetKey = 1; - /** - * optional bytes ratchetKey = 1; - */ - boolean hasRatchetKey(); - /** - * optional bytes ratchetKey = 1; - */ - com.google.protobuf.ByteString getRatchetKey(); - - // optional uint32 counter = 2; - /** - * optional uint32 counter = 2; - */ - boolean hasCounter(); - /** - * optional uint32 counter = 2; - */ - int getCounter(); - - // optional uint32 previousCounter = 3; - /** - * optional uint32 previousCounter = 3; - */ - boolean hasPreviousCounter(); - /** - * optional uint32 previousCounter = 3; - */ - int getPreviousCounter(); - - // optional bytes ciphertext = 4; - /** - * optional bytes ciphertext = 4; - */ - boolean hasCiphertext(); - /** - * optional bytes ciphertext = 4; - */ - com.google.protobuf.ByteString getCiphertext(); - } - /** - * Protobuf type {@code textsecure.SignalMessage} - */ - public static final class SignalMessage extends - com.google.protobuf.GeneratedMessage - implements SignalMessageOrBuilder { - // Use SignalMessage.newBuilder() to construct. - private SignalMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SignalMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SignalMessage defaultInstance; - public static SignalMessage getDefaultInstance() { - return defaultInstance; - } - - public SignalMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SignalMessage( - 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; - ratchetKey_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - counter_ = input.readUInt32(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - previousCounter_ = input.readUInt32(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - ciphertext_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_SignalMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SignalMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SignalMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SignalMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes ratchetKey = 1; - public static final int RATCHETKEY_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString ratchetKey_; - /** - * optional bytes ratchetKey = 1; - */ - public boolean hasRatchetKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ratchetKey = 1; - */ - public com.google.protobuf.ByteString getRatchetKey() { - return ratchetKey_; - } - - // optional uint32 counter = 2; - public static final int COUNTER_FIELD_NUMBER = 2; - private int counter_; - /** - * optional uint32 counter = 2; - */ - public boolean hasCounter() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 counter = 2; - */ - public int getCounter() { - return counter_; - } - - // optional uint32 previousCounter = 3; - public static final int PREVIOUSCOUNTER_FIELD_NUMBER = 3; - private int previousCounter_; - /** - * optional uint32 previousCounter = 3; - */ - public boolean hasPreviousCounter() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 previousCounter = 3; - */ - public int getPreviousCounter() { - return previousCounter_; - } - - // optional bytes ciphertext = 4; - public static final int CIPHERTEXT_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString ciphertext_; - /** - * optional bytes ciphertext = 4; - */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes ciphertext = 4; - */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - - private void initFields() { - ratchetKey_ = com.google.protobuf.ByteString.EMPTY; - counter_ = 0; - previousCounter_ = 0; - ciphertext_ = 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, ratchetKey_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, counter_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(3, previousCounter_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, ciphertext_); - } - 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, ratchetKey_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, counter_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, previousCounter_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, ciphertext_); - } - 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.libsignal.protocol.SignalProtos.SignalMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage 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.libsignal.protocol.SignalProtos.SignalMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage 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.libsignal.protocol.SignalProtos.SignalMessage 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.SignalMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.SignalMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SignalMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SignalMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.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(); - ratchetKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - counter_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - previousCounter_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - ciphertext_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_SignalMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.ratchetKey_ = ratchetKey_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.counter_ = counter_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.previousCounter_ = previousCounter_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.ciphertext_ = ciphertext_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage.getDefaultInstance()) return this; - if (other.hasRatchetKey()) { - setRatchetKey(other.getRatchetKey()); - } - if (other.hasCounter()) { - setCounter(other.getCounter()); - } - if (other.hasPreviousCounter()) { - setPreviousCounter(other.getPreviousCounter()); - } - if (other.hasCiphertext()) { - setCiphertext(other.getCiphertext()); - } - 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.libsignal.protocol.SignalProtos.SignalMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.SignalMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes ratchetKey = 1; - private com.google.protobuf.ByteString ratchetKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ratchetKey = 1; - */ - public boolean hasRatchetKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ratchetKey = 1; - */ - public com.google.protobuf.ByteString getRatchetKey() { - return ratchetKey_; - } - /** - * optional bytes ratchetKey = 1; - */ - public Builder setRatchetKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - ratchetKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes ratchetKey = 1; - */ - public Builder clearRatchetKey() { - bitField0_ = (bitField0_ & ~0x00000001); - ratchetKey_ = getDefaultInstance().getRatchetKey(); - onChanged(); - return this; - } - - // optional uint32 counter = 2; - private int counter_ ; - /** - * optional uint32 counter = 2; - */ - public boolean hasCounter() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 counter = 2; - */ - public int getCounter() { - return counter_; - } - /** - * optional uint32 counter = 2; - */ - public Builder setCounter(int value) { - bitField0_ |= 0x00000002; - counter_ = value; - onChanged(); - return this; - } - /** - * optional uint32 counter = 2; - */ - public Builder clearCounter() { - bitField0_ = (bitField0_ & ~0x00000002); - counter_ = 0; - onChanged(); - return this; - } - - // optional uint32 previousCounter = 3; - private int previousCounter_ ; - /** - * optional uint32 previousCounter = 3; - */ - public boolean hasPreviousCounter() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 previousCounter = 3; - */ - public int getPreviousCounter() { - return previousCounter_; - } - /** - * optional uint32 previousCounter = 3; - */ - public Builder setPreviousCounter(int value) { - bitField0_ |= 0x00000004; - previousCounter_ = value; - onChanged(); - return this; - } - /** - * optional uint32 previousCounter = 3; - */ - public Builder clearPreviousCounter() { - bitField0_ = (bitField0_ & ~0x00000004); - previousCounter_ = 0; - onChanged(); - return this; - } - - // optional bytes ciphertext = 4; - private com.google.protobuf.ByteString ciphertext_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ciphertext = 4; - */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes ciphertext = 4; - */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - /** - * optional bytes ciphertext = 4; - */ - public Builder setCiphertext(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - ciphertext_ = value; - onChanged(); - return this; - } - /** - * optional bytes ciphertext = 4; - */ - public Builder clearCiphertext() { - bitField0_ = (bitField0_ & ~0x00000008); - ciphertext_ = getDefaultInstance().getCiphertext(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.SignalMessage) - } - - static { - defaultInstance = new SignalMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.SignalMessage) - } - - public interface PreKeySignalMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 registrationId = 5; - /** - * optional uint32 registrationId = 5; - */ - boolean hasRegistrationId(); - /** - * optional uint32 registrationId = 5; - */ - int getRegistrationId(); - - // optional uint32 preKeyId = 1; - /** - * optional uint32 preKeyId = 1; - */ - boolean hasPreKeyId(); - /** - * optional uint32 preKeyId = 1; - */ - int getPreKeyId(); - - // optional uint32 signedPreKeyId = 6; - /** - * optional uint32 signedPreKeyId = 6; - */ - boolean hasSignedPreKeyId(); - /** - * optional uint32 signedPreKeyId = 6; - */ - int getSignedPreKeyId(); - - // optional bytes baseKey = 2; - /** - * optional bytes baseKey = 2; - */ - boolean hasBaseKey(); - /** - * optional bytes baseKey = 2; - */ - com.google.protobuf.ByteString getBaseKey(); - - // optional bytes identityKey = 3; - /** - * optional bytes identityKey = 3; - */ - boolean hasIdentityKey(); - /** - * optional bytes identityKey = 3; - */ - com.google.protobuf.ByteString getIdentityKey(); - - // optional bytes message = 4; - /** - * optional bytes message = 4; - * - *

-     * SignalMessage
-     * 
- */ - boolean hasMessage(); - /** - * optional bytes message = 4; - * - *
-     * SignalMessage
-     * 
- */ - com.google.protobuf.ByteString getMessage(); - } - /** - * Protobuf type {@code textsecure.PreKeySignalMessage} - */ - public static final class PreKeySignalMessage extends - com.google.protobuf.GeneratedMessage - implements PreKeySignalMessageOrBuilder { - // Use PreKeySignalMessage.newBuilder() to construct. - private PreKeySignalMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private PreKeySignalMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final PreKeySignalMessage defaultInstance; - public static PreKeySignalMessage getDefaultInstance() { - return defaultInstance; - } - - public PreKeySignalMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private PreKeySignalMessage( - 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_ |= 0x00000002; - preKeyId_ = input.readUInt32(); - break; - } - case 18: { - bitField0_ |= 0x00000008; - baseKey_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000010; - identityKey_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000020; - message_ = input.readBytes(); - break; - } - case 40: { - bitField0_ |= 0x00000001; - registrationId_ = input.readUInt32(); - break; - } - case 48: { - bitField0_ |= 0x00000004; - signedPreKeyId_ = input.readUInt32(); - 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.libsignal.protocol.SignalProtos.internal_static_textsecure_PreKeySignalMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_PreKeySignalMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public PreKeySignalMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new PreKeySignalMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 registrationId = 5; - public static final int REGISTRATIONID_FIELD_NUMBER = 5; - private int registrationId_; - /** - * optional uint32 registrationId = 5; - */ - public boolean hasRegistrationId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 registrationId = 5; - */ - public int getRegistrationId() { - return registrationId_; - } - - // optional uint32 preKeyId = 1; - public static final int PREKEYID_FIELD_NUMBER = 1; - private int preKeyId_; - /** - * optional uint32 preKeyId = 1; - */ - public boolean hasPreKeyId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 preKeyId = 1; - */ - public int getPreKeyId() { - return preKeyId_; - } - - // optional uint32 signedPreKeyId = 6; - public static final int SIGNEDPREKEYID_FIELD_NUMBER = 6; - private int signedPreKeyId_; - /** - * optional uint32 signedPreKeyId = 6; - */ - public boolean hasSignedPreKeyId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 signedPreKeyId = 6; - */ - public int getSignedPreKeyId() { - return signedPreKeyId_; - } - - // optional bytes baseKey = 2; - public static final int BASEKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString baseKey_; - /** - * optional bytes baseKey = 2; - */ - public boolean hasBaseKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes baseKey = 2; - */ - public com.google.protobuf.ByteString getBaseKey() { - return baseKey_; - } - - // optional bytes identityKey = 3; - public static final int IDENTITYKEY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString identityKey_; - /** - * optional bytes identityKey = 3; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes identityKey = 3; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - - // optional bytes message = 4; - public static final int MESSAGE_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString message_; - /** - * optional bytes message = 4; - * - *
-     * SignalMessage
-     * 
- */ - public boolean hasMessage() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes message = 4; - * - *
-     * SignalMessage
-     * 
- */ - public com.google.protobuf.ByteString getMessage() { - return message_; - } - - private void initFields() { - registrationId_ = 0; - preKeyId_ = 0; - signedPreKeyId_ = 0; - baseKey_ = com.google.protobuf.ByteString.EMPTY; - identityKey_ = com.google.protobuf.ByteString.EMPTY; - message_ = 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_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(1, preKeyId_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(2, baseKey_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(3, identityKey_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(4, message_); - } - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeUInt32(5, registrationId_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(6, signedPreKeyId_); - } - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, preKeyId_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, baseKey_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, identityKey_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, message_); - } - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, registrationId_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, 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.libsignal.protocol.SignalProtos.PreKeySignalMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage 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.libsignal.protocol.SignalProtos.PreKeySignalMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage 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.libsignal.protocol.SignalProtos.PreKeySignalMessage 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.PreKeySignalMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_PreKeySignalMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_PreKeySignalMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.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(); - registrationId_ = 0; - bitField0_ = (bitField0_ & ~0x00000001); - preKeyId_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - signedPreKeyId_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - baseKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - identityKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); - message_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_PreKeySignalMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.registrationId_ = registrationId_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.preKeyId_ = preKeyId_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.signedPreKeyId_ = signedPreKeyId_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.baseKey_ = baseKey_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.identityKey_ = identityKey_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.message_ = message_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage.getDefaultInstance()) return this; - if (other.hasRegistrationId()) { - setRegistrationId(other.getRegistrationId()); - } - if (other.hasPreKeyId()) { - setPreKeyId(other.getPreKeyId()); - } - if (other.hasSignedPreKeyId()) { - setSignedPreKeyId(other.getSignedPreKeyId()); - } - if (other.hasBaseKey()) { - setBaseKey(other.getBaseKey()); - } - if (other.hasIdentityKey()) { - setIdentityKey(other.getIdentityKey()); - } - if (other.hasMessage()) { - setMessage(other.getMessage()); - } - 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.libsignal.protocol.SignalProtos.PreKeySignalMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.PreKeySignalMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 registrationId = 5; - private int registrationId_ ; - /** - * optional uint32 registrationId = 5; - */ - public boolean hasRegistrationId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 registrationId = 5; - */ - public int getRegistrationId() { - return registrationId_; - } - /** - * optional uint32 registrationId = 5; - */ - public Builder setRegistrationId(int value) { - bitField0_ |= 0x00000001; - registrationId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 registrationId = 5; - */ - public Builder clearRegistrationId() { - bitField0_ = (bitField0_ & ~0x00000001); - registrationId_ = 0; - onChanged(); - return this; - } - - // optional uint32 preKeyId = 1; - private int preKeyId_ ; - /** - * optional uint32 preKeyId = 1; - */ - public boolean hasPreKeyId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 preKeyId = 1; - */ - public int getPreKeyId() { - return preKeyId_; - } - /** - * optional uint32 preKeyId = 1; - */ - public Builder setPreKeyId(int value) { - bitField0_ |= 0x00000002; - preKeyId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 preKeyId = 1; - */ - public Builder clearPreKeyId() { - bitField0_ = (bitField0_ & ~0x00000002); - preKeyId_ = 0; - onChanged(); - return this; - } - - // optional uint32 signedPreKeyId = 6; - private int signedPreKeyId_ ; - /** - * optional uint32 signedPreKeyId = 6; - */ - public boolean hasSignedPreKeyId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 signedPreKeyId = 6; - */ - public int getSignedPreKeyId() { - return signedPreKeyId_; - } - /** - * optional uint32 signedPreKeyId = 6; - */ - public Builder setSignedPreKeyId(int value) { - bitField0_ |= 0x00000004; - signedPreKeyId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 signedPreKeyId = 6; - */ - public Builder clearSignedPreKeyId() { - bitField0_ = (bitField0_ & ~0x00000004); - signedPreKeyId_ = 0; - onChanged(); - return this; - } - - // optional bytes baseKey = 2; - private com.google.protobuf.ByteString baseKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes baseKey = 2; - */ - public boolean hasBaseKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes baseKey = 2; - */ - public com.google.protobuf.ByteString getBaseKey() { - return baseKey_; - } - /** - * optional bytes baseKey = 2; - */ - public Builder setBaseKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - baseKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes baseKey = 2; - */ - public Builder clearBaseKey() { - bitField0_ = (bitField0_ & ~0x00000008); - baseKey_ = getDefaultInstance().getBaseKey(); - onChanged(); - return this; - } - - // optional bytes identityKey = 3; - private com.google.protobuf.ByteString identityKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes identityKey = 3; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes identityKey = 3; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - /** - * optional bytes identityKey = 3; - */ - public Builder setIdentityKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - identityKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes identityKey = 3; - */ - public Builder clearIdentityKey() { - bitField0_ = (bitField0_ & ~0x00000010); - identityKey_ = getDefaultInstance().getIdentityKey(); - onChanged(); - return this; - } - - // optional bytes message = 4; - private com.google.protobuf.ByteString message_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes message = 4; - * - *
-       * SignalMessage
-       * 
- */ - public boolean hasMessage() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes message = 4; - * - *
-       * SignalMessage
-       * 
- */ - public com.google.protobuf.ByteString getMessage() { - return message_; - } - /** - * optional bytes message = 4; - * - *
-       * SignalMessage
-       * 
- */ - public Builder setMessage(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - message_ = value; - onChanged(); - return this; - } - /** - * optional bytes message = 4; - * - *
-       * SignalMessage
-       * 
- */ - public Builder clearMessage() { - bitField0_ = (bitField0_ & ~0x00000020); - message_ = getDefaultInstance().getMessage(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.PreKeySignalMessage) - } - - static { - defaultInstance = new PreKeySignalMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.PreKeySignalMessage) - } - - public interface KeyExchangeMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 id = 1; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional bytes baseKey = 2; - /** - * optional bytes baseKey = 2; - */ - boolean hasBaseKey(); - /** - * optional bytes baseKey = 2; - */ - com.google.protobuf.ByteString getBaseKey(); - - // optional bytes ratchetKey = 3; - /** - * optional bytes ratchetKey = 3; - */ - boolean hasRatchetKey(); - /** - * optional bytes ratchetKey = 3; - */ - com.google.protobuf.ByteString getRatchetKey(); - - // optional bytes identityKey = 4; - /** - * optional bytes identityKey = 4; - */ - boolean hasIdentityKey(); - /** - * optional bytes identityKey = 4; - */ - com.google.protobuf.ByteString getIdentityKey(); - - // optional bytes baseKeySignature = 5; - /** - * optional bytes baseKeySignature = 5; - */ - boolean hasBaseKeySignature(); - /** - * optional bytes baseKeySignature = 5; - */ - com.google.protobuf.ByteString getBaseKeySignature(); - } - /** - * Protobuf type {@code textsecure.KeyExchangeMessage} - */ - public static final class KeyExchangeMessage extends - com.google.protobuf.GeneratedMessage - implements KeyExchangeMessageOrBuilder { - // Use KeyExchangeMessage.newBuilder() to construct. - private KeyExchangeMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private KeyExchangeMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final KeyExchangeMessage defaultInstance; - public static KeyExchangeMessage getDefaultInstance() { - return defaultInstance; - } - - public KeyExchangeMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private KeyExchangeMessage( - 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; - baseKey_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - ratchetKey_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - identityKey_ = input.readBytes(); - break; - } - case 42: { - bitField0_ |= 0x00000010; - baseKeySignature_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_KeyExchangeMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_KeyExchangeMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public KeyExchangeMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new KeyExchangeMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional bytes baseKey = 2; - public static final int BASEKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString baseKey_; - /** - * optional bytes baseKey = 2; - */ - public boolean hasBaseKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes baseKey = 2; - */ - public com.google.protobuf.ByteString getBaseKey() { - return baseKey_; - } - - // optional bytes ratchetKey = 3; - public static final int RATCHETKEY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString ratchetKey_; - /** - * optional bytes ratchetKey = 3; - */ - public boolean hasRatchetKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes ratchetKey = 3; - */ - public com.google.protobuf.ByteString getRatchetKey() { - return ratchetKey_; - } - - // optional bytes identityKey = 4; - public static final int IDENTITYKEY_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString identityKey_; - /** - * optional bytes identityKey = 4; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes identityKey = 4; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - - // optional bytes baseKeySignature = 5; - public static final int BASEKEYSIGNATURE_FIELD_NUMBER = 5; - private com.google.protobuf.ByteString baseKeySignature_; - /** - * optional bytes baseKeySignature = 5; - */ - public boolean hasBaseKeySignature() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes baseKeySignature = 5; - */ - public com.google.protobuf.ByteString getBaseKeySignature() { - return baseKeySignature_; - } - - private void initFields() { - id_ = 0; - baseKey_ = com.google.protobuf.ByteString.EMPTY; - ratchetKey_ = com.google.protobuf.ByteString.EMPTY; - identityKey_ = com.google.protobuf.ByteString.EMPTY; - baseKeySignature_ = 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, baseKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, ratchetKey_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, identityKey_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, baseKeySignature_); - } - 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, baseKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, ratchetKey_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, identityKey_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, baseKeySignature_); - } - 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.libsignal.protocol.SignalProtos.KeyExchangeMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage 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.libsignal.protocol.SignalProtos.KeyExchangeMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage 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.libsignal.protocol.SignalProtos.KeyExchangeMessage 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.KeyExchangeMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_KeyExchangeMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_KeyExchangeMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.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); - baseKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - ratchetKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - identityKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - baseKeySignature_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_KeyExchangeMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage(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.baseKey_ = baseKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.ratchetKey_ = ratchetKey_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.identityKey_ = identityKey_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.baseKeySignature_ = baseKeySignature_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasBaseKey()) { - setBaseKey(other.getBaseKey()); - } - if (other.hasRatchetKey()) { - setRatchetKey(other.getRatchetKey()); - } - if (other.hasIdentityKey()) { - setIdentityKey(other.getIdentityKey()); - } - if (other.hasBaseKeySignature()) { - setBaseKeySignature(other.getBaseKeySignature()); - } - 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.libsignal.protocol.SignalProtos.KeyExchangeMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 id = 1; - private int id_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - onChanged(); - return this; - } - - // optional bytes baseKey = 2; - private com.google.protobuf.ByteString baseKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes baseKey = 2; - */ - public boolean hasBaseKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes baseKey = 2; - */ - public com.google.protobuf.ByteString getBaseKey() { - return baseKey_; - } - /** - * optional bytes baseKey = 2; - */ - public Builder setBaseKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - baseKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes baseKey = 2; - */ - public Builder clearBaseKey() { - bitField0_ = (bitField0_ & ~0x00000002); - baseKey_ = getDefaultInstance().getBaseKey(); - onChanged(); - return this; - } - - // optional bytes ratchetKey = 3; - private com.google.protobuf.ByteString ratchetKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ratchetKey = 3; - */ - public boolean hasRatchetKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes ratchetKey = 3; - */ - public com.google.protobuf.ByteString getRatchetKey() { - return ratchetKey_; - } - /** - * optional bytes ratchetKey = 3; - */ - public Builder setRatchetKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - ratchetKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes ratchetKey = 3; - */ - public Builder clearRatchetKey() { - bitField0_ = (bitField0_ & ~0x00000004); - ratchetKey_ = getDefaultInstance().getRatchetKey(); - onChanged(); - return this; - } - - // optional bytes identityKey = 4; - private com.google.protobuf.ByteString identityKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes identityKey = 4; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes identityKey = 4; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - /** - * optional bytes identityKey = 4; - */ - public Builder setIdentityKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - identityKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes identityKey = 4; - */ - public Builder clearIdentityKey() { - bitField0_ = (bitField0_ & ~0x00000008); - identityKey_ = getDefaultInstance().getIdentityKey(); - onChanged(); - return this; - } - - // optional bytes baseKeySignature = 5; - private com.google.protobuf.ByteString baseKeySignature_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes baseKeySignature = 5; - */ - public boolean hasBaseKeySignature() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes baseKeySignature = 5; - */ - public com.google.protobuf.ByteString getBaseKeySignature() { - return baseKeySignature_; - } - /** - * optional bytes baseKeySignature = 5; - */ - public Builder setBaseKeySignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - baseKeySignature_ = value; - onChanged(); - return this; - } - /** - * optional bytes baseKeySignature = 5; - */ - public Builder clearBaseKeySignature() { - bitField0_ = (bitField0_ & ~0x00000010); - baseKeySignature_ = getDefaultInstance().getBaseKeySignature(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.KeyExchangeMessage) - } - - static { - defaultInstance = new KeyExchangeMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.KeyExchangeMessage) - } - - public interface SenderKeyMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 id = 1; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional uint32 iteration = 2; - /** - * optional uint32 iteration = 2; - */ - boolean hasIteration(); - /** - * optional uint32 iteration = 2; - */ - int getIteration(); - - // optional bytes ciphertext = 3; - /** - * optional bytes ciphertext = 3; - */ - boolean hasCiphertext(); - /** - * optional bytes ciphertext = 3; - */ - com.google.protobuf.ByteString getCiphertext(); - } - /** - * Protobuf type {@code textsecure.SenderKeyMessage} - */ - public static final class SenderKeyMessage extends - com.google.protobuf.GeneratedMessage - implements SenderKeyMessageOrBuilder { - // Use SenderKeyMessage.newBuilder() to construct. - private SenderKeyMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SenderKeyMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SenderKeyMessage defaultInstance; - public static SenderKeyMessage getDefaultInstance() { - return defaultInstance; - } - - public SenderKeyMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SenderKeyMessage( - 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 16: { - bitField0_ |= 0x00000002; - iteration_ = input.readUInt32(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - ciphertext_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SenderKeyMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SenderKeyMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional uint32 iteration = 2; - public static final int ITERATION_FIELD_NUMBER = 2; - private int iteration_; - /** - * optional uint32 iteration = 2; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 iteration = 2; - */ - public int getIteration() { - return iteration_; - } - - // optional bytes ciphertext = 3; - public static final int CIPHERTEXT_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString ciphertext_; - /** - * optional bytes ciphertext = 3; - */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes ciphertext = 3; - */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - - private void initFields() { - id_ = 0; - iteration_ = 0; - ciphertext_ = 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.writeUInt32(2, iteration_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, ciphertext_); - } - 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 - .computeUInt32Size(2, iteration_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, ciphertext_); - } - 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.libsignal.protocol.SignalProtos.SenderKeyMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage 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.libsignal.protocol.SignalProtos.SenderKeyMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage 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.libsignal.protocol.SignalProtos.SenderKeyMessage 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.SenderKeyMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.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); - iteration_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - ciphertext_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage(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.iteration_ = iteration_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.ciphertext_ = ciphertext_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasIteration()) { - setIteration(other.getIteration()); - } - if (other.hasCiphertext()) { - setCiphertext(other.getCiphertext()); - } - 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.libsignal.protocol.SignalProtos.SenderKeyMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 id = 1; - private int id_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - onChanged(); - return this; - } - - // optional uint32 iteration = 2; - private int iteration_ ; - /** - * optional uint32 iteration = 2; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 iteration = 2; - */ - public int getIteration() { - return iteration_; - } - /** - * optional uint32 iteration = 2; - */ - public Builder setIteration(int value) { - bitField0_ |= 0x00000002; - iteration_ = value; - onChanged(); - return this; - } - /** - * optional uint32 iteration = 2; - */ - public Builder clearIteration() { - bitField0_ = (bitField0_ & ~0x00000002); - iteration_ = 0; - onChanged(); - return this; - } - - // optional bytes ciphertext = 3; - private com.google.protobuf.ByteString ciphertext_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ciphertext = 3; - */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes ciphertext = 3; - */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - /** - * optional bytes ciphertext = 3; - */ - public Builder setCiphertext(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - ciphertext_ = value; - onChanged(); - return this; - } - /** - * optional bytes ciphertext = 3; - */ - public Builder clearCiphertext() { - bitField0_ = (bitField0_ & ~0x00000004); - ciphertext_ = getDefaultInstance().getCiphertext(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyMessage) - } - - static { - defaultInstance = new SenderKeyMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.SenderKeyMessage) - } - - public interface SenderKeyDistributionMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 id = 1; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional uint32 iteration = 2; - /** - * optional uint32 iteration = 2; - */ - boolean hasIteration(); - /** - * optional uint32 iteration = 2; - */ - int getIteration(); - - // optional bytes chainKey = 3; - /** - * optional bytes chainKey = 3; - */ - boolean hasChainKey(); - /** - * optional bytes chainKey = 3; - */ - com.google.protobuf.ByteString getChainKey(); - - // optional bytes signingKey = 4; - /** - * optional bytes signingKey = 4; - */ - boolean hasSigningKey(); - /** - * optional bytes signingKey = 4; - */ - com.google.protobuf.ByteString getSigningKey(); - } - /** - * Protobuf type {@code textsecure.SenderKeyDistributionMessage} - */ - public static final class SenderKeyDistributionMessage extends - com.google.protobuf.GeneratedMessage - implements SenderKeyDistributionMessageOrBuilder { - // Use SenderKeyDistributionMessage.newBuilder() to construct. - private SenderKeyDistributionMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SenderKeyDistributionMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SenderKeyDistributionMessage defaultInstance; - public static SenderKeyDistributionMessage getDefaultInstance() { - return defaultInstance; - } - - public SenderKeyDistributionMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SenderKeyDistributionMessage( - 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 16: { - bitField0_ |= 0x00000002; - iteration_ = input.readUInt32(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - chainKey_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - signingKey_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyDistributionMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyDistributionMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SenderKeyDistributionMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SenderKeyDistributionMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional uint32 iteration = 2; - public static final int ITERATION_FIELD_NUMBER = 2; - private int iteration_; - /** - * optional uint32 iteration = 2; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 iteration = 2; - */ - public int getIteration() { - return iteration_; - } - - // optional bytes chainKey = 3; - public static final int CHAINKEY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString chainKey_; - /** - * optional bytes chainKey = 3; - */ - public boolean hasChainKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes chainKey = 3; - */ - public com.google.protobuf.ByteString getChainKey() { - return chainKey_; - } - - // optional bytes signingKey = 4; - public static final int SIGNINGKEY_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString signingKey_; - /** - * optional bytes signingKey = 4; - */ - public boolean hasSigningKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes signingKey = 4; - */ - public com.google.protobuf.ByteString getSigningKey() { - return signingKey_; - } - - private void initFields() { - id_ = 0; - iteration_ = 0; - chainKey_ = com.google.protobuf.ByteString.EMPTY; - signingKey_ = 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.writeUInt32(2, iteration_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, chainKey_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, signingKey_); - } - 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 - .computeUInt32Size(2, iteration_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, chainKey_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, signingKey_); - } - 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.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage 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.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage 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.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage 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.SenderKeyDistributionMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyDistributionMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyDistributionMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.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); - iteration_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - chainKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - signingKey_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_SenderKeyDistributionMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage(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.iteration_ = iteration_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.chainKey_ = chainKey_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.signingKey_ = signingKey_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasIteration()) { - setIteration(other.getIteration()); - } - if (other.hasChainKey()) { - setChainKey(other.getChainKey()); - } - if (other.hasSigningKey()) { - setSigningKey(other.getSigningKey()); - } - 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.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.SenderKeyDistributionMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 id = 1; - private int id_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - onChanged(); - return this; - } - - // optional uint32 iteration = 2; - private int iteration_ ; - /** - * optional uint32 iteration = 2; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 iteration = 2; - */ - public int getIteration() { - return iteration_; - } - /** - * optional uint32 iteration = 2; - */ - public Builder setIteration(int value) { - bitField0_ |= 0x00000002; - iteration_ = value; - onChanged(); - return this; - } - /** - * optional uint32 iteration = 2; - */ - public Builder clearIteration() { - bitField0_ = (bitField0_ & ~0x00000002); - iteration_ = 0; - onChanged(); - return this; - } - - // optional bytes chainKey = 3; - private com.google.protobuf.ByteString chainKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes chainKey = 3; - */ - public boolean hasChainKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes chainKey = 3; - */ - public com.google.protobuf.ByteString getChainKey() { - return chainKey_; - } - /** - * optional bytes chainKey = 3; - */ - public Builder setChainKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - chainKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes chainKey = 3; - */ - public Builder clearChainKey() { - bitField0_ = (bitField0_ & ~0x00000004); - chainKey_ = getDefaultInstance().getChainKey(); - onChanged(); - return this; - } - - // optional bytes signingKey = 4; - private com.google.protobuf.ByteString signingKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes signingKey = 4; - */ - public boolean hasSigningKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes signingKey = 4; - */ - public com.google.protobuf.ByteString getSigningKey() { - return signingKey_; - } - /** - * optional bytes signingKey = 4; - */ - public Builder setSigningKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - signingKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes signingKey = 4; - */ - public Builder clearSigningKey() { - bitField0_ = (bitField0_ & ~0x00000008); - signingKey_ = getDefaultInstance().getSigningKey(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.SenderKeyDistributionMessage) - } - - static { - defaultInstance = new SenderKeyDistributionMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.SenderKeyDistributionMessage) - } - - public interface DeviceConsistencyCodeMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 generation = 1; - /** - * optional uint32 generation = 1; - */ - boolean hasGeneration(); - /** - * optional uint32 generation = 1; - */ - int getGeneration(); - - // optional bytes signature = 2; - /** - * optional bytes signature = 2; - */ - boolean hasSignature(); - /** - * optional bytes signature = 2; - */ - com.google.protobuf.ByteString getSignature(); - } - /** - * Protobuf type {@code textsecure.DeviceConsistencyCodeMessage} - */ - public static final class DeviceConsistencyCodeMessage extends - com.google.protobuf.GeneratedMessage - implements DeviceConsistencyCodeMessageOrBuilder { - // Use DeviceConsistencyCodeMessage.newBuilder() to construct. - private DeviceConsistencyCodeMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private DeviceConsistencyCodeMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final DeviceConsistencyCodeMessage defaultInstance; - public static DeviceConsistencyCodeMessage getDefaultInstance() { - return defaultInstance; - } - - public DeviceConsistencyCodeMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private DeviceConsistencyCodeMessage( - 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; - generation_ = input.readUInt32(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - signature_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_DeviceConsistencyCodeMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_DeviceConsistencyCodeMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public DeviceConsistencyCodeMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceConsistencyCodeMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 generation = 1; - public static final int GENERATION_FIELD_NUMBER = 1; - private int generation_; - /** - * optional uint32 generation = 1; - */ - public boolean hasGeneration() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 generation = 1; - */ - public int getGeneration() { - return generation_; - } - - // optional bytes signature = 2; - public static final int SIGNATURE_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString signature_; - /** - * optional bytes signature = 2; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes signature = 2; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - - private void initFields() { - generation_ = 0; - signature_ = 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, generation_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, signature_); - } - 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, generation_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, signature_); - } - 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.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage 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.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage 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.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage 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.DeviceConsistencyCodeMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_DeviceConsistencyCodeMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_DeviceConsistencyCodeMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.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(); - generation_ = 0; - bitField0_ = (bitField0_ & ~0x00000001); - signature_ = 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.libsignal.protocol.SignalProtos.internal_static_textsecure_DeviceConsistencyCodeMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.generation_ = generation_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.signature_ = signature_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage.getDefaultInstance()) return this; - if (other.hasGeneration()) { - setGeneration(other.getGeneration()); - } - if (other.hasSignature()) { - setSignature(other.getSignature()); - } - 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.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.DeviceConsistencyCodeMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 generation = 1; - private int generation_ ; - /** - * optional uint32 generation = 1; - */ - public boolean hasGeneration() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 generation = 1; - */ - public int getGeneration() { - return generation_; - } - /** - * optional uint32 generation = 1; - */ - public Builder setGeneration(int value) { - bitField0_ |= 0x00000001; - generation_ = value; - onChanged(); - return this; - } - /** - * optional uint32 generation = 1; - */ - public Builder clearGeneration() { - bitField0_ = (bitField0_ & ~0x00000001); - generation_ = 0; - onChanged(); - return this; - } - - // optional bytes signature = 2; - private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes signature = 2; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes signature = 2; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - /** - * optional bytes signature = 2; - */ - public Builder setSignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - signature_ = value; - onChanged(); - return this; - } - /** - * optional bytes signature = 2; - */ - public Builder clearSignature() { - bitField0_ = (bitField0_ & ~0x00000002); - signature_ = getDefaultInstance().getSignature(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.DeviceConsistencyCodeMessage) - } - - static { - defaultInstance = new DeviceConsistencyCodeMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.DeviceConsistencyCodeMessage) - } - - public interface ClosedGroupCiphertextMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes ciphertext = 1; - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - boolean hasCiphertext(); - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - com.google.protobuf.ByteString getCiphertext(); - - // optional bytes senderPublicKey = 2; - /** - * optional bytes senderPublicKey = 2; - * - *
-     * @required
-     * 
- */ - boolean hasSenderPublicKey(); - /** - * optional bytes senderPublicKey = 2; - * - *
-     * @required
-     * 
- */ - com.google.protobuf.ByteString getSenderPublicKey(); - - // optional uint32 keyIndex = 3; - /** - * optional uint32 keyIndex = 3; - * - *
-     * @required
-     * 
- */ - boolean hasKeyIndex(); - /** - * optional uint32 keyIndex = 3; - * - *
-     * @required
-     * 
- */ - int getKeyIndex(); - } - /** - * Protobuf type {@code textsecure.ClosedGroupCiphertextMessage} - */ - public static final class ClosedGroupCiphertextMessage extends - com.google.protobuf.GeneratedMessage - implements ClosedGroupCiphertextMessageOrBuilder { - // Use ClosedGroupCiphertextMessage.newBuilder() to construct. - private ClosedGroupCiphertextMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ClosedGroupCiphertextMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ClosedGroupCiphertextMessage defaultInstance; - public static ClosedGroupCiphertextMessage getDefaultInstance() { - return defaultInstance; - } - - public ClosedGroupCiphertextMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ClosedGroupCiphertextMessage( - 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; - ciphertext_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - senderPublicKey_ = input.readBytes(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - keyIndex_ = input.readUInt32(); - 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.libsignal.protocol.SignalProtos.internal_static_textsecure_ClosedGroupCiphertextMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_ClosedGroupCiphertextMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ClosedGroupCiphertextMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ClosedGroupCiphertextMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes ciphertext = 1; - public static final int CIPHERTEXT_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString ciphertext_; - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - - // optional bytes senderPublicKey = 2; - public static final int SENDERPUBLICKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString senderPublicKey_; - /** - * optional bytes senderPublicKey = 2; - * - *
-     * @required
-     * 
- */ - public boolean hasSenderPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes senderPublicKey = 2; - * - *
-     * @required
-     * 
- */ - public com.google.protobuf.ByteString getSenderPublicKey() { - return senderPublicKey_; - } - - // optional uint32 keyIndex = 3; - public static final int KEYINDEX_FIELD_NUMBER = 3; - private int keyIndex_; - /** - * optional uint32 keyIndex = 3; - * - *
-     * @required
-     * 
- */ - public boolean hasKeyIndex() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 keyIndex = 3; - * - *
-     * @required
-     * 
- */ - public int getKeyIndex() { - return keyIndex_; - } - - private void initFields() { - ciphertext_ = com.google.protobuf.ByteString.EMPTY; - senderPublicKey_ = com.google.protobuf.ByteString.EMPTY; - keyIndex_ = 0; - } - 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, ciphertext_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, senderPublicKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(3, keyIndex_); - } - 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, ciphertext_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, senderPublicKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, keyIndex_); - } - 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.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage 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.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage 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.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage 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.ClosedGroupCiphertextMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_ClosedGroupCiphertextMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_ClosedGroupCiphertextMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.class, org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.Builder.class); - } - - // Construct using org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.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(); - ciphertext_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - senderPublicKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - keyIndex_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.internal_static_textsecure_ClosedGroupCiphertextMessage_descriptor; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage getDefaultInstanceForType() { - return org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.getDefaultInstance(); - } - - public org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage build() { - org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage buildPartial() { - org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage result = new org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.ciphertext_ = ciphertext_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.senderPublicKey_ = senderPublicKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.keyIndex_ = keyIndex_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage) { - return mergeFrom((org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage other) { - if (other == org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage.getDefaultInstance()) return this; - if (other.hasCiphertext()) { - setCiphertext(other.getCiphertext()); - } - if (other.hasSenderPublicKey()) { - setSenderPublicKey(other.getSenderPublicKey()); - } - if (other.hasKeyIndex()) { - setKeyIndex(other.getKeyIndex()); - } - 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.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.protocol.SignalProtos.ClosedGroupCiphertextMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes ciphertext = 1; - private com.google.protobuf.ByteString ciphertext_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public Builder setCiphertext(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - ciphertext_ = value; - onChanged(); - return this; - } - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public Builder clearCiphertext() { - bitField0_ = (bitField0_ & ~0x00000001); - ciphertext_ = getDefaultInstance().getCiphertext(); - onChanged(); - return this; - } - - // optional bytes senderPublicKey = 2; - private com.google.protobuf.ByteString senderPublicKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes senderPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public boolean hasSenderPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes senderPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getSenderPublicKey() { - return senderPublicKey_; - } - /** - * optional bytes senderPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public Builder setSenderPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - senderPublicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes senderPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public Builder clearSenderPublicKey() { - bitField0_ = (bitField0_ & ~0x00000002); - senderPublicKey_ = getDefaultInstance().getSenderPublicKey(); - onChanged(); - return this; - } - - // optional uint32 keyIndex = 3; - private int keyIndex_ ; - /** - * optional uint32 keyIndex = 3; - * - *
-       * @required
-       * 
- */ - public boolean hasKeyIndex() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 keyIndex = 3; - * - *
-       * @required
-       * 
- */ - public int getKeyIndex() { - return keyIndex_; - } - /** - * optional uint32 keyIndex = 3; - * - *
-       * @required
-       * 
- */ - public Builder setKeyIndex(int value) { - bitField0_ |= 0x00000004; - keyIndex_ = value; - onChanged(); - return this; - } - /** - * optional uint32 keyIndex = 3; - * - *
-       * @required
-       * 
- */ - public Builder clearKeyIndex() { - bitField0_ = (bitField0_ & ~0x00000004); - keyIndex_ = 0; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:textsecure.ClosedGroupCiphertextMessage) - } - - static { - defaultInstance = new ClosedGroupCiphertextMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:textsecure.ClosedGroupCiphertextMessage) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_SignalMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_SignalMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_PreKeySignalMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_PreKeySignalMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_KeyExchangeMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_KeyExchangeMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_SenderKeyMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_SenderKeyMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_SenderKeyDistributionMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_SenderKeyDistributionMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_DeviceConsistencyCodeMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_DeviceConsistencyCodeMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_textsecure_ClosedGroupCiphertextMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_textsecure_ClosedGroupCiphertextMessage_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\031WhisperTextProtocol.proto\022\ntextsecure\"" + - "a\n\rSignalMessage\022\022\n\nratchetKey\030\001 \001(\014\022\017\n\007" + - "counter\030\002 \001(\r\022\027\n\017previousCounter\030\003 \001(\r\022\022" + - "\n\nciphertext\030\004 \001(\014\"\216\001\n\023PreKeySignalMessa" + - "ge\022\026\n\016registrationId\030\005 \001(\r\022\020\n\010preKeyId\030\001" + - " \001(\r\022\026\n\016signedPreKeyId\030\006 \001(\r\022\017\n\007baseKey\030" + - "\002 \001(\014\022\023\n\013identityKey\030\003 \001(\014\022\017\n\007message\030\004 " + - "\001(\014\"t\n\022KeyExchangeMessage\022\n\n\002id\030\001 \001(\r\022\017\n" + - "\007baseKey\030\002 \001(\014\022\022\n\nratchetKey\030\003 \001(\014\022\023\n\013id" + - "entityKey\030\004 \001(\014\022\030\n\020baseKeySignature\030\005 \001(", - "\014\"E\n\020SenderKeyMessage\022\n\n\002id\030\001 \001(\r\022\021\n\tite" + - "ration\030\002 \001(\r\022\022\n\nciphertext\030\003 \001(\014\"c\n\034Send" + - "erKeyDistributionMessage\022\n\n\002id\030\001 \001(\r\022\021\n\t" + - "iteration\030\002 \001(\r\022\020\n\010chainKey\030\003 \001(\014\022\022\n\nsig" + - "ningKey\030\004 \001(\014\"E\n\034DeviceConsistencyCodeMe" + - "ssage\022\022\n\ngeneration\030\001 \001(\r\022\021\n\tsignature\030\002" + - " \001(\014\"]\n\034ClosedGroupCiphertextMessage\022\022\n\n" + - "ciphertext\030\001 \001(\014\022\027\n\017senderPublicKey\030\002 \001(" + - "\014\022\020\n\010keyIndex\030\003 \001(\rB5\n%org.whispersystem" + - "s.libsignal.protocolB\014SignalProtos" - }; - 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_SignalMessage_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_textsecure_SignalMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_SignalMessage_descriptor, - new java.lang.String[] { "RatchetKey", "Counter", "PreviousCounter", "Ciphertext", }); - internal_static_textsecure_PreKeySignalMessage_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_textsecure_PreKeySignalMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_PreKeySignalMessage_descriptor, - new java.lang.String[] { "RegistrationId", "PreKeyId", "SignedPreKeyId", "BaseKey", "IdentityKey", "Message", }); - internal_static_textsecure_KeyExchangeMessage_descriptor = - getDescriptor().getMessageTypes().get(2); - internal_static_textsecure_KeyExchangeMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_KeyExchangeMessage_descriptor, - new java.lang.String[] { "Id", "BaseKey", "RatchetKey", "IdentityKey", "BaseKeySignature", }); - internal_static_textsecure_SenderKeyMessage_descriptor = - getDescriptor().getMessageTypes().get(3); - internal_static_textsecure_SenderKeyMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_SenderKeyMessage_descriptor, - new java.lang.String[] { "Id", "Iteration", "Ciphertext", }); - internal_static_textsecure_SenderKeyDistributionMessage_descriptor = - getDescriptor().getMessageTypes().get(4); - internal_static_textsecure_SenderKeyDistributionMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_SenderKeyDistributionMessage_descriptor, - new java.lang.String[] { "Id", "Iteration", "ChainKey", "SigningKey", }); - internal_static_textsecure_DeviceConsistencyCodeMessage_descriptor = - getDescriptor().getMessageTypes().get(5); - internal_static_textsecure_DeviceConsistencyCodeMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_DeviceConsistencyCodeMessage_descriptor, - new java.lang.String[] { "Generation", "Signature", }); - internal_static_textsecure_ClosedGroupCiphertextMessage_descriptor = - getDescriptor().getMessageTypes().get(6); - internal_static_textsecure_ClosedGroupCiphertextMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_textsecure_ClosedGroupCiphertextMessage_descriptor, - new java.lang.String[] { "Ciphertext", "SenderPublicKey", "KeyIndex", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/AliceSignalProtocolParameters.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/AliceSignalProtocolParameters.java deleted file mode 100644 index 771c4902a..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/AliceSignalProtocolParameters.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.guava.Optional; - -public class AliceSignalProtocolParameters { - - private final IdentityKeyPair ourIdentityKey; - private final ECKeyPair ourBaseKey; - - private final IdentityKey theirIdentityKey; - private final ECPublicKey theirSignedPreKey; - private final Optional theirOneTimePreKey; - private final ECPublicKey theirRatchetKey; - - private AliceSignalProtocolParameters(IdentityKeyPair ourIdentityKey, ECKeyPair ourBaseKey, - IdentityKey theirIdentityKey, ECPublicKey theirSignedPreKey, - ECPublicKey theirRatchetKey, Optional theirOneTimePreKey) - { - this.ourIdentityKey = ourIdentityKey; - this.ourBaseKey = ourBaseKey; - this.theirIdentityKey = theirIdentityKey; - this.theirSignedPreKey = theirSignedPreKey; - this.theirRatchetKey = theirRatchetKey; - this.theirOneTimePreKey = theirOneTimePreKey; - - if (ourIdentityKey == null || ourBaseKey == null || theirIdentityKey == null || - theirSignedPreKey == null || theirRatchetKey == null || theirOneTimePreKey == null) - { - throw new IllegalArgumentException("Null values!"); - } - } - - public IdentityKeyPair getOurIdentityKey() { - return ourIdentityKey; - } - - public ECKeyPair getOurBaseKey() { - return ourBaseKey; - } - - public IdentityKey getTheirIdentityKey() { - return theirIdentityKey; - } - - public ECPublicKey getTheirSignedPreKey() { - return theirSignedPreKey; - } - - public Optional getTheirOneTimePreKey() { - return theirOneTimePreKey; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public ECPublicKey getTheirRatchetKey() { - return theirRatchetKey; - } - - public static class Builder { - private IdentityKeyPair ourIdentityKey; - private ECKeyPair ourBaseKey; - - private IdentityKey theirIdentityKey; - private ECPublicKey theirSignedPreKey; - private ECPublicKey theirRatchetKey; - private Optional theirOneTimePreKey; - - public Builder setOurIdentityKey(IdentityKeyPair ourIdentityKey) { - this.ourIdentityKey = ourIdentityKey; - return this; - } - - public Builder setOurBaseKey(ECKeyPair ourBaseKey) { - this.ourBaseKey = ourBaseKey; - return this; - } - - public Builder setTheirRatchetKey(ECPublicKey theirRatchetKey) { - this.theirRatchetKey = theirRatchetKey; - return this; - } - - public Builder setTheirIdentityKey(IdentityKey theirIdentityKey) { - this.theirIdentityKey = theirIdentityKey; - return this; - } - - public Builder setTheirSignedPreKey(ECPublicKey theirSignedPreKey) { - this.theirSignedPreKey = theirSignedPreKey; - return this; - } - - public Builder setTheirOneTimePreKey(Optional theirOneTimePreKey) { - this.theirOneTimePreKey = theirOneTimePreKey; - return this; - } - - public AliceSignalProtocolParameters create() { - return new AliceSignalProtocolParameters(ourIdentityKey, ourBaseKey, theirIdentityKey, - theirSignedPreKey, theirRatchetKey, theirOneTimePreKey); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/BobSignalProtocolParameters.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/BobSignalProtocolParameters.java deleted file mode 100644 index 4ce144d00..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/BobSignalProtocolParameters.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.util.guava.Optional; - -public class BobSignalProtocolParameters { - - private final IdentityKeyPair ourIdentityKey; - private final ECKeyPair ourSignedPreKey; - private final Optional ourOneTimePreKey; - private final ECKeyPair ourRatchetKey; - - private final IdentityKey theirIdentityKey; - private final ECPublicKey theirBaseKey; - - BobSignalProtocolParameters(IdentityKeyPair ourIdentityKey, ECKeyPair ourSignedPreKey, - ECKeyPair ourRatchetKey, Optional ourOneTimePreKey, - IdentityKey theirIdentityKey, ECPublicKey theirBaseKey) - { - this.ourIdentityKey = ourIdentityKey; - this.ourSignedPreKey = ourSignedPreKey; - this.ourRatchetKey = ourRatchetKey; - this.ourOneTimePreKey = ourOneTimePreKey; - this.theirIdentityKey = theirIdentityKey; - this.theirBaseKey = theirBaseKey; - - if (ourIdentityKey == null || ourSignedPreKey == null || ourRatchetKey == null || - ourOneTimePreKey == null || theirIdentityKey == null || theirBaseKey == null) - { - throw new IllegalArgumentException("Null value!"); - } - } - - public IdentityKeyPair getOurIdentityKey() { - return ourIdentityKey; - } - - public ECKeyPair getOurSignedPreKey() { - return ourSignedPreKey; - } - - public Optional getOurOneTimePreKey() { - return ourOneTimePreKey; - } - - public IdentityKey getTheirIdentityKey() { - return theirIdentityKey; - } - - public ECPublicKey getTheirBaseKey() { - return theirBaseKey; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public ECKeyPair getOurRatchetKey() { - return ourRatchetKey; - } - - public static class Builder { - private IdentityKeyPair ourIdentityKey; - private ECKeyPair ourSignedPreKey; - private Optional ourOneTimePreKey; - private ECKeyPair ourRatchetKey; - - private IdentityKey theirIdentityKey; - private ECPublicKey theirBaseKey; - - public Builder setOurIdentityKey(IdentityKeyPair ourIdentityKey) { - this.ourIdentityKey = ourIdentityKey; - return this; - } - - public Builder setOurSignedPreKey(ECKeyPair ourSignedPreKey) { - this.ourSignedPreKey = ourSignedPreKey; - return this; - } - - public Builder setOurOneTimePreKey(Optional ourOneTimePreKey) { - this.ourOneTimePreKey = ourOneTimePreKey; - return this; - } - - public Builder setTheirIdentityKey(IdentityKey theirIdentityKey) { - this.theirIdentityKey = theirIdentityKey; - return this; - } - - public Builder setTheirBaseKey(ECPublicKey theirBaseKey) { - this.theirBaseKey = theirBaseKey; - return this; - } - - public Builder setOurRatchetKey(ECKeyPair ourRatchetKey) { - this.ourRatchetKey = ourRatchetKey; - return this; - } - - public BobSignalProtocolParameters create() { - return new BobSignalProtocolParameters(ourIdentityKey, ourSignedPreKey, ourRatchetKey, - ourOneTimePreKey, theirIdentityKey, theirBaseKey); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/ChainKey.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/ChainKey.java deleted file mode 100644 index 9f0da3b56..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/ChainKey.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - - -import org.whispersystems.libsignal.kdf.DerivedMessageSecrets; -import org.whispersystems.libsignal.kdf.HKDF; - -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -public class ChainKey { - - private static final byte[] MESSAGE_KEY_SEED = {0x01}; - private static final byte[] CHAIN_KEY_SEED = {0x02}; - - private final HKDF kdf; - private final byte[] key; - private final int index; - - public ChainKey(HKDF kdf, byte[] key, int index) { - this.kdf = kdf; - this.key = key; - this.index = index; - } - - public byte[] getKey() { - return key; - } - - public int getIndex() { - return index; - } - - public ChainKey getNextChainKey() { - byte[] nextKey = getBaseMaterial(CHAIN_KEY_SEED); - return new ChainKey(kdf, nextKey, index + 1); - } - - public MessageKeys getMessageKeys() { - byte[] inputKeyMaterial = getBaseMaterial(MESSAGE_KEY_SEED); - byte[] keyMaterialBytes = kdf.deriveSecrets(inputKeyMaterial, "WhisperMessageKeys".getBytes(), DerivedMessageSecrets.SIZE); - DerivedMessageSecrets keyMaterial = new DerivedMessageSecrets(keyMaterialBytes); - - return new MessageKeys(keyMaterial.getCipherKey(), keyMaterial.getMacKey(), keyMaterial.getIv(), index); - } - - private byte[] getBaseMaterial(byte[] seed) { - try { - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(key, "HmacSHA256")); - - return mac.doFinal(seed); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/MessageKeys.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/MessageKeys.java deleted file mode 100644 index 455d23d93..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/MessageKeys.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class MessageKeys { - - private final SecretKeySpec cipherKey; - private final SecretKeySpec macKey; - private final IvParameterSpec iv; - private final int counter; - - public MessageKeys(SecretKeySpec cipherKey, SecretKeySpec macKey, IvParameterSpec iv, int counter) { - this.cipherKey = cipherKey; - this.macKey = macKey; - this.iv = iv; - this.counter = counter; - } - - public SecretKeySpec getCipherKey() { - return cipherKey; - } - - public SecretKeySpec getMacKey() { - return macKey; - } - - public IvParameterSpec getIv() { - return iv; - } - - public int getCounter() { - return counter; - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/RatchetingSession.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/RatchetingSession.java deleted file mode 100644 index 7376d11e0..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/RatchetingSession.java +++ /dev/null @@ -1,160 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.kdf.HKDF; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.libsignal.protocol.CiphertextMessage; -import org.whispersystems.libsignal.state.SessionState; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Arrays; - -public class RatchetingSession { - - public static void initializeSession(SessionState sessionState, SymmetricSignalProtocolParameters parameters) - throws InvalidKeyException - { - if (isAlice(parameters.getOurBaseKey().getPublicKey(), parameters.getTheirBaseKey())) { - AliceSignalProtocolParameters.Builder aliceParameters = AliceSignalProtocolParameters.newBuilder(); - - aliceParameters.setOurBaseKey(parameters.getOurBaseKey()) - .setOurIdentityKey(parameters.getOurIdentityKey()) - .setTheirRatchetKey(parameters.getTheirRatchetKey()) - .setTheirIdentityKey(parameters.getTheirIdentityKey()) - .setTheirSignedPreKey(parameters.getTheirBaseKey()) - .setTheirOneTimePreKey(Optional.absent()); - - RatchetingSession.initializeSession(sessionState, aliceParameters.create()); - } else { - BobSignalProtocolParameters.Builder bobParameters = BobSignalProtocolParameters.newBuilder(); - - bobParameters.setOurIdentityKey(parameters.getOurIdentityKey()) - .setOurRatchetKey(parameters.getOurRatchetKey()) - .setOurSignedPreKey(parameters.getOurBaseKey()) - .setOurOneTimePreKey(Optional.absent()) - .setTheirBaseKey(parameters.getTheirBaseKey()) - .setTheirIdentityKey(parameters.getTheirIdentityKey()); - - RatchetingSession.initializeSession(sessionState, bobParameters.create()); - } - } - - public static void initializeSession(SessionState sessionState, AliceSignalProtocolParameters parameters) - throws InvalidKeyException - { - try { - sessionState.setSessionVersion(CiphertextMessage.CURRENT_VERSION); - sessionState.setRemoteIdentityKey(parameters.getTheirIdentityKey()); - sessionState.setLocalIdentityKey(parameters.getOurIdentityKey().getPublicKey()); - - ECKeyPair sendingRatchetKey = Curve.generateKeyPair(); - ByteArrayOutputStream secrets = new ByteArrayOutputStream(); - - secrets.write(getDiscontinuityBytes()); - - secrets.write(Curve.calculateAgreement(parameters.getTheirSignedPreKey(), - parameters.getOurIdentityKey().getPrivateKey())); - secrets.write(Curve.calculateAgreement(parameters.getTheirIdentityKey().getPublicKey(), - parameters.getOurBaseKey().getPrivateKey())); - secrets.write(Curve.calculateAgreement(parameters.getTheirSignedPreKey(), - parameters.getOurBaseKey().getPrivateKey())); - - if (parameters.getTheirOneTimePreKey().isPresent()) { - secrets.write(Curve.calculateAgreement(parameters.getTheirOneTimePreKey().get(), - parameters.getOurBaseKey().getPrivateKey())); - } - - DerivedKeys derivedKeys = calculateDerivedKeys(secrets.toByteArray()); - Pair sendingChain = derivedKeys.getRootKey().createChain(parameters.getTheirRatchetKey(), sendingRatchetKey); - - sessionState.addReceiverChain(parameters.getTheirRatchetKey(), derivedKeys.getChainKey()); - sessionState.setSenderChain(sendingRatchetKey, sendingChain.second()); - sessionState.setRootKey(sendingChain.first()); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - public static void initializeSession(SessionState sessionState, BobSignalProtocolParameters parameters) - throws InvalidKeyException - { - - try { - sessionState.setSessionVersion(CiphertextMessage.CURRENT_VERSION); - sessionState.setRemoteIdentityKey(parameters.getTheirIdentityKey()); - sessionState.setLocalIdentityKey(parameters.getOurIdentityKey().getPublicKey()); - - ByteArrayOutputStream secrets = new ByteArrayOutputStream(); - - secrets.write(getDiscontinuityBytes()); - - secrets.write(Curve.calculateAgreement(parameters.getTheirIdentityKey().getPublicKey(), - parameters.getOurSignedPreKey().getPrivateKey())); - secrets.write(Curve.calculateAgreement(parameters.getTheirBaseKey(), - parameters.getOurIdentityKey().getPrivateKey())); - secrets.write(Curve.calculateAgreement(parameters.getTheirBaseKey(), - parameters.getOurSignedPreKey().getPrivateKey())); - - if (parameters.getOurOneTimePreKey().isPresent()) { - secrets.write(Curve.calculateAgreement(parameters.getTheirBaseKey(), - parameters.getOurOneTimePreKey().get().getPrivateKey())); - } - - DerivedKeys derivedKeys = calculateDerivedKeys(secrets.toByteArray()); - - sessionState.setSenderChain(parameters.getOurRatchetKey(), derivedKeys.getChainKey()); - sessionState.setRootKey(derivedKeys.getRootKey()); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - private static byte[] getDiscontinuityBytes() { - byte[] discontinuity = new byte[32]; - Arrays.fill(discontinuity, (byte) 0xFF); - return discontinuity; - } - - private static DerivedKeys calculateDerivedKeys(byte[] masterSecret) { - HKDF kdf = new HKDFv3(); - byte[] derivedSecretBytes = kdf.deriveSecrets(masterSecret, "WhisperText".getBytes(), 64); - byte[][] derivedSecrets = ByteUtil.split(derivedSecretBytes, 32, 32); - - return new DerivedKeys(new RootKey(kdf, derivedSecrets[0]), - new ChainKey(kdf, derivedSecrets[1], 0)); - } - - private static boolean isAlice(ECPublicKey ourKey, ECPublicKey theirKey) { - return ourKey.compareTo(theirKey) < 0; - } - - private static class DerivedKeys { - private final RootKey rootKey; - private final ChainKey chainKey; - - private DerivedKeys(RootKey rootKey, ChainKey chainKey) { - this.rootKey = rootKey; - this.chainKey = chainKey; - } - - public RootKey getRootKey() { - return rootKey; - } - - public ChainKey getChainKey() { - return chainKey; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/RootKey.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/RootKey.java deleted file mode 100644 index f754ac6b7..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/RootKey.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.kdf.DerivedRootSecrets; -import org.whispersystems.libsignal.kdf.HKDF; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.libsignal.util.Pair; - -public class RootKey { - - private final HKDF kdf; - private final byte[] key; - - public RootKey(HKDF kdf, byte[] key) { - this.kdf = kdf; - this.key = key; - } - - public byte[] getKeyBytes() { - return key; - } - - public Pair createChain(ECPublicKey theirRatchetKey, ECKeyPair ourRatchetKey) - throws InvalidKeyException - { - byte[] sharedSecret = Curve.calculateAgreement(theirRatchetKey, ourRatchetKey.getPrivateKey()); - byte[] derivedSecretBytes = kdf.deriveSecrets(sharedSecret, key, "WhisperRatchet".getBytes(), DerivedRootSecrets.SIZE); - DerivedRootSecrets derivedSecrets = new DerivedRootSecrets(derivedSecretBytes); - - RootKey newRootKey = new RootKey(kdf, derivedSecrets.getRootKey()); - ChainKey newChainKey = new ChainKey(kdf, derivedSecrets.getChainKey(), 0); - - return new Pair(newRootKey, newChainKey); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/SymmetricSignalProtocolParameters.java b/service/java/src/main/java/org/whispersystems/libsignal/ratchet/SymmetricSignalProtocolParameters.java deleted file mode 100644 index 07527d6d0..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/ratchet/SymmetricSignalProtocolParameters.java +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.ratchet; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; - -public class SymmetricSignalProtocolParameters { - - private final ECKeyPair ourBaseKey; - private final ECKeyPair ourRatchetKey; - private final IdentityKeyPair ourIdentityKey; - - private final ECPublicKey theirBaseKey; - private final ECPublicKey theirRatchetKey; - private final IdentityKey theirIdentityKey; - - SymmetricSignalProtocolParameters(ECKeyPair ourBaseKey, ECKeyPair ourRatchetKey, - IdentityKeyPair ourIdentityKey, ECPublicKey theirBaseKey, - ECPublicKey theirRatchetKey, IdentityKey theirIdentityKey) - { - this.ourBaseKey = ourBaseKey; - this.ourRatchetKey = ourRatchetKey; - this.ourIdentityKey = ourIdentityKey; - this.theirBaseKey = theirBaseKey; - this.theirRatchetKey = theirRatchetKey; - this.theirIdentityKey = theirIdentityKey; - - if (ourBaseKey == null || ourRatchetKey == null || ourIdentityKey == null || - theirBaseKey == null || theirRatchetKey == null || theirIdentityKey == null) - { - throw new IllegalArgumentException("Null values!"); - } - } - - public ECKeyPair getOurBaseKey() { - return ourBaseKey; - } - - public ECKeyPair getOurRatchetKey() { - return ourRatchetKey; - } - - public IdentityKeyPair getOurIdentityKey() { - return ourIdentityKey; - } - - public ECPublicKey getTheirBaseKey() { - return theirBaseKey; - } - - public ECPublicKey getTheirRatchetKey() { - return theirRatchetKey; - } - - public IdentityKey getTheirIdentityKey() { - return theirIdentityKey; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - private ECKeyPair ourBaseKey; - private ECKeyPair ourRatchetKey; - private IdentityKeyPair ourIdentityKey; - - private ECPublicKey theirBaseKey; - private ECPublicKey theirRatchetKey; - private IdentityKey theirIdentityKey; - - public Builder setOurBaseKey(ECKeyPair ourBaseKey) { - this.ourBaseKey = ourBaseKey; - return this; - } - - public Builder setOurRatchetKey(ECKeyPair ourRatchetKey) { - this.ourRatchetKey = ourRatchetKey; - return this; - } - - public Builder setOurIdentityKey(IdentityKeyPair ourIdentityKey) { - this.ourIdentityKey = ourIdentityKey; - return this; - } - - public Builder setTheirBaseKey(ECPublicKey theirBaseKey) { - this.theirBaseKey = theirBaseKey; - return this; - } - - public Builder setTheirRatchetKey(ECPublicKey theirRatchetKey) { - this.theirRatchetKey = theirRatchetKey; - return this; - } - - public Builder setTheirIdentityKey(IdentityKey theirIdentityKey) { - this.theirIdentityKey = theirIdentityKey; - return this; - } - - public SymmetricSignalProtocolParameters create() { - return new SymmetricSignalProtocolParameters(ourBaseKey, ourRatchetKey, ourIdentityKey, - theirBaseKey, theirRatchetKey, theirIdentityKey); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/IdentityKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/IdentityKeyStore.java deleted file mode 100644 index f077ff545..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/IdentityKeyStore.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.SignalProtocolAddress; - -/** - * Provides an interface to identity information. - * - * @author Moxie Marlinspike - */ -public interface IdentityKeyStore { - - public enum Direction { - SENDING, RECEIVING - } - - /** - * 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. - *

- * 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 - *

- * Store a remote client's identity key as trusted. - * - * @param address The address of the remote client. - * @param identityKey The remote client's identity key. - * @return True if the identity key replaces a previous identity, false if not - */ - public boolean saveIdentity(SignalProtocolAddress address, IdentityKey identityKey); - - - /** - * Verify a remote client's identity key. - *

- * Determine whether a remote client's identity is trusted. Convention is - * that the Signal 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.' - * - * Clients may wish to make a distinction as to how keys are trusted based on the - * direction of travel. For instance, clients may wish to accept all 'incoming' identity - * key changes, while only blocking identity key changes when sending a message. - * - * @param address The address of the remote client. - * @param identityKey The identity key to verify. - * @param direction The direction (sending or receiving) this identity is being used for. - * @return true if trusted, false if untrusted. - */ - public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey, Direction direction); - - - /** - * Return the saved public identity key for a remote client - * - * @param address The address of the remote client - * @return The public identity key, or null if absent - */ - public IdentityKey getIdentity(SignalProtocolAddress address); - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyBundle.java b/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyBundle.java deleted file mode 100644 index 02c61faf8..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyBundle.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.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.libsignal.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/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyRecord.java b/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyRecord.java deleted file mode 100644 index b29f0a561..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyRecord.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; - -import java.io.IOException; - -import static org.whispersystems.libsignal.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/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyStore.java deleted file mode 100644 index a53742210..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/PreKeyStore.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import org.whispersystems.libsignal.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/service/java/src/main/java/org/whispersystems/libsignal/state/SessionRecord.java b/service/java/src/main/java/org/whispersystems/libsignal/state/SessionRecord.java deleted file mode 100644 index 86bb366e2..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/SessionRecord.java +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import java.io.IOException; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; - -import static org.whispersystems.libsignal.state.StorageProtos.RecordStructure; -import static org.whispersystems.libsignal.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 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 getPreviousSessionStates() { - return previousStates; - } - - public void removePreviousSessionStates() { - previousStates.clear(); - } - - public boolean isFresh() { - return fresh; - } - - /** - * Move the current {@link SessionState} into the list of "previous" session states, - * and replace the current {@link org.whispersystems.libsignal.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 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/service/java/src/main/java/org/whispersystems/libsignal/state/SessionState.java b/service/java/src/main/java/org/whispersystems/libsignal/state/SessionState.java deleted file mode 100644 index 612dd2f39..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/SessionState.java +++ /dev/null @@ -1,503 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.libsignal.state; - - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.kdf.HKDF; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.ratchet.ChainKey; -import org.whispersystems.libsignal.ratchet.MessageKeys; -import org.whispersystems.libsignal.ratchet.RootKey; -import org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain; -import org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange; -import org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure; - -public class SessionState { - - private static final int MAX_MESSAGE_KEYS = 2000; - - 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 getReceiverChain(ECPublicKey senderEphemeral) { - List 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 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 chainAndIndex = getReceiverChain(senderEphemeral); - Chain chain = chainAndIndex.first(); - - if (chain == null) { - return false; - } - - List messageKeyList = chain.getMessageKeysList(); - - for (Chain.MessageKey messageKey : messageKeyList) { - if (messageKey.getIndex() == counter) { - return true; - } - } - - return false; - } - - public MessageKeys removeMessageKeys(ECPublicKey senderEphemeral, int counter) { - Pair chainAndIndex = getReceiverChain(senderEphemeral); - Chain chain = chainAndIndex.first(); - - if (chain == null) { - return null; - } - - List messageKeyList = new LinkedList(chain.getMessageKeysList()); - Iterator 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 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.Builder updatedChain = chain.toBuilder().addMessageKeys(messageKeyStructure); - - if (updatedChain.getMessageKeysCount() > MAX_MESSAGE_KEYS) { - updatedChain.removeMessageKeys(0); - } - - this.sessionStructure = this.sessionStructure.toBuilder() - .setReceiverChains(chainAndIndex.second(), - updatedChain.build()) - .build(); - } - - public void setReceiverChainKey(ECPublicKey senderEphemeral, ChainKey chainKey) { - Pair 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 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 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 preKeyId; - private final int signedPreKeyId; - private final ECPublicKey baseKey; - - public UnacknowledgedPreKeyMessageItems(Optional preKeyId, - int signedPreKeyId, - ECPublicKey baseKey) - { - this.preKeyId = preKeyId; - this.signedPreKeyId = signedPreKeyId; - this.baseKey = baseKey; - } - - - public Optional getPreKeyId() { - return preKeyId; - } - - public int getSignedPreKeyId() { - return signedPreKeyId; - } - - public ECPublicKey getBaseKey() { - return baseKey; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/SessionStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/SessionStore.java deleted file mode 100644 index b834171dc..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/SessionStore.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import org.whispersystems.libsignal.SignalProtocolAddress; - -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. - *

- * 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 address The name and device ID 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(SignalProtocolAddress address); - - /** - * Returns all known devices with active sessions for a recipient - * - * @param name the name of the client. - * @return all known sub-devices with active sessions. - */ - public List getSubDeviceSessions(String name); - - /** - * Commit to storage the {@link SessionRecord} for a given recipientId + deviceId tuple. - * @param address the address of the remote client. - * @param record the current SessionRecord for the remote client. - */ - public void storeSession(SignalProtocolAddress address, SessionRecord record); - - /** - * Determine whether there is a committed {@link SessionRecord} for a recipientId + deviceId tuple. - * @param address the address of the remote client. - * @return true if a {@link SessionRecord} exists, false otherwise. - */ - public boolean containsSession(SignalProtocolAddress address); - - /** - * Remove a {@link SessionRecord} for a recipientId + deviceId tuple. - * - * @param address the address of the remote client. - */ - public void deleteSession(SignalProtocolAddress address); - - /** - * Remove the {@link SessionRecord}s corresponding to all devices of a recipientId. - * - * @param name the name of the remote client. - */ - public void deleteAllSessions(String name); - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/SignalProtocolStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/SignalProtocolStore.java deleted file mode 100644 index 932dac639..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/SignalProtocolStore.java +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -public interface SignalProtocolStore - extends IdentityKeyStore, PreKeyStore, SessionStore, SignedPreKeyStore -{ -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyRecord.java b/service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyRecord.java deleted file mode 100644 index eca573aee..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyRecord.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPrivateKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; - -import java.io.IOException; - -import static org.whispersystems.libsignal.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/service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyStore.java deleted file mode 100644 index 4806c6bc7..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/SignedPreKeyStore.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state; - -import org.whispersystems.libsignal.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 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/service/java/src/main/java/org/whispersystems/libsignal/state/StorageProtos.java b/service/java/src/main/java/org/whispersystems/libsignal/state/StorageProtos.java deleted file mode 100644 index 6fceb8f09..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/StorageProtos.java +++ /dev/null @@ -1,11779 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: LocalStorageProtocol.proto - -package org.whispersystems.libsignal.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; - /** - * optional uint32 sessionVersion = 1; - */ - boolean hasSessionVersion(); - /** - * optional uint32 sessionVersion = 1; - */ - int getSessionVersion(); - - // optional bytes localIdentityPublic = 2; - /** - * optional bytes localIdentityPublic = 2; - */ - boolean hasLocalIdentityPublic(); - /** - * optional bytes localIdentityPublic = 2; - */ - com.google.protobuf.ByteString getLocalIdentityPublic(); - - // optional bytes remoteIdentityPublic = 3; - /** - * optional bytes remoteIdentityPublic = 3; - */ - boolean hasRemoteIdentityPublic(); - /** - * optional bytes remoteIdentityPublic = 3; - */ - com.google.protobuf.ByteString getRemoteIdentityPublic(); - - // optional bytes rootKey = 4; - /** - * optional bytes rootKey = 4; - */ - boolean hasRootKey(); - /** - * optional bytes rootKey = 4; - */ - com.google.protobuf.ByteString getRootKey(); - - // optional uint32 previousCounter = 5; - /** - * optional uint32 previousCounter = 5; - */ - boolean hasPreviousCounter(); - /** - * optional uint32 previousCounter = 5; - */ - int getPreviousCounter(); - - // optional .textsecure.SessionStructure.Chain senderChain = 6; - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - boolean hasSenderChain(); - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getSenderChain(); - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder getSenderChainOrBuilder(); - - // repeated .textsecure.SessionStructure.Chain receiverChains = 7; - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - java.util.List - getReceiverChainsList(); - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getReceiverChains(int index); - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - int getReceiverChainsCount(); - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - java.util.List - getReceiverChainsOrBuilderList(); - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder getReceiverChainsOrBuilder( - int index); - - // optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - boolean hasPendingKeyExchange(); - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange getPendingKeyExchange(); - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder getPendingKeyExchangeOrBuilder(); - - // optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - boolean hasPendingPreKey(); - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey getPendingPreKey(); - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder getPendingPreKeyOrBuilder(); - - // optional uint32 remoteRegistrationId = 10; - /** - * optional uint32 remoteRegistrationId = 10; - */ - boolean hasRemoteRegistrationId(); - /** - * optional uint32 remoteRegistrationId = 10; - */ - int getRemoteRegistrationId(); - - // optional uint32 localRegistrationId = 11; - /** - * optional uint32 localRegistrationId = 11; - */ - boolean hasLocalRegistrationId(); - /** - * optional uint32 localRegistrationId = 11; - */ - int getLocalRegistrationId(); - - // optional bool needsRefresh = 12; - /** - * optional bool needsRefresh = 12; - */ - boolean hasNeedsRefresh(); - /** - * optional bool needsRefresh = 12; - */ - boolean getNeedsRefresh(); - - // optional bytes aliceBaseKey = 13; - /** - * optional bytes aliceBaseKey = 13; - */ - boolean hasAliceBaseKey(); - /** - * optional bytes aliceBaseKey = 13; - */ - 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.libsignal.state.StorageProtos.SessionStructure.Chain.Builder subBuilder = null; - if (((bitField0_ & 0x00000020) == 0x00000020)) { - subBuilder = senderChain_.toBuilder(); - } - senderChain_ = input.readMessage(org.whispersystems.libsignal.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(); - mutable_bitField0_ |= 0x00000040; - } - receiverChains_.add(input.readMessage(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.PARSER, extensionRegistry)); - break; - } - case 66: { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder subBuilder = null; - if (((bitField0_ & 0x00000040) == 0x00000040)) { - subBuilder = pendingKeyExchange_.toBuilder(); - } - pendingKeyExchange_ = input.readMessage(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(pendingKeyExchange_); - pendingKeyExchange_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000040; - break; - } - case 74: { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder subBuilder = null; - if (((bitField0_ & 0x00000080) == 0x00000080)) { - subBuilder = pendingPreKey_.toBuilder(); - } - pendingPreKey_ = input.readMessage(org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - public interface ChainOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes senderRatchetKey = 1; - /** - * optional bytes senderRatchetKey = 1; - */ - boolean hasSenderRatchetKey(); - /** - * optional bytes senderRatchetKey = 1; - */ - com.google.protobuf.ByteString getSenderRatchetKey(); - - // optional bytes senderRatchetKeyPrivate = 2; - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - boolean hasSenderRatchetKeyPrivate(); - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - com.google.protobuf.ByteString getSenderRatchetKeyPrivate(); - - // optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - boolean hasChainKey(); - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey getChainKey(); - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder getChainKeyOrBuilder(); - - // repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - java.util.List - getMessageKeysList(); - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey getMessageKeys(int index); - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - int getMessageKeysCount(); - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - java.util.List - getMessageKeysOrBuilderList(); - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = chainKey_.toBuilder(); - } - chainKey_ = input.readMessage(org.whispersystems.libsignal.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(); - mutable_bitField0_ |= 0x00000008; - } - messageKeys_.add(input.readMessage(org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - public interface ChainKeyOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 index = 1; - /** - * optional uint32 index = 1; - */ - boolean hasIndex(); - /** - * optional uint32 index = 1; - */ - int getIndex(); - - // optional bytes key = 2; - /** - * optional bytes key = 2; - */ - boolean hasKey(); - /** - * optional bytes key = 2; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 index = 1; - public static final int INDEX_FIELD_NUMBER = 1; - private int index_; - /** - * optional uint32 index = 1; - */ - public boolean hasIndex() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 index = 1; - */ - public int getIndex() { - return index_; - } - - // optional bytes key = 2; - public static final int KEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString key_; - /** - * optional bytes key = 2; - */ - public boolean hasKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes key = 2; - */ - 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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_ChainKey_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey build() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 index = 1; - */ - public boolean hasIndex() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 index = 1; - */ - public int getIndex() { - return index_; - } - /** - * optional uint32 index = 1; - */ - public Builder setIndex(int value) { - bitField0_ |= 0x00000001; - index_ = value; - onChanged(); - return this; - } - /** - * optional uint32 index = 1; - */ - 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; - /** - * optional bytes key = 2; - */ - public boolean hasKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes key = 2; - */ - public com.google.protobuf.ByteString getKey() { - return key_; - } - /** - * optional bytes key = 2; - */ - public Builder setKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - key_ = value; - onChanged(); - return this; - } - /** - * optional bytes key = 2; - */ - 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; - /** - * optional uint32 index = 1; - */ - boolean hasIndex(); - /** - * optional uint32 index = 1; - */ - int getIndex(); - - // optional bytes cipherKey = 2; - /** - * optional bytes cipherKey = 2; - */ - boolean hasCipherKey(); - /** - * optional bytes cipherKey = 2; - */ - com.google.protobuf.ByteString getCipherKey(); - - // optional bytes macKey = 3; - /** - * optional bytes macKey = 3; - */ - boolean hasMacKey(); - /** - * optional bytes macKey = 3; - */ - com.google.protobuf.ByteString getMacKey(); - - // optional bytes iv = 4; - /** - * optional bytes iv = 4; - */ - boolean hasIv(); - /** - * optional bytes iv = 4; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 index = 1; - public static final int INDEX_FIELD_NUMBER = 1; - private int index_; - /** - * optional uint32 index = 1; - */ - public boolean hasIndex() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 index = 1; - */ - public int getIndex() { - return index_; - } - - // optional bytes cipherKey = 2; - public static final int CIPHERKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString cipherKey_; - /** - * optional bytes cipherKey = 2; - */ - public boolean hasCipherKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes cipherKey = 2; - */ - 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_; - /** - * optional bytes macKey = 3; - */ - public boolean hasMacKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes macKey = 3; - */ - 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_; - /** - * optional bytes iv = 4; - */ - public boolean hasIv() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes iv = 4; - */ - 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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_MessageKey_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey build() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 index = 1; - */ - public boolean hasIndex() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 index = 1; - */ - public int getIndex() { - return index_; - } - /** - * optional uint32 index = 1; - */ - public Builder setIndex(int value) { - bitField0_ |= 0x00000001; - index_ = value; - onChanged(); - return this; - } - /** - * optional uint32 index = 1; - */ - 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; - /** - * optional bytes cipherKey = 2; - */ - public boolean hasCipherKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes cipherKey = 2; - */ - public com.google.protobuf.ByteString getCipherKey() { - return cipherKey_; - } - /** - * optional bytes cipherKey = 2; - */ - public Builder setCipherKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - cipherKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes cipherKey = 2; - */ - 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; - /** - * optional bytes macKey = 3; - */ - public boolean hasMacKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes macKey = 3; - */ - public com.google.protobuf.ByteString getMacKey() { - return macKey_; - } - /** - * optional bytes macKey = 3; - */ - public Builder setMacKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - macKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes macKey = 3; - */ - 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; - /** - * optional bytes iv = 4; - */ - public boolean hasIv() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes iv = 4; - */ - public com.google.protobuf.ByteString getIv() { - return iv_; - } - /** - * optional bytes iv = 4; - */ - public Builder setIv(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - iv_ = value; - onChanged(); - return this; - } - /** - * optional bytes iv = 4; - */ - 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_; - /** - * optional bytes senderRatchetKey = 1; - */ - public boolean hasSenderRatchetKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes senderRatchetKey = 1; - */ - 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_; - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - public boolean hasSenderRatchetKeyPrivate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - 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.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey chainKey_; - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public boolean hasChainKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey getChainKey() { - return chainKey_; - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public org.whispersystems.libsignal.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 messageKeys_; - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public java.util.List getMessageKeysList() { - return messageKeys_; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public java.util.List - getMessageKeysOrBuilderList() { - return messageKeys_; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public int getMessageKeysCount() { - return messageKeys_.size(); - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey getMessageKeys(int index) { - return messageKeys_.get(index); - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.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.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_Chain_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain build() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Chain parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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; - /** - * optional bytes senderRatchetKey = 1; - */ - public boolean hasSenderRatchetKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes senderRatchetKey = 1; - */ - public com.google.protobuf.ByteString getSenderRatchetKey() { - return senderRatchetKey_; - } - /** - * optional bytes senderRatchetKey = 1; - */ - public Builder setSenderRatchetKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - senderRatchetKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes senderRatchetKey = 1; - */ - 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; - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - public boolean hasSenderRatchetKeyPrivate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - public com.google.protobuf.ByteString getSenderRatchetKeyPrivate() { - return senderRatchetKeyPrivate_; - } - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - public Builder setSenderRatchetKeyPrivate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - senderRatchetKeyPrivate_ = value; - onChanged(); - return this; - } - /** - * optional bytes senderRatchetKeyPrivate = 2; - */ - public Builder clearSenderRatchetKeyPrivate() { - bitField0_ = (bitField0_ & ~0x00000002); - senderRatchetKeyPrivate_ = getDefaultInstance().getSenderRatchetKeyPrivate(); - onChanged(); - return this; - } - - // optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey chainKey_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder> chainKeyBuilder_; - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public boolean hasChainKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey getChainKey() { - if (chainKeyBuilder_ == null) { - return chainKey_; - } else { - return chainKeyBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public Builder setChainKey(org.whispersystems.libsignal.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; - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public Builder setChainKey( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder builderForValue) { - if (chainKeyBuilder_ == null) { - chainKey_ = builderForValue.build(); - onChanged(); - } else { - chainKeyBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public Builder mergeChainKey(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey value) { - if (chainKeyBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - chainKey_ != org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance()) { - chainKey_ = - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.newBuilder(chainKey_).mergeFrom(value).buildPartial(); - } else { - chainKey_ = value; - } - onChanged(); - } else { - chainKeyBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public Builder clearChainKey() { - if (chainKeyBuilder_ == null) { - chainKey_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.getDefaultInstance(); - onChanged(); - } else { - chainKeyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder getChainKeyBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getChainKeyFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder getChainKeyOrBuilder() { - if (chainKeyBuilder_ != null) { - return chainKeyBuilder_.getMessageOrBuilder(); - } else { - return chainKey_; - } - } - /** - * optional .textsecure.SessionStructure.Chain.ChainKey chainKey = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder> - getChainKeyFieldBuilder() { - if (chainKeyBuilder_ == null) { - chainKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.ChainKeyOrBuilder>( - chainKey_, - getParentForChildren(), - isClean()); - chainKey_ = null; - } - return chainKeyBuilder_; - } - - // repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - private java.util.List messageKeys_ = - java.util.Collections.emptyList(); - private void ensureMessageKeysIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - messageKeys_ = new java.util.ArrayList(messageKeys_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder> messageKeysBuilder_; - - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public java.util.List getMessageKeysList() { - if (messageKeysBuilder_ == null) { - return java.util.Collections.unmodifiableList(messageKeys_); - } else { - return messageKeysBuilder_.getMessageList(); - } - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public int getMessageKeysCount() { - if (messageKeysBuilder_ == null) { - return messageKeys_.size(); - } else { - return messageKeysBuilder_.getCount(); - } - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey getMessageKeys(int index) { - if (messageKeysBuilder_ == null) { - return messageKeys_.get(index); - } else { - return messageKeysBuilder_.getMessage(index); - } - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder setMessageKeys( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder setMessageKeys( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder addMessageKeys(org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder addMessageKeys( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder addMessageKeys( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder builderForValue) { - if (messageKeysBuilder_ == null) { - ensureMessageKeysIsMutable(); - messageKeys_.add(builderForValue.build()); - onChanged(); - } else { - messageKeysBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder addMessageKeys( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder addAllMessageKeys( - java.lang.Iterable values) { - if (messageKeysBuilder_ == null) { - ensureMessageKeysIsMutable(); - super.addAll(values, messageKeys_); - onChanged(); - } else { - messageKeysBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder clearMessageKeys() { - if (messageKeysBuilder_ == null) { - messageKeys_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - messageKeysBuilder_.clear(); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public Builder removeMessageKeys(int index) { - if (messageKeysBuilder_ == null) { - ensureMessageKeysIsMutable(); - messageKeys_.remove(index); - onChanged(); - } else { - messageKeysBuilder_.remove(index); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder getMessageKeysBuilder( - int index) { - return getMessageKeysFieldBuilder().getBuilder(index); - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder getMessageKeysOrBuilder( - int index) { - if (messageKeysBuilder_ == null) { - return messageKeys_.get(index); } else { - return messageKeysBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public java.util.List - getMessageKeysOrBuilderList() { - if (messageKeysBuilder_ != null) { - return messageKeysBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(messageKeys_); - } - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder addMessageKeysBuilder() { - return getMessageKeysFieldBuilder().addBuilder( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance()); - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder addMessageKeysBuilder( - int index) { - return getMessageKeysFieldBuilder().addBuilder( - index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.getDefaultInstance()); - } - /** - * repeated .textsecure.SessionStructure.Chain.MessageKey messageKeys = 4; - */ - public java.util.List - getMessageKeysBuilderList() { - return getMessageKeysFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKeyOrBuilder> - getMessageKeysFieldBuilder() { - if (messageKeysBuilder_ == null) { - messageKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.MessageKey.Builder, org.whispersystems.libsignal.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; - /** - * optional uint32 sequence = 1; - */ - boolean hasSequence(); - /** - * optional uint32 sequence = 1; - */ - int getSequence(); - - // optional bytes localBaseKey = 2; - /** - * optional bytes localBaseKey = 2; - */ - boolean hasLocalBaseKey(); - /** - * optional bytes localBaseKey = 2; - */ - com.google.protobuf.ByteString getLocalBaseKey(); - - // optional bytes localBaseKeyPrivate = 3; - /** - * optional bytes localBaseKeyPrivate = 3; - */ - boolean hasLocalBaseKeyPrivate(); - /** - * optional bytes localBaseKeyPrivate = 3; - */ - com.google.protobuf.ByteString getLocalBaseKeyPrivate(); - - // optional bytes localRatchetKey = 4; - /** - * optional bytes localRatchetKey = 4; - */ - boolean hasLocalRatchetKey(); - /** - * optional bytes localRatchetKey = 4; - */ - com.google.protobuf.ByteString getLocalRatchetKey(); - - // optional bytes localRatchetKeyPrivate = 5; - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - boolean hasLocalRatchetKeyPrivate(); - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - com.google.protobuf.ByteString getLocalRatchetKeyPrivate(); - - // optional bytes localIdentityKey = 7; - /** - * optional bytes localIdentityKey = 7; - */ - boolean hasLocalIdentityKey(); - /** - * optional bytes localIdentityKey = 7; - */ - com.google.protobuf.ByteString getLocalIdentityKey(); - - // optional bytes localIdentityKeyPrivate = 8; - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - boolean hasLocalIdentityKeyPrivate(); - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 sequence = 1; - public static final int SEQUENCE_FIELD_NUMBER = 1; - private int sequence_; - /** - * optional uint32 sequence = 1; - */ - public boolean hasSequence() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 sequence = 1; - */ - public int getSequence() { - return sequence_; - } - - // optional bytes localBaseKey = 2; - public static final int LOCALBASEKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString localBaseKey_; - /** - * optional bytes localBaseKey = 2; - */ - public boolean hasLocalBaseKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes localBaseKey = 2; - */ - 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_; - /** - * optional bytes localBaseKeyPrivate = 3; - */ - public boolean hasLocalBaseKeyPrivate() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes localBaseKeyPrivate = 3; - */ - 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_; - /** - * optional bytes localRatchetKey = 4; - */ - public boolean hasLocalRatchetKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes localRatchetKey = 4; - */ - 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_; - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - public boolean hasLocalRatchetKeyPrivate() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - 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_; - /** - * optional bytes localIdentityKey = 7; - */ - public boolean hasLocalIdentityKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes localIdentityKey = 7; - */ - 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_; - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - public boolean hasLocalIdentityKeyPrivate() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - 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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingKeyExchange_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange build() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 sequence = 1; - */ - public boolean hasSequence() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 sequence = 1; - */ - public int getSequence() { - return sequence_; - } - /** - * optional uint32 sequence = 1; - */ - public Builder setSequence(int value) { - bitField0_ |= 0x00000001; - sequence_ = value; - onChanged(); - return this; - } - /** - * optional uint32 sequence = 1; - */ - 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; - /** - * optional bytes localBaseKey = 2; - */ - public boolean hasLocalBaseKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes localBaseKey = 2; - */ - public com.google.protobuf.ByteString getLocalBaseKey() { - return localBaseKey_; - } - /** - * optional bytes localBaseKey = 2; - */ - public Builder setLocalBaseKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - localBaseKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes localBaseKey = 2; - */ - 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; - /** - * optional bytes localBaseKeyPrivate = 3; - */ - public boolean hasLocalBaseKeyPrivate() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes localBaseKeyPrivate = 3; - */ - public com.google.protobuf.ByteString getLocalBaseKeyPrivate() { - return localBaseKeyPrivate_; - } - /** - * optional bytes localBaseKeyPrivate = 3; - */ - public Builder setLocalBaseKeyPrivate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - localBaseKeyPrivate_ = value; - onChanged(); - return this; - } - /** - * optional bytes localBaseKeyPrivate = 3; - */ - 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; - /** - * optional bytes localRatchetKey = 4; - */ - public boolean hasLocalRatchetKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes localRatchetKey = 4; - */ - public com.google.protobuf.ByteString getLocalRatchetKey() { - return localRatchetKey_; - } - /** - * optional bytes localRatchetKey = 4; - */ - public Builder setLocalRatchetKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - localRatchetKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes localRatchetKey = 4; - */ - 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; - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - public boolean hasLocalRatchetKeyPrivate() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - public com.google.protobuf.ByteString getLocalRatchetKeyPrivate() { - return localRatchetKeyPrivate_; - } - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - public Builder setLocalRatchetKeyPrivate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - localRatchetKeyPrivate_ = value; - onChanged(); - return this; - } - /** - * optional bytes localRatchetKeyPrivate = 5; - */ - 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; - /** - * optional bytes localIdentityKey = 7; - */ - public boolean hasLocalIdentityKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes localIdentityKey = 7; - */ - public com.google.protobuf.ByteString getLocalIdentityKey() { - return localIdentityKey_; - } - /** - * optional bytes localIdentityKey = 7; - */ - public Builder setLocalIdentityKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - localIdentityKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes localIdentityKey = 7; - */ - 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; - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - public boolean hasLocalIdentityKeyPrivate() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - public com.google.protobuf.ByteString getLocalIdentityKeyPrivate() { - return localIdentityKeyPrivate_; - } - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - public Builder setLocalIdentityKeyPrivate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - localIdentityKeyPrivate_ = value; - onChanged(); - return this; - } - /** - * optional bytes localIdentityKeyPrivate = 8; - */ - 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; - /** - * optional uint32 preKeyId = 1; - */ - boolean hasPreKeyId(); - /** - * optional uint32 preKeyId = 1; - */ - int getPreKeyId(); - - // optional int32 signedPreKeyId = 3; - /** - * optional int32 signedPreKeyId = 3; - */ - boolean hasSignedPreKeyId(); - /** - * optional int32 signedPreKeyId = 3; - */ - int getSignedPreKeyId(); - - // optional bytes baseKey = 2; - /** - * optional bytes baseKey = 2; - */ - boolean hasBaseKey(); - /** - * optional bytes baseKey = 2; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 preKeyId = 1; - public static final int PREKEYID_FIELD_NUMBER = 1; - private int preKeyId_; - /** - * optional uint32 preKeyId = 1; - */ - public boolean hasPreKeyId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 preKeyId = 1; - */ - public int getPreKeyId() { - return preKeyId_; - } - - // optional int32 signedPreKeyId = 3; - public static final int SIGNEDPREKEYID_FIELD_NUMBER = 3; - private int signedPreKeyId_; - /** - * optional int32 signedPreKeyId = 3; - */ - public boolean hasSignedPreKeyId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional int32 signedPreKeyId = 3; - */ - public int getSignedPreKeyId() { - return signedPreKeyId_; - } - - // optional bytes baseKey = 2; - public static final int BASEKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString baseKey_; - /** - * optional bytes baseKey = 2; - */ - public boolean hasBaseKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes baseKey = 2; - */ - 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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_PendingPreKey_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey build() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingPreKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 preKeyId = 1; - */ - public boolean hasPreKeyId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 preKeyId = 1; - */ - public int getPreKeyId() { - return preKeyId_; - } - /** - * optional uint32 preKeyId = 1; - */ - public Builder setPreKeyId(int value) { - bitField0_ |= 0x00000001; - preKeyId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 preKeyId = 1; - */ - public Builder clearPreKeyId() { - bitField0_ = (bitField0_ & ~0x00000001); - preKeyId_ = 0; - onChanged(); - return this; - } - - // optional int32 signedPreKeyId = 3; - private int signedPreKeyId_ ; - /** - * optional int32 signedPreKeyId = 3; - */ - public boolean hasSignedPreKeyId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional int32 signedPreKeyId = 3; - */ - public int getSignedPreKeyId() { - return signedPreKeyId_; - } - /** - * optional int32 signedPreKeyId = 3; - */ - public Builder setSignedPreKeyId(int value) { - bitField0_ |= 0x00000002; - signedPreKeyId_ = value; - onChanged(); - return this; - } - /** - * optional int32 signedPreKeyId = 3; - */ - 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; - /** - * optional bytes baseKey = 2; - */ - public boolean hasBaseKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes baseKey = 2; - */ - public com.google.protobuf.ByteString getBaseKey() { - return baseKey_; - } - /** - * optional bytes baseKey = 2; - */ - public Builder setBaseKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - baseKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes baseKey = 2; - */ - 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_; - /** - * optional uint32 sessionVersion = 1; - */ - public boolean hasSessionVersion() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 sessionVersion = 1; - */ - public int getSessionVersion() { - return sessionVersion_; - } - - // optional bytes localIdentityPublic = 2; - public static final int LOCALIDENTITYPUBLIC_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString localIdentityPublic_; - /** - * optional bytes localIdentityPublic = 2; - */ - public boolean hasLocalIdentityPublic() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes localIdentityPublic = 2; - */ - 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_; - /** - * optional bytes remoteIdentityPublic = 3; - */ - public boolean hasRemoteIdentityPublic() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes remoteIdentityPublic = 3; - */ - 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_; - /** - * optional bytes rootKey = 4; - */ - public boolean hasRootKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes rootKey = 4; - */ - public com.google.protobuf.ByteString getRootKey() { - return rootKey_; - } - - // optional uint32 previousCounter = 5; - public static final int PREVIOUSCOUNTER_FIELD_NUMBER = 5; - private int previousCounter_; - /** - * optional uint32 previousCounter = 5; - */ - public boolean hasPreviousCounter() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint32 previousCounter = 5; - */ - public int getPreviousCounter() { - return previousCounter_; - } - - // optional .textsecure.SessionStructure.Chain senderChain = 6; - public static final int SENDERCHAIN_FIELD_NUMBER = 6; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain senderChain_; - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public boolean hasSenderChain() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getSenderChain() { - return senderChain_; - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public org.whispersystems.libsignal.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 receiverChains_; - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public java.util.List getReceiverChainsList() { - return receiverChains_; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public java.util.List - getReceiverChainsOrBuilderList() { - return receiverChains_; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public int getReceiverChainsCount() { - return receiverChains_.size(); - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getReceiverChains(int index) { - return receiverChains_.get(index); - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange pendingKeyExchange_; - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public boolean hasPendingKeyExchange() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange getPendingKeyExchange() { - return pendingKeyExchange_; - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder getPendingKeyExchangeOrBuilder() { - return pendingKeyExchange_; - } - - // optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - public static final int PENDINGPREKEY_FIELD_NUMBER = 9; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey pendingPreKey_; - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public boolean hasPendingPreKey() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey getPendingPreKey() { - return pendingPreKey_; - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder getPendingPreKeyOrBuilder() { - return pendingPreKey_; - } - - // optional uint32 remoteRegistrationId = 10; - public static final int REMOTEREGISTRATIONID_FIELD_NUMBER = 10; - private int remoteRegistrationId_; - /** - * optional uint32 remoteRegistrationId = 10; - */ - public boolean hasRemoteRegistrationId() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional uint32 remoteRegistrationId = 10; - */ - public int getRemoteRegistrationId() { - return remoteRegistrationId_; - } - - // optional uint32 localRegistrationId = 11; - public static final int LOCALREGISTRATIONID_FIELD_NUMBER = 11; - private int localRegistrationId_; - /** - * optional uint32 localRegistrationId = 11; - */ - public boolean hasLocalRegistrationId() { - return ((bitField0_ & 0x00000200) == 0x00000200); - } - /** - * optional uint32 localRegistrationId = 11; - */ - public int getLocalRegistrationId() { - return localRegistrationId_; - } - - // optional bool needsRefresh = 12; - public static final int NEEDSREFRESH_FIELD_NUMBER = 12; - private boolean needsRefresh_; - /** - * optional bool needsRefresh = 12; - */ - public boolean hasNeedsRefresh() { - return ((bitField0_ & 0x00000400) == 0x00000400); - } - /** - * optional bool needsRefresh = 12; - */ - public boolean getNeedsRefresh() { - return needsRefresh_; - } - - // optional bytes aliceBaseKey = 13; - public static final int ALICEBASEKEY_FIELD_NUMBER = 13; - private com.google.protobuf.ByteString aliceBaseKey_; - /** - * optional bytes aliceBaseKey = 13; - */ - public boolean hasAliceBaseKey() { - return ((bitField0_ & 0x00000800) == 0x00000800); - } - /** - * optional bytes aliceBaseKey = 13; - */ - 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.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance(); - receiverChains_ = java.util.Collections.emptyList(); - pendingKeyExchange_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance(); - pendingPreKey_ = org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.class, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.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.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance(); - } else { - pendingKeyExchangeBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - if (pendingPreKeyBuilder_ == null) { - pendingPreKey_ = org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SessionStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SessionStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure build() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SessionStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SessionStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SessionStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 sessionVersion = 1; - */ - public boolean hasSessionVersion() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 sessionVersion = 1; - */ - public int getSessionVersion() { - return sessionVersion_; - } - /** - * optional uint32 sessionVersion = 1; - */ - public Builder setSessionVersion(int value) { - bitField0_ |= 0x00000001; - sessionVersion_ = value; - onChanged(); - return this; - } - /** - * optional uint32 sessionVersion = 1; - */ - 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; - /** - * optional bytes localIdentityPublic = 2; - */ - public boolean hasLocalIdentityPublic() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes localIdentityPublic = 2; - */ - public com.google.protobuf.ByteString getLocalIdentityPublic() { - return localIdentityPublic_; - } - /** - * optional bytes localIdentityPublic = 2; - */ - public Builder setLocalIdentityPublic(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - localIdentityPublic_ = value; - onChanged(); - return this; - } - /** - * optional bytes localIdentityPublic = 2; - */ - 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; - /** - * optional bytes remoteIdentityPublic = 3; - */ - public boolean hasRemoteIdentityPublic() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes remoteIdentityPublic = 3; - */ - public com.google.protobuf.ByteString getRemoteIdentityPublic() { - return remoteIdentityPublic_; - } - /** - * optional bytes remoteIdentityPublic = 3; - */ - public Builder setRemoteIdentityPublic(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - remoteIdentityPublic_ = value; - onChanged(); - return this; - } - /** - * optional bytes remoteIdentityPublic = 3; - */ - 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; - /** - * optional bytes rootKey = 4; - */ - public boolean hasRootKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes rootKey = 4; - */ - public com.google.protobuf.ByteString getRootKey() { - return rootKey_; - } - /** - * optional bytes rootKey = 4; - */ - public Builder setRootKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - rootKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes rootKey = 4; - */ - public Builder clearRootKey() { - bitField0_ = (bitField0_ & ~0x00000008); - rootKey_ = getDefaultInstance().getRootKey(); - onChanged(); - return this; - } - - // optional uint32 previousCounter = 5; - private int previousCounter_ ; - /** - * optional uint32 previousCounter = 5; - */ - public boolean hasPreviousCounter() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint32 previousCounter = 5; - */ - public int getPreviousCounter() { - return previousCounter_; - } - /** - * optional uint32 previousCounter = 5; - */ - public Builder setPreviousCounter(int value) { - bitField0_ |= 0x00000010; - previousCounter_ = value; - onChanged(); - return this; - } - /** - * optional uint32 previousCounter = 5; - */ - public Builder clearPreviousCounter() { - bitField0_ = (bitField0_ & ~0x00000010); - previousCounter_ = 0; - onChanged(); - return this; - } - - // optional .textsecure.SessionStructure.Chain senderChain = 6; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain senderChain_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder> senderChainBuilder_; - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public boolean hasSenderChain() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getSenderChain() { - if (senderChainBuilder_ == null) { - return senderChain_; - } else { - return senderChainBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public Builder setSenderChain(org.whispersystems.libsignal.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; - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public Builder setSenderChain( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) { - if (senderChainBuilder_ == null) { - senderChain_ = builderForValue.build(); - onChanged(); - } else { - senderChainBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public Builder mergeSenderChain(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain value) { - if (senderChainBuilder_ == null) { - if (((bitField0_ & 0x00000020) == 0x00000020) && - senderChain_ != org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance()) { - senderChain_ = - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.newBuilder(senderChain_).mergeFrom(value).buildPartial(); - } else { - senderChain_ = value; - } - onChanged(); - } else { - senderChainBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public Builder clearSenderChain() { - if (senderChainBuilder_ == null) { - senderChain_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance(); - onChanged(); - } else { - senderChainBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000020); - return this; - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder getSenderChainBuilder() { - bitField0_ |= 0x00000020; - onChanged(); - return getSenderChainFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder getSenderChainOrBuilder() { - if (senderChainBuilder_ != null) { - return senderChainBuilder_.getMessageOrBuilder(); - } else { - return senderChain_; - } - } - /** - * optional .textsecure.SessionStructure.Chain senderChain = 6; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder> - getSenderChainFieldBuilder() { - if (senderChainBuilder_ == null) { - senderChainBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder>( - senderChain_, - getParentForChildren(), - isClean()); - senderChain_ = null; - } - return senderChainBuilder_; - } - - // repeated .textsecure.SessionStructure.Chain receiverChains = 7; - private java.util.List receiverChains_ = - java.util.Collections.emptyList(); - private void ensureReceiverChainsIsMutable() { - if (!((bitField0_ & 0x00000040) == 0x00000040)) { - receiverChains_ = new java.util.ArrayList(receiverChains_); - bitField0_ |= 0x00000040; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder> receiverChainsBuilder_; - - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public java.util.List getReceiverChainsList() { - if (receiverChainsBuilder_ == null) { - return java.util.Collections.unmodifiableList(receiverChains_); - } else { - return receiverChainsBuilder_.getMessageList(); - } - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public int getReceiverChainsCount() { - if (receiverChainsBuilder_ == null) { - return receiverChains_.size(); - } else { - return receiverChainsBuilder_.getCount(); - } - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain getReceiverChains(int index) { - if (receiverChainsBuilder_ == null) { - return receiverChains_.get(index); - } else { - return receiverChainsBuilder_.getMessage(index); - } - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder setReceiverChains( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder setReceiverChains( - int index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) { - if (receiverChainsBuilder_ == null) { - ensureReceiverChainsIsMutable(); - receiverChains_.set(index, builderForValue.build()); - onChanged(); - } else { - receiverChainsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder addReceiverChains(org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder addReceiverChains( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder addReceiverChains( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) { - if (receiverChainsBuilder_ == null) { - ensureReceiverChainsIsMutable(); - receiverChains_.add(builderForValue.build()); - onChanged(); - } else { - receiverChainsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder addReceiverChains( - int index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder builderForValue) { - if (receiverChainsBuilder_ == null) { - ensureReceiverChainsIsMutable(); - receiverChains_.add(index, builderForValue.build()); - onChanged(); - } else { - receiverChainsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder addAllReceiverChains( - java.lang.Iterable values) { - if (receiverChainsBuilder_ == null) { - ensureReceiverChainsIsMutable(); - super.addAll(values, receiverChains_); - onChanged(); - } else { - receiverChainsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder clearReceiverChains() { - if (receiverChainsBuilder_ == null) { - receiverChains_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - } else { - receiverChainsBuilder_.clear(); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public Builder removeReceiverChains(int index) { - if (receiverChainsBuilder_ == null) { - ensureReceiverChainsIsMutable(); - receiverChains_.remove(index); - onChanged(); - } else { - receiverChainsBuilder_.remove(index); - } - return this; - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder getReceiverChainsBuilder( - int index) { - return getReceiverChainsFieldBuilder().getBuilder(index); - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder getReceiverChainsOrBuilder( - int index) { - if (receiverChainsBuilder_ == null) { - return receiverChains_.get(index); } else { - return receiverChainsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public java.util.List - getReceiverChainsOrBuilderList() { - if (receiverChainsBuilder_ != null) { - return receiverChainsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(receiverChains_); - } - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder addReceiverChainsBuilder() { - return getReceiverChainsFieldBuilder().addBuilder( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance()); - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder addReceiverChainsBuilder( - int index) { - return getReceiverChainsFieldBuilder().addBuilder( - index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.getDefaultInstance()); - } - /** - * repeated .textsecure.SessionStructure.Chain receiverChains = 7; - */ - public java.util.List - getReceiverChainsBuilderList() { - return getReceiverChainsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder> - getReceiverChainsFieldBuilder() { - if (receiverChainsBuilder_ == null) { - receiverChainsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Chain.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.ChainOrBuilder>( - receiverChains_, - ((bitField0_ & 0x00000040) == 0x00000040), - getParentForChildren(), - isClean()); - receiverChains_ = null; - } - return receiverChainsBuilder_; - } - - // optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange pendingKeyExchange_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder> pendingKeyExchangeBuilder_; - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public boolean hasPendingKeyExchange() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange getPendingKeyExchange() { - if (pendingKeyExchangeBuilder_ == null) { - return pendingKeyExchange_; - } else { - return pendingKeyExchangeBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public Builder setPendingKeyExchange(org.whispersystems.libsignal.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; - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public Builder setPendingKeyExchange( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder builderForValue) { - if (pendingKeyExchangeBuilder_ == null) { - pendingKeyExchange_ = builderForValue.build(); - onChanged(); - } else { - pendingKeyExchangeBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public Builder mergePendingKeyExchange(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange value) { - if (pendingKeyExchangeBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080) && - pendingKeyExchange_ != org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance()) { - pendingKeyExchange_ = - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.newBuilder(pendingKeyExchange_).mergeFrom(value).buildPartial(); - } else { - pendingKeyExchange_ = value; - } - onChanged(); - } else { - pendingKeyExchangeBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public Builder clearPendingKeyExchange() { - if (pendingKeyExchangeBuilder_ == null) { - pendingKeyExchange_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.getDefaultInstance(); - onChanged(); - } else { - pendingKeyExchangeBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - return this; - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder getPendingKeyExchangeBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getPendingKeyExchangeFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder getPendingKeyExchangeOrBuilder() { - if (pendingKeyExchangeBuilder_ != null) { - return pendingKeyExchangeBuilder_.getMessageOrBuilder(); - } else { - return pendingKeyExchange_; - } - } - /** - * optional .textsecure.SessionStructure.PendingKeyExchange pendingKeyExchange = 8; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder> - getPendingKeyExchangeFieldBuilder() { - if (pendingKeyExchangeBuilder_ == null) { - pendingKeyExchangeBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchange.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingKeyExchangeOrBuilder>( - pendingKeyExchange_, - getParentForChildren(), - isClean()); - pendingKeyExchange_ = null; - } - return pendingKeyExchangeBuilder_; - } - - // optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey pendingPreKey_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder> pendingPreKeyBuilder_; - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public boolean hasPendingPreKey() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey getPendingPreKey() { - if (pendingPreKeyBuilder_ == null) { - return pendingPreKey_; - } else { - return pendingPreKeyBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public Builder setPendingPreKey(org.whispersystems.libsignal.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; - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public Builder setPendingPreKey( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder builderForValue) { - if (pendingPreKeyBuilder_ == null) { - pendingPreKey_ = builderForValue.build(); - onChanged(); - } else { - pendingPreKeyBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000100; - return this; - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public Builder mergePendingPreKey(org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey value) { - if (pendingPreKeyBuilder_ == null) { - if (((bitField0_ & 0x00000100) == 0x00000100) && - pendingPreKey_ != org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance()) { - pendingPreKey_ = - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.newBuilder(pendingPreKey_).mergeFrom(value).buildPartial(); - } else { - pendingPreKey_ = value; - } - onChanged(); - } else { - pendingPreKeyBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000100; - return this; - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public Builder clearPendingPreKey() { - if (pendingPreKeyBuilder_ == null) { - pendingPreKey_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.getDefaultInstance(); - onChanged(); - } else { - pendingPreKeyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000100); - return this; - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder getPendingPreKeyBuilder() { - bitField0_ |= 0x00000100; - onChanged(); - return getPendingPreKeyFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder getPendingPreKeyOrBuilder() { - if (pendingPreKeyBuilder_ != null) { - return pendingPreKeyBuilder_.getMessageOrBuilder(); - } else { - return pendingPreKey_; - } - } - /** - * optional .textsecure.SessionStructure.PendingPreKey pendingPreKey = 9; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder> - getPendingPreKeyFieldBuilder() { - if (pendingPreKeyBuilder_ == null) { - pendingPreKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.PendingPreKeyOrBuilder>( - pendingPreKey_, - getParentForChildren(), - isClean()); - pendingPreKey_ = null; - } - return pendingPreKeyBuilder_; - } - - // optional uint32 remoteRegistrationId = 10; - private int remoteRegistrationId_ ; - /** - * optional uint32 remoteRegistrationId = 10; - */ - public boolean hasRemoteRegistrationId() { - return ((bitField0_ & 0x00000200) == 0x00000200); - } - /** - * optional uint32 remoteRegistrationId = 10; - */ - public int getRemoteRegistrationId() { - return remoteRegistrationId_; - } - /** - * optional uint32 remoteRegistrationId = 10; - */ - public Builder setRemoteRegistrationId(int value) { - bitField0_ |= 0x00000200; - remoteRegistrationId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 remoteRegistrationId = 10; - */ - public Builder clearRemoteRegistrationId() { - bitField0_ = (bitField0_ & ~0x00000200); - remoteRegistrationId_ = 0; - onChanged(); - return this; - } - - // optional uint32 localRegistrationId = 11; - private int localRegistrationId_ ; - /** - * optional uint32 localRegistrationId = 11; - */ - public boolean hasLocalRegistrationId() { - return ((bitField0_ & 0x00000400) == 0x00000400); - } - /** - * optional uint32 localRegistrationId = 11; - */ - public int getLocalRegistrationId() { - return localRegistrationId_; - } - /** - * optional uint32 localRegistrationId = 11; - */ - public Builder setLocalRegistrationId(int value) { - bitField0_ |= 0x00000400; - localRegistrationId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 localRegistrationId = 11; - */ - public Builder clearLocalRegistrationId() { - bitField0_ = (bitField0_ & ~0x00000400); - localRegistrationId_ = 0; - onChanged(); - return this; - } - - // optional bool needsRefresh = 12; - private boolean needsRefresh_ ; - /** - * optional bool needsRefresh = 12; - */ - public boolean hasNeedsRefresh() { - return ((bitField0_ & 0x00000800) == 0x00000800); - } - /** - * optional bool needsRefresh = 12; - */ - public boolean getNeedsRefresh() { - return needsRefresh_; - } - /** - * optional bool needsRefresh = 12; - */ - public Builder setNeedsRefresh(boolean value) { - bitField0_ |= 0x00000800; - needsRefresh_ = value; - onChanged(); - return this; - } - /** - * optional bool needsRefresh = 12; - */ - 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; - /** - * optional bytes aliceBaseKey = 13; - */ - public boolean hasAliceBaseKey() { - return ((bitField0_ & 0x00001000) == 0x00001000); - } - /** - * optional bytes aliceBaseKey = 13; - */ - public com.google.protobuf.ByteString getAliceBaseKey() { - return aliceBaseKey_; - } - /** - * optional bytes aliceBaseKey = 13; - */ - public Builder setAliceBaseKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00001000; - aliceBaseKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes aliceBaseKey = 13; - */ - 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; - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - boolean hasCurrentSession(); - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure getCurrentSession(); - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder getCurrentSessionOrBuilder(); - - // repeated .textsecure.SessionStructure previousSessions = 2; - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - java.util.List - getPreviousSessionsList(); - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - org.whispersystems.libsignal.state.StorageProtos.SessionStructure getPreviousSessions(int index); - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - int getPreviousSessionsCount(); - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - java.util.List - getPreviousSessionsOrBuilderList(); - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = currentSession_.toBuilder(); - } - currentSession_ = input.readMessage(org.whispersystems.libsignal.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(); - mutable_bitField0_ |= 0x00000002; - } - previousSessions_.add(input.readMessage(org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_RecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_RecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.RecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.RecordStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional .textsecure.SessionStructure currentSession = 1; - public static final int CURRENTSESSION_FIELD_NUMBER = 1; - private org.whispersystems.libsignal.state.StorageProtos.SessionStructure currentSession_; - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public boolean hasCurrentSession() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure getCurrentSession() { - return currentSession_; - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder getCurrentSessionOrBuilder() { - return currentSession_; - } - - // repeated .textsecure.SessionStructure previousSessions = 2; - public static final int PREVIOUSSESSIONS_FIELD_NUMBER = 2; - private java.util.List previousSessions_; - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public java.util.List getPreviousSessionsList() { - return previousSessions_; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public java.util.List - getPreviousSessionsOrBuilderList() { - return previousSessions_; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public int getPreviousSessionsCount() { - return previousSessions_.size(); - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure getPreviousSessions(int index) { - return previousSessions_.get(index); - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder getPreviousSessionsOrBuilder( - int index) { - return previousSessions_.get(index); - } - - private void initFields() { - currentSession_ = org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.RecordStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_RecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_RecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.RecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.RecordStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_RecordStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.RecordStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.RecordStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.RecordStructure build() { - org.whispersystems.libsignal.state.StorageProtos.RecordStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.RecordStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.RecordStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.RecordStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.RecordStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.RecordStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SessionStructure currentSession_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder> currentSessionBuilder_; - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public boolean hasCurrentSession() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure getCurrentSession() { - if (currentSessionBuilder_ == null) { - return currentSession_; - } else { - return currentSessionBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public Builder setCurrentSession(org.whispersystems.libsignal.state.StorageProtos.SessionStructure value) { - if (currentSessionBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - currentSession_ = value; - onChanged(); - } else { - currentSessionBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public Builder setCurrentSession( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder builderForValue) { - if (currentSessionBuilder_ == null) { - currentSession_ = builderForValue.build(); - onChanged(); - } else { - currentSessionBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public Builder mergeCurrentSession(org.whispersystems.libsignal.state.StorageProtos.SessionStructure value) { - if (currentSessionBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - currentSession_ != org.whispersystems.libsignal.state.StorageProtos.SessionStructure.getDefaultInstance()) { - currentSession_ = - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.newBuilder(currentSession_).mergeFrom(value).buildPartial(); - } else { - currentSession_ = value; - } - onChanged(); - } else { - currentSessionBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public Builder clearCurrentSession() { - if (currentSessionBuilder_ == null) { - currentSession_ = org.whispersystems.libsignal.state.StorageProtos.SessionStructure.getDefaultInstance(); - onChanged(); - } else { - currentSessionBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder getCurrentSessionBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getCurrentSessionFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder getCurrentSessionOrBuilder() { - if (currentSessionBuilder_ != null) { - return currentSessionBuilder_.getMessageOrBuilder(); - } else { - return currentSession_; - } - } - /** - * optional .textsecure.SessionStructure currentSession = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder> - getCurrentSessionFieldBuilder() { - if (currentSessionBuilder_ == null) { - currentSessionBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder>( - currentSession_, - getParentForChildren(), - isClean()); - currentSession_ = null; - } - return currentSessionBuilder_; - } - - // repeated .textsecure.SessionStructure previousSessions = 2; - private java.util.List previousSessions_ = - java.util.Collections.emptyList(); - private void ensurePreviousSessionsIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - previousSessions_ = new java.util.ArrayList(previousSessions_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder> previousSessionsBuilder_; - - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public java.util.List getPreviousSessionsList() { - if (previousSessionsBuilder_ == null) { - return java.util.Collections.unmodifiableList(previousSessions_); - } else { - return previousSessionsBuilder_.getMessageList(); - } - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public int getPreviousSessionsCount() { - if (previousSessionsBuilder_ == null) { - return previousSessions_.size(); - } else { - return previousSessionsBuilder_.getCount(); - } - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure getPreviousSessions(int index) { - if (previousSessionsBuilder_ == null) { - return previousSessions_.get(index); - } else { - return previousSessionsBuilder_.getMessage(index); - } - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder setPreviousSessions( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder setPreviousSessions( - int index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder builderForValue) { - if (previousSessionsBuilder_ == null) { - ensurePreviousSessionsIsMutable(); - previousSessions_.set(index, builderForValue.build()); - onChanged(); - } else { - previousSessionsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder addPreviousSessions(org.whispersystems.libsignal.state.StorageProtos.SessionStructure value) { - if (previousSessionsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePreviousSessionsIsMutable(); - previousSessions_.add(value); - onChanged(); - } else { - previousSessionsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder addPreviousSessions( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder addPreviousSessions( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder builderForValue) { - if (previousSessionsBuilder_ == null) { - ensurePreviousSessionsIsMutable(); - previousSessions_.add(builderForValue.build()); - onChanged(); - } else { - previousSessionsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder addPreviousSessions( - int index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder builderForValue) { - if (previousSessionsBuilder_ == null) { - ensurePreviousSessionsIsMutable(); - previousSessions_.add(index, builderForValue.build()); - onChanged(); - } else { - previousSessionsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder addAllPreviousSessions( - java.lang.Iterable values) { - if (previousSessionsBuilder_ == null) { - ensurePreviousSessionsIsMutable(); - super.addAll(values, previousSessions_); - onChanged(); - } else { - previousSessionsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder clearPreviousSessions() { - if (previousSessionsBuilder_ == null) { - previousSessions_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - previousSessionsBuilder_.clear(); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public Builder removePreviousSessions(int index) { - if (previousSessionsBuilder_ == null) { - ensurePreviousSessionsIsMutable(); - previousSessions_.remove(index); - onChanged(); - } else { - previousSessionsBuilder_.remove(index); - } - return this; - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder getPreviousSessionsBuilder( - int index) { - return getPreviousSessionsFieldBuilder().getBuilder(index); - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder getPreviousSessionsOrBuilder( - int index) { - if (previousSessionsBuilder_ == null) { - return previousSessions_.get(index); } else { - return previousSessionsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public java.util.List - getPreviousSessionsOrBuilderList() { - if (previousSessionsBuilder_ != null) { - return previousSessionsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(previousSessions_); - } - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder addPreviousSessionsBuilder() { - return getPreviousSessionsFieldBuilder().addBuilder( - org.whispersystems.libsignal.state.StorageProtos.SessionStructure.getDefaultInstance()); - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder addPreviousSessionsBuilder( - int index) { - return getPreviousSessionsFieldBuilder().addBuilder( - index, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.getDefaultInstance()); - } - /** - * repeated .textsecure.SessionStructure previousSessions = 2; - */ - public java.util.List - getPreviousSessionsBuilderList() { - return getPreviousSessionsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SessionStructureOrBuilder> - getPreviousSessionsFieldBuilder() { - if (previousSessionsBuilder_ == null) { - previousSessionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SessionStructure, org.whispersystems.libsignal.state.StorageProtos.SessionStructure.Builder, org.whispersystems.libsignal.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; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional bytes publicKey = 2; - /** - * optional bytes publicKey = 2; - */ - boolean hasPublicKey(); - /** - * optional bytes publicKey = 2; - */ - com.google.protobuf.ByteString getPublicKey(); - - // optional bytes privateKey = 3; - /** - * optional bytes privateKey = 3; - */ - boolean hasPrivateKey(); - /** - * optional bytes privateKey = 3; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional bytes publicKey = 2; - public static final int PUBLICKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString publicKey_; - /** - * optional bytes publicKey = 2; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes publicKey = 2; - */ - 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_; - /** - * optional bytes privateKey = 3; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes privateKey = 3; - */ - 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.libsignal.state.StorageProtos.PreKeyRecordStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.PreKeyRecordStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.PreKeyRecordStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.PreKeyRecordStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.PreKeyRecordStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_PreKeyRecordStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure build() { - org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.PreKeyRecordStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.PreKeyRecordStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.PreKeyRecordStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - 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; - /** - * optional bytes publicKey = 2; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes publicKey = 2; - */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - /** - * optional bytes publicKey = 2; - */ - public Builder setPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - publicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes publicKey = 2; - */ - 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; - /** - * optional bytes privateKey = 3; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes privateKey = 3; - */ - public com.google.protobuf.ByteString getPrivateKey() { - return privateKey_; - } - /** - * optional bytes privateKey = 3; - */ - public Builder setPrivateKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - privateKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes privateKey = 3; - */ - 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; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional bytes publicKey = 2; - /** - * optional bytes publicKey = 2; - */ - boolean hasPublicKey(); - /** - * optional bytes publicKey = 2; - */ - com.google.protobuf.ByteString getPublicKey(); - - // optional bytes privateKey = 3; - /** - * optional bytes privateKey = 3; - */ - boolean hasPrivateKey(); - /** - * optional bytes privateKey = 3; - */ - com.google.protobuf.ByteString getPrivateKey(); - - // optional bytes signature = 4; - /** - * optional bytes signature = 4; - */ - boolean hasSignature(); - /** - * optional bytes signature = 4; - */ - com.google.protobuf.ByteString getSignature(); - - // optional fixed64 timestamp = 5; - /** - * optional fixed64 timestamp = 5; - */ - boolean hasTimestamp(); - /** - * optional fixed64 timestamp = 5; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional bytes publicKey = 2; - public static final int PUBLICKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString publicKey_; - /** - * optional bytes publicKey = 2; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes publicKey = 2; - */ - 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_; - /** - * optional bytes privateKey = 3; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes privateKey = 3; - */ - 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_; - /** - * optional bytes signature = 4; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes signature = 4; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - - // optional fixed64 timestamp = 5; - public static final int TIMESTAMP_FIELD_NUMBER = 5; - private long timestamp_; - /** - * optional fixed64 timestamp = 5; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional fixed64 timestamp = 5; - */ - 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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SignedPreKeyRecordStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure build() { - org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SignedPreKeyRecordStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SignedPreKeyRecordStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - 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; - /** - * optional bytes publicKey = 2; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes publicKey = 2; - */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - /** - * optional bytes publicKey = 2; - */ - public Builder setPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - publicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes publicKey = 2; - */ - 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; - /** - * optional bytes privateKey = 3; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes privateKey = 3; - */ - public com.google.protobuf.ByteString getPrivateKey() { - return privateKey_; - } - /** - * optional bytes privateKey = 3; - */ - public Builder setPrivateKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - privateKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes privateKey = 3; - */ - 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; - /** - * optional bytes signature = 4; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes signature = 4; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - /** - * optional bytes signature = 4; - */ - public Builder setSignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - signature_ = value; - onChanged(); - return this; - } - /** - * optional bytes signature = 4; - */ - public Builder clearSignature() { - bitField0_ = (bitField0_ & ~0x00000008); - signature_ = getDefaultInstance().getSignature(); - onChanged(); - return this; - } - - // optional fixed64 timestamp = 5; - private long timestamp_ ; - /** - * optional fixed64 timestamp = 5; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional fixed64 timestamp = 5; - */ - public long getTimestamp() { - return timestamp_; - } - /** - * optional fixed64 timestamp = 5; - */ - public Builder setTimestamp(long value) { - bitField0_ |= 0x00000010; - timestamp_ = value; - onChanged(); - return this; - } - /** - * optional fixed64 timestamp = 5; - */ - 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; - /** - * optional bytes publicKey = 1; - */ - boolean hasPublicKey(); - /** - * optional bytes publicKey = 1; - */ - com.google.protobuf.ByteString getPublicKey(); - - // optional bytes privateKey = 2; - /** - * optional bytes privateKey = 2; - */ - boolean hasPrivateKey(); - /** - * optional bytes privateKey = 2; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure.class, org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes publicKey = 1; - public static final int PUBLICKEY_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString publicKey_; - /** - * optional bytes publicKey = 1; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes publicKey = 1; - */ - 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_; - /** - * optional bytes privateKey = 2; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes privateKey = 2; - */ - 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.libsignal.state.StorageProtos.IdentityKeyPairStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.IdentityKeyPairStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.IdentityKeyPairStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.IdentityKeyPairStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.IdentityKeyPairStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure.class, org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_IdentityKeyPairStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure build() { - org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.IdentityKeyPairStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.IdentityKeyPairStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.IdentityKeyPairStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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; - /** - * optional bytes publicKey = 1; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes publicKey = 1; - */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - /** - * optional bytes publicKey = 1; - */ - public Builder setPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - publicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes publicKey = 1; - */ - 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; - /** - * optional bytes privateKey = 2; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes privateKey = 2; - */ - public com.google.protobuf.ByteString getPrivateKey() { - return privateKey_; - } - /** - * optional bytes privateKey = 2; - */ - public Builder setPrivateKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - privateKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes privateKey = 2; - */ - 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; - /** - * optional uint32 senderKeyId = 1; - */ - boolean hasSenderKeyId(); - /** - * optional uint32 senderKeyId = 1; - */ - int getSenderKeyId(); - - // optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - boolean hasSenderChainKey(); - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getSenderChainKey(); - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder getSenderChainKeyOrBuilder(); - - // optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - boolean hasSenderSigningKey(); - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getSenderSigningKey(); - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder getSenderSigningKeyOrBuilder(); - - // repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - java.util.List - getSenderMessageKeysList(); - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getSenderMessageKeys(int index); - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - int getSenderMessageKeysCount(); - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - java.util.List - getSenderMessageKeysOrBuilderList(); - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = senderChainKey_.toBuilder(); - } - senderChainKey_ = input.readMessage(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(senderChainKey_); - senderChainKey_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = senderSigningKey_.toBuilder(); - } - senderSigningKey_ = input.readMessage(org.whispersystems.libsignal.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(); - mutable_bitField0_ |= 0x00000008; - } - senderMessageKeys_.add(input.readMessage(org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - public interface SenderChainKeyOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 iteration = 1; - /** - * optional uint32 iteration = 1; - */ - boolean hasIteration(); - /** - * optional uint32 iteration = 1; - */ - int getIteration(); - - // optional bytes seed = 2; - /** - * optional bytes seed = 2; - */ - boolean hasSeed(); - /** - * optional bytes seed = 2; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 iteration = 1; - public static final int ITERATION_FIELD_NUMBER = 1; - private int iteration_; - /** - * optional uint32 iteration = 1; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 iteration = 1; - */ - public int getIteration() { - return iteration_; - } - - // optional bytes seed = 2; - public static final int SEED_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString seed_; - /** - * optional bytes seed = 2; - */ - public boolean hasSeed() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes seed = 2; - */ - 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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderChainKey_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey build() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 iteration = 1; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 iteration = 1; - */ - public int getIteration() { - return iteration_; - } - /** - * optional uint32 iteration = 1; - */ - public Builder setIteration(int value) { - bitField0_ |= 0x00000001; - iteration_ = value; - onChanged(); - return this; - } - /** - * optional uint32 iteration = 1; - */ - 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; - /** - * optional bytes seed = 2; - */ - public boolean hasSeed() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes seed = 2; - */ - public com.google.protobuf.ByteString getSeed() { - return seed_; - } - /** - * optional bytes seed = 2; - */ - public Builder setSeed(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - seed_ = value; - onChanged(); - return this; - } - /** - * optional bytes seed = 2; - */ - 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; - /** - * optional uint32 iteration = 1; - */ - boolean hasIteration(); - /** - * optional uint32 iteration = 1; - */ - int getIteration(); - - // optional bytes seed = 2; - /** - * optional bytes seed = 2; - */ - boolean hasSeed(); - /** - * optional bytes seed = 2; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 iteration = 1; - public static final int ITERATION_FIELD_NUMBER = 1; - private int iteration_; - /** - * optional uint32 iteration = 1; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 iteration = 1; - */ - public int getIteration() { - return iteration_; - } - - // optional bytes seed = 2; - public static final int SEED_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString seed_; - /** - * optional bytes seed = 2; - */ - public boolean hasSeed() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes seed = 2; - */ - 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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderMessageKey_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey build() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 iteration = 1; - */ - public boolean hasIteration() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 iteration = 1; - */ - public int getIteration() { - return iteration_; - } - /** - * optional uint32 iteration = 1; - */ - public Builder setIteration(int value) { - bitField0_ |= 0x00000001; - iteration_ = value; - onChanged(); - return this; - } - /** - * optional uint32 iteration = 1; - */ - 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; - /** - * optional bytes seed = 2; - */ - public boolean hasSeed() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes seed = 2; - */ - public com.google.protobuf.ByteString getSeed() { - return seed_; - } - /** - * optional bytes seed = 2; - */ - public Builder setSeed(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - seed_ = value; - onChanged(); - return this; - } - /** - * optional bytes seed = 2; - */ - 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; - /** - * optional bytes public = 1; - */ - boolean hasPublic(); - /** - * optional bytes public = 1; - */ - com.google.protobuf.ByteString getPublic(); - - // optional bytes private = 2; - /** - * optional bytes private = 2; - */ - boolean hasPrivate(); - /** - * optional bytes private = 2; - */ - 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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes public = 1; - public static final int PUBLIC_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString public_; - /** - * optional bytes public = 1; - */ - public boolean hasPublic() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes public = 1; - */ - 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_; - /** - * optional bytes private = 2; - */ - public boolean hasPrivate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes private = 2; - */ - 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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_SenderSigningKey_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey build() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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; - /** - * optional bytes public = 1; - */ - public boolean hasPublic() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes public = 1; - */ - public com.google.protobuf.ByteString getPublic() { - return public_; - } - /** - * optional bytes public = 1; - */ - public Builder setPublic(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - public_ = value; - onChanged(); - return this; - } - /** - * optional bytes public = 1; - */ - 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; - /** - * optional bytes private = 2; - */ - public boolean hasPrivate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes private = 2; - */ - public com.google.protobuf.ByteString getPrivate() { - return private_; - } - /** - * optional bytes private = 2; - */ - public Builder setPrivate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - private_ = value; - onChanged(); - return this; - } - /** - * optional bytes private = 2; - */ - 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_; - /** - * optional uint32 senderKeyId = 1; - */ - public boolean hasSenderKeyId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 senderKeyId = 1; - */ - public int getSenderKeyId() { - return senderKeyId_; - } - - // optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - public static final int SENDERCHAINKEY_FIELD_NUMBER = 2; - private org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey senderChainKey_; - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public boolean hasSenderChainKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getSenderChainKey() { - return senderChainKey_; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder getSenderChainKeyOrBuilder() { - return senderChainKey_; - } - - // optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - public static final int SENDERSIGNINGKEY_FIELD_NUMBER = 3; - private org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey senderSigningKey_; - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public boolean hasSenderSigningKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getSenderSigningKey() { - return senderSigningKey_; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public org.whispersystems.libsignal.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 senderMessageKeys_; - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public java.util.List getSenderMessageKeysList() { - return senderMessageKeys_; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public java.util.List - getSenderMessageKeysOrBuilderList() { - return senderMessageKeys_; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public int getSenderMessageKeysCount() { - return senderMessageKeys_.size(); - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getSenderMessageKeys(int index) { - return senderMessageKeys_.get(index); - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder getSenderMessageKeysOrBuilder( - int index) { - return senderMessageKeys_.get(index); - } - - private void initFields() { - senderKeyId_ = 0; - senderChainKey_ = org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance(); - senderSigningKey_ = org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance(); - } else { - senderChainKeyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - if (senderSigningKeyBuilder_ == null) { - senderSigningKey_ = org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyStateStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure build() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyStateStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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_ ; - /** - * optional uint32 senderKeyId = 1; - */ - public boolean hasSenderKeyId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 senderKeyId = 1; - */ - public int getSenderKeyId() { - return senderKeyId_; - } - /** - * optional uint32 senderKeyId = 1; - */ - public Builder setSenderKeyId(int value) { - bitField0_ |= 0x00000001; - senderKeyId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 senderKeyId = 1; - */ - public Builder clearSenderKeyId() { - bitField0_ = (bitField0_ & ~0x00000001); - senderKeyId_ = 0; - onChanged(); - return this; - } - - // optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - private org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey senderChainKey_ = org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder> senderChainKeyBuilder_; - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public boolean hasSenderChainKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey getSenderChainKey() { - if (senderChainKeyBuilder_ == null) { - return senderChainKey_; - } else { - return senderChainKeyBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public Builder setSenderChainKey(org.whispersystems.libsignal.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; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public Builder setSenderChainKey( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder builderForValue) { - if (senderChainKeyBuilder_ == null) { - senderChainKey_ = builderForValue.build(); - onChanged(); - } else { - senderChainKeyBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public Builder mergeSenderChainKey(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey value) { - if (senderChainKeyBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - senderChainKey_ != org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance()) { - senderChainKey_ = - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.newBuilder(senderChainKey_).mergeFrom(value).buildPartial(); - } else { - senderChainKey_ = value; - } - onChanged(); - } else { - senderChainKeyBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public Builder clearSenderChainKey() { - if (senderChainKeyBuilder_ == null) { - senderChainKey_ = org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.getDefaultInstance(); - onChanged(); - } else { - senderChainKeyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder getSenderChainKeyBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getSenderChainKeyFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder getSenderChainKeyOrBuilder() { - if (senderChainKeyBuilder_ != null) { - return senderChainKeyBuilder_.getMessageOrBuilder(); - } else { - return senderChainKey_; - } - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderChainKey senderChainKey = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder> - getSenderChainKeyFieldBuilder() { - if (senderChainKeyBuilder_ == null) { - senderChainKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderChainKeyOrBuilder>( - senderChainKey_, - getParentForChildren(), - isClean()); - senderChainKey_ = null; - } - return senderChainKeyBuilder_; - } - - // optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - private org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey senderSigningKey_ = org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder> senderSigningKeyBuilder_; - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public boolean hasSenderSigningKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey getSenderSigningKey() { - if (senderSigningKeyBuilder_ == null) { - return senderSigningKey_; - } else { - return senderSigningKeyBuilder_.getMessage(); - } - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public Builder setSenderSigningKey(org.whispersystems.libsignal.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; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public Builder setSenderSigningKey( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder builderForValue) { - if (senderSigningKeyBuilder_ == null) { - senderSigningKey_ = builderForValue.build(); - onChanged(); - } else { - senderSigningKeyBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public Builder mergeSenderSigningKey(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey value) { - if (senderSigningKeyBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - senderSigningKey_ != org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance()) { - senderSigningKey_ = - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.newBuilder(senderSigningKey_).mergeFrom(value).buildPartial(); - } else { - senderSigningKey_ = value; - } - onChanged(); - } else { - senderSigningKeyBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public Builder clearSenderSigningKey() { - if (senderSigningKeyBuilder_ == null) { - senderSigningKey_ = org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.getDefaultInstance(); - onChanged(); - } else { - senderSigningKeyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder getSenderSigningKeyBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getSenderSigningKeyFieldBuilder().getBuilder(); - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder getSenderSigningKeyOrBuilder() { - if (senderSigningKeyBuilder_ != null) { - return senderSigningKeyBuilder_.getMessageOrBuilder(); - } else { - return senderSigningKey_; - } - } - /** - * optional .textsecure.SenderKeyStateStructure.SenderSigningKey senderSigningKey = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder> - getSenderSigningKeyFieldBuilder() { - if (senderSigningKeyBuilder_ == null) { - senderSigningKeyBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderSigningKeyOrBuilder>( - senderSigningKey_, - getParentForChildren(), - isClean()); - senderSigningKey_ = null; - } - return senderSigningKeyBuilder_; - } - - // repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - private java.util.List senderMessageKeys_ = - java.util.Collections.emptyList(); - private void ensureSenderMessageKeysIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - senderMessageKeys_ = new java.util.ArrayList(senderMessageKeys_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder> senderMessageKeysBuilder_; - - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public java.util.List getSenderMessageKeysList() { - if (senderMessageKeysBuilder_ == null) { - return java.util.Collections.unmodifiableList(senderMessageKeys_); - } else { - return senderMessageKeysBuilder_.getMessageList(); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public int getSenderMessageKeysCount() { - if (senderMessageKeysBuilder_ == null) { - return senderMessageKeys_.size(); - } else { - return senderMessageKeysBuilder_.getCount(); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey getSenderMessageKeys(int index) { - if (senderMessageKeysBuilder_ == null) { - return senderMessageKeys_.get(index); - } else { - return senderMessageKeysBuilder_.getMessage(index); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder setSenderMessageKeys( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder setSenderMessageKeys( - int index, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder builderForValue) { - if (senderMessageKeysBuilder_ == null) { - ensureSenderMessageKeysIsMutable(); - senderMessageKeys_.set(index, builderForValue.build()); - onChanged(); - } else { - senderMessageKeysBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder addSenderMessageKeys(org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder addSenderMessageKeys( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder addSenderMessageKeys( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder builderForValue) { - if (senderMessageKeysBuilder_ == null) { - ensureSenderMessageKeysIsMutable(); - senderMessageKeys_.add(builderForValue.build()); - onChanged(); - } else { - senderMessageKeysBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder addSenderMessageKeys( - int index, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder builderForValue) { - if (senderMessageKeysBuilder_ == null) { - ensureSenderMessageKeysIsMutable(); - senderMessageKeys_.add(index, builderForValue.build()); - onChanged(); - } else { - senderMessageKeysBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder addAllSenderMessageKeys( - java.lang.Iterable values) { - if (senderMessageKeysBuilder_ == null) { - ensureSenderMessageKeysIsMutable(); - super.addAll(values, senderMessageKeys_); - onChanged(); - } else { - senderMessageKeysBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder clearSenderMessageKeys() { - if (senderMessageKeysBuilder_ == null) { - senderMessageKeys_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - senderMessageKeysBuilder_.clear(); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public Builder removeSenderMessageKeys(int index) { - if (senderMessageKeysBuilder_ == null) { - ensureSenderMessageKeysIsMutable(); - senderMessageKeys_.remove(index); - onChanged(); - } else { - senderMessageKeysBuilder_.remove(index); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder getSenderMessageKeysBuilder( - int index) { - return getSenderMessageKeysFieldBuilder().getBuilder(index); - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder getSenderMessageKeysOrBuilder( - int index) { - if (senderMessageKeysBuilder_ == null) { - return senderMessageKeys_.get(index); } else { - return senderMessageKeysBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public java.util.List - getSenderMessageKeysOrBuilderList() { - if (senderMessageKeysBuilder_ != null) { - return senderMessageKeysBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(senderMessageKeys_); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder addSenderMessageKeysBuilder() { - return getSenderMessageKeysFieldBuilder().addBuilder( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance()); - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder addSenderMessageKeysBuilder( - int index) { - return getSenderMessageKeysFieldBuilder().addBuilder( - index, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.getDefaultInstance()); - } - /** - * repeated .textsecure.SenderKeyStateStructure.SenderMessageKey senderMessageKeys = 4; - */ - public java.util.List - getSenderMessageKeysBuilderList() { - return getSenderMessageKeysFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKeyOrBuilder> - getSenderMessageKeysFieldBuilder() { - if (senderMessageKeysBuilder_ == null) { - senderMessageKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.SenderMessageKey.Builder, org.whispersystems.libsignal.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; - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - java.util.List - getSenderKeyStatesList(); - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure getSenderKeyStates(int index); - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - int getSenderKeyStatesCount(); - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - java.util.List - getSenderKeyStatesOrBuilderList(); - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - org.whispersystems.libsignal.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(); - mutable_bitField0_ |= 0x00000001; - } - senderKeyStates_.add(input.readMessage(org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - 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 getParserForType() { - return PARSER; - } - - // repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - public static final int SENDERKEYSTATES_FIELD_NUMBER = 1; - private java.util.List senderKeyStates_; - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public java.util.List getSenderKeyStatesList() { - return senderKeyStates_; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public java.util.List - getSenderKeyStatesOrBuilderList() { - return senderKeyStates_; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public int getSenderKeyStatesCount() { - return senderKeyStates_.size(); - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure getSenderKeyStates(int index) { - return senderKeyStates_.get(index); - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.libsignal.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.libsignal.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 - implements org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructureOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure.class, org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure.Builder.class); - } - - // Construct using org.whispersystems.libsignal.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.libsignal.state.StorageProtos.internal_static_textsecure_SenderKeyRecordStructure_descriptor; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure getDefaultInstanceForType() { - return org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure.getDefaultInstance(); - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure build() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure buildPartial() { - org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure result = new org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure) { - return mergeFrom((org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.libsignal.state.StorageProtos.SenderKeyRecordStructure other) { - if (other == org.whispersystems.libsignal.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.libsignal.state.StorageProtos.SenderKeyRecordStructure parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.libsignal.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 senderKeyStates_ = - java.util.Collections.emptyList(); - private void ensureSenderKeyStatesIsMutable() { - if (!((bitField0_ & 0x00000001) == 0x00000001)) { - senderKeyStates_ = new java.util.ArrayList(senderKeyStates_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructureOrBuilder> senderKeyStatesBuilder_; - - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public java.util.List getSenderKeyStatesList() { - if (senderKeyStatesBuilder_ == null) { - return java.util.Collections.unmodifiableList(senderKeyStates_); - } else { - return senderKeyStatesBuilder_.getMessageList(); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public int getSenderKeyStatesCount() { - if (senderKeyStatesBuilder_ == null) { - return senderKeyStates_.size(); - } else { - return senderKeyStatesBuilder_.getCount(); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure getSenderKeyStates(int index) { - if (senderKeyStatesBuilder_ == null) { - return senderKeyStates_.get(index); - } else { - return senderKeyStatesBuilder_.getMessage(index); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder setSenderKeyStates( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder setSenderKeyStates( - int index, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder builderForValue) { - if (senderKeyStatesBuilder_ == null) { - ensureSenderKeyStatesIsMutable(); - senderKeyStates_.set(index, builderForValue.build()); - onChanged(); - } else { - senderKeyStatesBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder addSenderKeyStates(org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure value) { - if (senderKeyStatesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSenderKeyStatesIsMutable(); - senderKeyStates_.add(value); - onChanged(); - } else { - senderKeyStatesBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder addSenderKeyStates( - int index, org.whispersystems.libsignal.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; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder addSenderKeyStates( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder builderForValue) { - if (senderKeyStatesBuilder_ == null) { - ensureSenderKeyStatesIsMutable(); - senderKeyStates_.add(builderForValue.build()); - onChanged(); - } else { - senderKeyStatesBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder addSenderKeyStates( - int index, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder builderForValue) { - if (senderKeyStatesBuilder_ == null) { - ensureSenderKeyStatesIsMutable(); - senderKeyStates_.add(index, builderForValue.build()); - onChanged(); - } else { - senderKeyStatesBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder addAllSenderKeyStates( - java.lang.Iterable values) { - if (senderKeyStatesBuilder_ == null) { - ensureSenderKeyStatesIsMutable(); - super.addAll(values, senderKeyStates_); - onChanged(); - } else { - senderKeyStatesBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder clearSenderKeyStates() { - if (senderKeyStatesBuilder_ == null) { - senderKeyStates_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - senderKeyStatesBuilder_.clear(); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public Builder removeSenderKeyStates(int index) { - if (senderKeyStatesBuilder_ == null) { - ensureSenderKeyStatesIsMutable(); - senderKeyStates_.remove(index); - onChanged(); - } else { - senderKeyStatesBuilder_.remove(index); - } - return this; - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder getSenderKeyStatesBuilder( - int index) { - return getSenderKeyStatesFieldBuilder().getBuilder(index); - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructureOrBuilder getSenderKeyStatesOrBuilder( - int index) { - if (senderKeyStatesBuilder_ == null) { - return senderKeyStates_.get(index); } else { - return senderKeyStatesBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public java.util.List - getSenderKeyStatesOrBuilderList() { - if (senderKeyStatesBuilder_ != null) { - return senderKeyStatesBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(senderKeyStates_); - } - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder addSenderKeyStatesBuilder() { - return getSenderKeyStatesFieldBuilder().addBuilder( - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance()); - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder addSenderKeyStatesBuilder( - int index) { - return getSenderKeyStatesFieldBuilder().addBuilder( - index, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.getDefaultInstance()); - } - /** - * repeated .textsecure.SenderKeyStateStructure senderKeyStates = 1; - */ - public java.util.List - getSenderKeyStatesBuilderList() { - return getSenderKeyStatesFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructureOrBuilder> - getSenderKeyStatesFieldBuilder() { - if (senderKeyStatesBuilder_ == null) { - senderKeyStatesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure, org.whispersystems.libsignal.state.StorageProtos.SenderKeyStateStructure.Builder, org.whispersystems.libsignal.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.SenderKeyStateStructureB3\n\"o" + - "rg.whispersystems.libsignal.stateB\rStora" + - "geProtos" - }; - 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) -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryIdentityKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryIdentityKeyStore.java deleted file mode 100644 index 2a4837c11..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryIdentityKeyStore.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state.impl; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.state.IdentityKeyStore; - -import java.util.HashMap; -import java.util.Map; - -public class InMemoryIdentityKeyStore implements IdentityKeyStore { - - private final Map trustedKeys = new HashMap(); - - private final IdentityKeyPair identityKeyPair; - private final int localRegistrationId; - - public InMemoryIdentityKeyStore(IdentityKeyPair identityKeyPair, int localRegistrationId) { - this.identityKeyPair = identityKeyPair; - this.localRegistrationId = localRegistrationId; - } - - @Override - public IdentityKeyPair getIdentityKeyPair() { - return identityKeyPair; - } - - @Override - public int getLocalRegistrationId() { - return localRegistrationId; - } - - @Override - public boolean saveIdentity(SignalProtocolAddress address, IdentityKey identityKey) { - IdentityKey existing = trustedKeys.get(address); - - if (!identityKey.equals(existing)) { - trustedKeys.put(address, identityKey); - return true; - } else { - return false; - } - } - - @Override - public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey, Direction direction) { - IdentityKey trusted = trustedKeys.get(address); - return (trusted == null || trusted.equals(identityKey)); - } - - @Override - public IdentityKey getIdentity(SignalProtocolAddress address) { - return trustedKeys.get(address); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryPreKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryPreKeyStore.java deleted file mode 100644 index dd6c4e87a..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemoryPreKeyStore.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state.impl; - -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.PreKeyStore; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class InMemoryPreKeyStore implements PreKeyStore { - - private final Map store = new HashMap(); - - @Override - public PreKeyRecord loadPreKey(int preKeyId) throws InvalidKeyIdException { - try { - if (!store.containsKey(preKeyId)) { - throw new InvalidKeyIdException("No such prekeyrecord!"); - } - - return new PreKeyRecord(store.get(preKeyId)); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public void storePreKey(int preKeyId, PreKeyRecord record) { - store.put(preKeyId, record.serialize()); - } - - @Override - public boolean containsPreKey(int preKeyId) { - return store.containsKey(preKeyId); - } - - @Override - public void removePreKey(int preKeyId) { - store.remove(preKeyId); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySessionStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySessionStore.java deleted file mode 100644 index 806cd7f44..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySessionStore.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state.impl; - -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SessionStore; - -import java.io.IOException; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -public class InMemorySessionStore implements SessionStore { - - private Map sessions = new HashMap(); - - public InMemorySessionStore() {} - - @Override - public synchronized SessionRecord loadSession(SignalProtocolAddress remoteAddress) { - try { - if (containsSession(remoteAddress)) { - return new SessionRecord(sessions.get(remoteAddress)); - } else { - return new SessionRecord(); - } - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public synchronized List getSubDeviceSessions(String name) { - List deviceIds = new LinkedList(); - - for (SignalProtocolAddress key : sessions.keySet()) { - if (key.getName().equals(name) && - key.getDeviceId() != 1) - { - deviceIds.add(key.getDeviceId()); - } - } - - return deviceIds; - } - - @Override - public synchronized void storeSession(SignalProtocolAddress address, SessionRecord record) { - sessions.put(address, record.serialize()); - } - - @Override - public synchronized boolean containsSession(SignalProtocolAddress address) { - return sessions.containsKey(address); - } - - @Override - public synchronized void deleteSession(SignalProtocolAddress address) { - sessions.remove(address); - } - - @Override - public synchronized void deleteAllSessions(String name) { - for (SignalProtocolAddress key : sessions.keySet()) { - if (key.getName().equals(name)) { - sessions.remove(key); - } - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignalProtocolStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignalProtocolStore.java deleted file mode 100644 index 82564af62..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignalProtocolStore.java +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state.impl; - -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.SessionRecord; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; - -import java.util.List; - -public class InMemorySignalProtocolStore implements SignalProtocolStore { - - private final InMemoryPreKeyStore preKeyStore = new InMemoryPreKeyStore(); - private final InMemorySessionStore sessionStore = new InMemorySessionStore(); - private final InMemorySignedPreKeyStore signedPreKeyStore = new InMemorySignedPreKeyStore(); - - private final InMemoryIdentityKeyStore identityKeyStore; - - public InMemorySignalProtocolStore(IdentityKeyPair identityKeyPair, int registrationId) { - this.identityKeyStore = new InMemoryIdentityKeyStore(identityKeyPair, registrationId); - } - - @Override - public IdentityKeyPair getIdentityKeyPair() { - return identityKeyStore.getIdentityKeyPair(); - } - - @Override - public int getLocalRegistrationId() { - return identityKeyStore.getLocalRegistrationId(); - } - - @Override - public boolean saveIdentity(SignalProtocolAddress address, IdentityKey identityKey) { - return identityKeyStore.saveIdentity(address, identityKey); - } - - @Override - public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey, Direction direction) { - return identityKeyStore.isTrustedIdentity(address, identityKey, direction); - } - - @Override - public IdentityKey getIdentity(SignalProtocolAddress address) { - return identityKeyStore.getIdentity(address); - } - - @Override - public PreKeyRecord loadPreKey(int preKeyId) throws InvalidKeyIdException { - return preKeyStore.loadPreKey(preKeyId); - } - - @Override - public void storePreKey(int preKeyId, PreKeyRecord record) { - preKeyStore.storePreKey(preKeyId, record); - } - - @Override - public boolean containsPreKey(int preKeyId) { - return preKeyStore.containsPreKey(preKeyId); - } - - @Override - public void removePreKey(int preKeyId) { - preKeyStore.removePreKey(preKeyId); - } - - @Override - public SessionRecord loadSession(SignalProtocolAddress address) { - return sessionStore.loadSession(address); - } - - @Override - public List getSubDeviceSessions(String name) { - return sessionStore.getSubDeviceSessions(name); - } - - @Override - public void storeSession(SignalProtocolAddress address, SessionRecord record) { - sessionStore.storeSession(address, record); - } - - @Override - public boolean containsSession(SignalProtocolAddress address) { - return sessionStore.containsSession(address); - } - - @Override - public void deleteSession(SignalProtocolAddress address) { - sessionStore.deleteSession(address); - } - - @Override - public void deleteAllSessions(String name) { - sessionStore.deleteAllSessions(name); - } - - @Override - public SignedPreKeyRecord loadSignedPreKey(int signedPreKeyId) throws InvalidKeyIdException { - return signedPreKeyStore.loadSignedPreKey(signedPreKeyId); - } - - @Override - public List loadSignedPreKeys() { - return signedPreKeyStore.loadSignedPreKeys(); - } - - @Override - public void storeSignedPreKey(int signedPreKeyId, SignedPreKeyRecord record) { - signedPreKeyStore.storeSignedPreKey(signedPreKeyId, record); - } - - @Override - public boolean containsSignedPreKey(int signedPreKeyId) { - return signedPreKeyStore.containsSignedPreKey(signedPreKeyId); - } - - @Override - public void removeSignedPreKey(int signedPreKeyId) { - signedPreKeyStore.removeSignedPreKey(signedPreKeyId); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignedPreKeyStore.java b/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignedPreKeyStore.java deleted file mode 100644 index 359e19c23..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/state/impl/InMemorySignedPreKeyStore.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.state.impl; - -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyStore; - -import java.io.IOException; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -public class InMemorySignedPreKeyStore implements SignedPreKeyStore { - - private final Map store = new HashMap(); - - @Override - public SignedPreKeyRecord loadSignedPreKey(int signedPreKeyId) throws InvalidKeyIdException { - try { - if (!store.containsKey(signedPreKeyId)) { - throw new InvalidKeyIdException("No such signedprekeyrecord! " + signedPreKeyId); - } - - return new SignedPreKeyRecord(store.get(signedPreKeyId)); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public List loadSignedPreKeys() { - try { - List results = new LinkedList(); - - for (byte[] serialized : store.values()) { - results.add(new SignedPreKeyRecord(serialized)); - } - - return results; - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public void storeSignedPreKey(int signedPreKeyId, SignedPreKeyRecord record) { - store.put(signedPreKeyId, record.serialize()); - } - - @Override - public boolean containsSignedPreKey(int signedPreKeyId) { - return store.containsKey(signedPreKeyId); - } - - @Override - public void removeSignedPreKey(int signedPreKeyId) { - store.remove(signedPreKeyId); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/ByteArrayComparator.java b/service/java/src/main/java/org/whispersystems/libsignal/util/ByteArrayComparator.java deleted file mode 100644 index be0316522..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/ByteArrayComparator.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.whispersystems.libsignal.util; - -public abstract class ByteArrayComparator { - - protected int compare(byte[] left, byte[] right) { - for (int i = 0, j = 0; i < left.length && j < right.length; i++, j++) { - int a = (left[i] & 0xff); - int b = (right[j] & 0xff); - - if (a != b) { - return a - b; - } - } - - return left.length - right.length; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/ByteUtil.java b/service/java/src/main/java/org/whispersystems/libsignal/util/ByteUtil.java deleted file mode 100644 index 16faf2a7c..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/ByteUtil.java +++ /dev/null @@ -1,246 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.text.ParseException; - -public class ByteUtil { - - public static byte[] combine(byte[]... elements) { - try { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - for (byte[] element : elements) { - baos.write(element); - } - - return baos.toByteArray(); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - public static byte[][] split(byte[] input, int firstLength, int secondLength) { - byte[][] parts = new byte[2][]; - - parts[0] = new byte[firstLength]; - System.arraycopy(input, 0, parts[0], 0, firstLength); - - parts[1] = new byte[secondLength]; - System.arraycopy(input, firstLength, parts[1], 0, secondLength); - - return parts; - } - - public static byte[][] split(byte[] input, int firstLength, int secondLength, int thirdLength) - throws ParseException - { - if (input == null || firstLength < 0 || secondLength < 0 || thirdLength < 0 || - input.length < firstLength + secondLength + thirdLength) - { - throw new ParseException("Input too small: " + (input == null ? null : Hex.toString(input)), 0); - } - - byte[][] parts = new byte[3][]; - - parts[0] = new byte[firstLength]; - System.arraycopy(input, 0, parts[0], 0, firstLength); - - parts[1] = new byte[secondLength]; - System.arraycopy(input, firstLength, parts[1], 0, secondLength); - - parts[2] = new byte[thirdLength]; - System.arraycopy(input, firstLength + secondLength, parts[2], 0, thirdLength); - - return parts; - } - - public static byte[] trim(byte[] input, int length) { - byte[] result = new byte[length]; - System.arraycopy(input, 0, result, 0, result.length); - - return result; - } - - public static byte[] copyFrom(byte[] input) { - byte[] output = new byte[input.length]; - System.arraycopy(input, 0, output, 0, output.length); - - return output; - } - - public static byte intsToByteHighAndLow(int highValue, int lowValue) { - return (byte)((highValue << 4 | lowValue) & 0xFF); - } - - public static int highBitsToInt(byte value) { - return (value & 0xFF) >> 4; - } - - public static int lowBitsToInt(byte value) { - return (value & 0xF); - } - - public static int highBitsToMedium(int value) { - return (value >> 12); - } - - public static int lowBitsToMedium(int value) { - return (value & 0xFFF); - } - - public static byte[] shortToByteArray(int value) { - byte[] bytes = new byte[2]; - shortToByteArray(bytes, 0, value); - return bytes; - } - - public static int shortToByteArray(byte[] bytes, int offset, int value) { - bytes[offset+1] = (byte)value; - bytes[offset] = (byte)(value >> 8); - return 2; - } - - public static int shortToLittleEndianByteArray(byte[] bytes, int offset, int value) { - bytes[offset] = (byte)value; - bytes[offset+1] = (byte)(value >> 8); - return 2; - } - - public static byte[] mediumToByteArray(int value) { - byte[] bytes = new byte[3]; - mediumToByteArray(bytes, 0, value); - return bytes; - } - - public static int mediumToByteArray(byte[] bytes, int offset, int value) { - bytes[offset + 2] = (byte)value; - bytes[offset + 1] = (byte)(value >> 8); - bytes[offset] = (byte)(value >> 16); - return 3; - } - - public static byte[] intToByteArray(int value) { - byte[] bytes = new byte[4]; - intToByteArray(bytes, 0, value); - return bytes; - } - - public static int intToByteArray(byte[] bytes, int offset, int value) { - bytes[offset + 3] = (byte)value; - bytes[offset + 2] = (byte)(value >> 8); - bytes[offset + 1] = (byte)(value >> 16); - bytes[offset] = (byte)(value >> 24); - return 4; - } - - public static int intToLittleEndianByteArray(byte[] bytes, int offset, int value) { - bytes[offset] = (byte)value; - bytes[offset+1] = (byte)(value >> 8); - bytes[offset+2] = (byte)(value >> 16); - bytes[offset+3] = (byte)(value >> 24); - return 4; - } - - public static byte[] longToByteArray(long l) { - byte[] bytes = new byte[8]; - longToByteArray(bytes, 0, l); - return bytes; - } - - public static int longToByteArray(byte[] bytes, int offset, long value) { - bytes[offset + 7] = (byte)value; - bytes[offset + 6] = (byte)(value >> 8); - bytes[offset + 5] = (byte)(value >> 16); - bytes[offset + 4] = (byte)(value >> 24); - bytes[offset + 3] = (byte)(value >> 32); - bytes[offset + 2] = (byte)(value >> 40); - bytes[offset + 1] = (byte)(value >> 48); - bytes[offset] = (byte)(value >> 56); - return 8; - } - - public static int longTo4ByteArray(byte[] bytes, int offset, long value) { - bytes[offset + 3] = (byte)value; - bytes[offset + 2] = (byte)(value >> 8); - bytes[offset + 1] = (byte)(value >> 16); - bytes[offset + 0] = (byte)(value >> 24); - return 4; - } - - public static int byteArrayToShort(byte[] bytes) { - return byteArrayToShort(bytes, 0); - } - - public static int byteArrayToShort(byte[] bytes, int offset) { - return - (bytes[offset] & 0xff) << 8 | (bytes[offset + 1] & 0xff); - } - - // The SSL patented 3-byte Value. - public static int byteArrayToMedium(byte[] bytes, int offset) { - return - (bytes[offset] & 0xff) << 16 | - (bytes[offset + 1] & 0xff) << 8 | - (bytes[offset + 2] & 0xff); - } - - public static int byteArrayToInt(byte[] bytes) { - return byteArrayToInt(bytes, 0); - } - - public static int byteArrayToInt(byte[] bytes, int offset) { - return - (bytes[offset] & 0xff) << 24 | - (bytes[offset + 1] & 0xff) << 16 | - (bytes[offset + 2] & 0xff) << 8 | - (bytes[offset + 3] & 0xff); - } - - public static int byteArrayToIntLittleEndian(byte[] bytes, int offset) { - return - (bytes[offset + 3] & 0xff) << 24 | - (bytes[offset + 2] & 0xff) << 16 | - (bytes[offset + 1] & 0xff) << 8 | - (bytes[offset] & 0xff); - } - - public static long byteArrayToLong(byte[] bytes) { - return byteArrayToLong(bytes, 0); - } - - public static long byteArray4ToLong(byte[] bytes, int offset) { - return - ((bytes[offset + 0] & 0xffL) << 24) | - ((bytes[offset + 1] & 0xffL) << 16) | - ((bytes[offset + 2] & 0xffL) << 8) | - ((bytes[offset + 3] & 0xffL)); - } - - public static long byteArray5ToLong(byte[] bytes, int offset) { - return - ((bytes[offset] & 0xffL) << 32) | - ((bytes[offset + 1] & 0xffL) << 24) | - ((bytes[offset + 2] & 0xffL) << 16) | - ((bytes[offset + 3] & 0xffL) << 8) | - ((bytes[offset + 4] & 0xffL)); - } - - public static long byteArrayToLong(byte[] bytes, int offset) { - return - ((bytes[offset] & 0xffL) << 56) | - ((bytes[offset + 1] & 0xffL) << 48) | - ((bytes[offset + 2] & 0xffL) << 40) | - ((bytes[offset + 3] & 0xffL) << 32) | - ((bytes[offset + 4] & 0xffL) << 24) | - ((bytes[offset + 5] & 0xffL) << 16) | - ((bytes[offset + 6] & 0xffL) << 8) | - ((bytes[offset + 7] & 0xffL)); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/Hex.java b/service/java/src/main/java/org/whispersystems/libsignal/util/Hex.java deleted file mode 100644 index abcd8a6f7..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/Hex.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.util; - -import java.io.IOException; - -/** - * Utility for generating hex dumps. - */ -public class Hex { - - private final static char[] HEX_DIGITS = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' - }; - - public static String toString(byte[] bytes) { - return toString(bytes, 0, bytes.length); - } - - public static String toString(byte[] bytes, int offset, int length) { - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < length; i++) { - appendHexChar(buf, bytes[offset + i]); - buf.append(", "); - } - return buf.toString(); - } - - public static String toStringCondensed(byte[] bytes) { - StringBuffer buf = new StringBuffer(); - for (int i=0;i> 1]; - - for (int i = 0, j = 0; j < len; i++) { - int f = Character.digit(data[j], 16) << 4; - j++; - f = f | Character.digit(data[j], 16); - j++; - out[i] = (byte) (f & 0xFF); - } - - return out; - } - - private static void appendHexChar(StringBuffer buf, int b) { - buf.append("(byte)0x"); - buf.append(HEX_DIGITS[(b >> 4) & 0xf]); - buf.append(HEX_DIGITS[b & 0xf]); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/IdentityKeyComparator.java b/service/java/src/main/java/org/whispersystems/libsignal/util/IdentityKeyComparator.java deleted file mode 100644 index cedf0e1d5..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/IdentityKeyComparator.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.whispersystems.libsignal.util; - -import org.whispersystems.libsignal.IdentityKey; - -import java.util.Comparator; - -public class IdentityKeyComparator extends ByteArrayComparator implements Comparator { - - @Override - public int compare(IdentityKey first, IdentityKey second) { - return compare(first.getPublicKey().serialize(), second.getPublicKey().serialize()); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/KeyHelper.java b/service/java/src/main/java/org/whispersystems/libsignal/util/KeyHelper.java deleted file mode 100644 index 852c0bd97..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/KeyHelper.java +++ /dev/null @@ -1,137 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.libsignal.util; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; - -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.LinkedList; -import java.util.List; - -/** - * Helper class for generating keys of different types. - * - * @author Moxie Marlinspike - */ -public class KeyHelper { - - private KeyHelper() {} - - /** - * Generate an identity key pair. Clients should only do this once, - * at install time. - * - * @return the generated IdentityKeyPair. - */ - public static IdentityKeyPair generateIdentityKeyPair() { - ECKeyPair keyPair = Curve.generateKeyPair(); - IdentityKey publicKey = new IdentityKey(keyPair.getPublicKey()); - return new IdentityKeyPair(publicKey, keyPair.getPrivateKey()); - } - - /** - * Generate a registration ID. Clients should only do this once, - * at install time. - * - * @param extendedRange By default (false), the generated registration - * ID is sized to require the minimal possible protobuf - * encoding overhead. Specify true if the caller needs - * the full range of MAX_INT at the cost of slightly - * higher encoding overhead. - * @return the generated registration ID. - */ - public static int generateRegistrationId(boolean extendedRange) { - try { - SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); - if (extendedRange) return secureRandom.nextInt(Integer.MAX_VALUE - 1) + 1; - else return secureRandom.nextInt(16380) + 1; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - public static int getRandomSequence(int max) { - try { - return SecureRandom.getInstance("SHA1PRNG").nextInt(max); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - /** - * Generate a list of PreKeys. Clients should do this at install time, and - * subsequently any time the list of PreKeys stored on the server runs low. - *

- * PreKey IDs are shorts, so they will eventually be repeated. Clients should - * store PreKeys in a circular buffer, so that they are repeated as infrequently - * as possible. - * - * @param start The starting PreKey ID, inclusive. - * @param count The number of PreKeys to generate. - * @return the list of generated PreKeyRecords. - */ - public static List generatePreKeys(int start, int count) { - List results = new LinkedList(); - - start--; - - for (int i=0;i { - private final T1 v1; - private final T2 v2; - - public Pair(T1 v1, T2 v2) { - this.v1 = v1; - this.v2 = v2; - } - - public T1 first(){ - return v1; - } - - public T2 second(){ - return v2; - } - - public boolean equals(Object o) { - return o instanceof Pair && - equal(((Pair) o).first(), first()) && - equal(((Pair) o).second(), second()); - } - - public int hashCode() { - return first().hashCode() ^ second().hashCode(); - } - - private boolean equal(Object first, Object second) { - if (first == null && second == null) return true; - if (first == null || second == null) return false; - return first.equals(second); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Absent.java b/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Absent.java deleted file mode 100644 index 0c5bc7077..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Absent.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2011 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.whispersystems.libsignal.util.guava; - -import static org.whispersystems.libsignal.util.guava.Preconditions.checkNotNull; - - - -import java.util.Collections; -import java.util.Set; - - -/** - * Implementation of an {@link Optional} not containing a reference. - */ - -final class Absent extends Optional { - static final Absent INSTANCE = new Absent(); - - @Override public boolean isPresent() { - return false; - } - - @Override public Object get() { - throw new IllegalStateException("value is absent"); - } - - @Override public Object or(Object defaultValue) { - return checkNotNull(defaultValue, "use orNull() instead of or(null)"); - } - - @SuppressWarnings("unchecked") // safe covariant cast - @Override public Optional or(Optional secondChoice) { - return (Optional) checkNotNull(secondChoice); - } - - @Override public Object or(Supplier supplier) { - return checkNotNull(supplier.get(), - "use orNull() instead of a Supplier that returns null"); - } - - @Override public Object orNull() { - return null; - } - - @Override public Set asSet() { - return Collections.emptySet(); - } - - @Override - public Optional transform(Function function) { - checkNotNull(function); - return Optional.absent(); - } - - @Override public boolean equals(Object object) { - return object == this; - } - - @Override public int hashCode() { - return 0x598df91c; - } - - @Override public String toString() { - return "Optional.absent()"; - } - - private Object readResolve() { - return INSTANCE; - } - - private static final long serialVersionUID = 0; -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Function.java b/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Function.java deleted file mode 100644 index 29d9260ed..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Function.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2007 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.whispersystems.libsignal.util.guava; - - - -/** - * Determines an output value based on an input value. - * - *

See the Guava User Guide article on the use of {@code - * Function}. - * - * @author Kevin Bourrillion - * @since 2.0 (imported from Google Collections Library) - */ - -public interface Function { - /** - * Returns the result of applying this function to {@code input}. This method is generally - * expected, but not absolutely required, to have the following properties: - * - *

    - *
  • Its execution does not cause any observable side effects. - *
  • The computation is consistent with equals; that is, {@link Objects#equal - * Objects.equal}{@code (a, b)} implies that {@code Objects.equal(function.apply(a), - * function.apply(b))}. - *
- * - * @throws NullPointerException if {@code input} is null and this function does not accept null - * arguments - */ - T apply(F input); - - /** - * Indicates whether another object is equal to this function. - * - *

Most implementations will have no reason to override the behavior of {@link Object#equals}. - * However, an implementation may also choose to return {@code true} whenever {@code object} is a - * {@link Function} that it considers interchangeable with this one. "Interchangeable" - * typically means that {@code Objects.equal(this.apply(f), that.apply(f))} is true for all - * {@code f} of type {@code F}. Note that a {@code false} result from this method does not imply - * that the functions are known not to be interchangeable. - */ - @Override - boolean equals(Object object); -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Optional.java b/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Optional.java deleted file mode 100644 index 3509cd8b3..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Optional.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (C) 2011 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.whispersystems.libsignal.util.guava; - -import static org.whispersystems.libsignal.util.guava.Preconditions.checkNotNull; - -import java.io.Serializable; -import java.util.Iterator; -import java.util.Set; - - -/** - * An immutable object that may contain a non-null reference to another object. Each - * instance of this type either contains a non-null reference, or contains nothing (in - * which case we say that the reference is "absent"); it is never said to "contain {@code - * null}". - * - *

A non-null {@code Optional} reference can be used as a replacement for a nullable - * {@code T} reference. It allows you to represent "a {@code T} that must be present" and - * a "a {@code T} that might be absent" as two distinct types in your program, which can - * aid clarity. - * - *

Some uses of this class include - * - *

    - *
  • As a method return type, as an alternative to returning {@code null} to indicate - * that no value was available - *
  • To distinguish between "unknown" (for example, not present in a map) and "known to - * have no value" (present in the map, with value {@code Optional.absent()}) - *
  • To wrap nullable references for storage in a collection that does not support - * {@code null} (though there are - * - * several other approaches to this that should be considered first) - *
- * - *

A common alternative to using this class is to find or create a suitable - * null object for the - * type in question. - * - *

This class is not intended as a direct analogue of any existing "option" or "maybe" - * construct from other programming environments, though it may bear some similarities. - * - *

See the Guava User Guide article on - * using {@code Optional}. - * - * @param the type of instance that can be contained. {@code Optional} is naturally - * covariant on this type, so it is safe to cast an {@code Optional} to {@code - * Optional} for any supertype {@code S} of {@code T}. - * @author Kurt Alfred Kluever - * @author Kevin Bourrillion - * @since 10.0 - */ -public abstract class Optional implements Serializable { - /** - * Returns an {@code Optional} instance with no contained reference. - */ - @SuppressWarnings("unchecked") - public static Optional absent() { - return (Optional) Absent.INSTANCE; - } - - /** - * Returns an {@code Optional} instance containing the given non-null reference. - */ - public static Optional of(T reference) { - return new Present(checkNotNull(reference)); - } - - /** - * If {@code nullableReference} is non-null, returns an {@code Optional} instance containing that - * reference; otherwise returns {@link Optional#absent}. - */ - public static Optional fromNullable(T nullableReference) { - return (nullableReference == null) - ? Optional.absent() - : new Present(nullableReference); - } - - Optional() {} - - /** - * Returns {@code true} if this holder contains a (non-null) instance. - */ - public abstract boolean isPresent(); - - /** - * Returns the contained instance, which must be present. If the instance might be - * absent, use {@link #or(Object)} or {@link #orNull} instead. - * - * @throws IllegalStateException if the instance is absent ({@link #isPresent} returns - * {@code false}) - */ - public abstract T get(); - - /** - * Returns the contained instance if it is present; {@code defaultValue} otherwise. If - * no default value should be required because the instance is known to be present, use - * {@link #get()} instead. For a default value of {@code null}, use {@link #orNull}. - * - *

Note about generics: The signature {@code public T or(T defaultValue)} is overly - * restrictive. However, the ideal signature, {@code public S or(S)}, is not legal - * Java. As a result, some sensible operations involving subtypes are compile errors: - *

   {@code
-   *
-   *   Optional optionalInt = getSomeOptionalInt();
-   *   Number value = optionalInt.or(0.5); // error
-   *
-   *   FluentIterable numbers = getSomeNumbers();
-   *   Optional first = numbers.first();
-   *   Number value = first.or(0.5); // error}
- * - * As a workaround, it is always safe to cast an {@code Optional} to {@code - * Optional}. Casting either of the above example {@code Optional} instances to {@code - * Optional} (where {@code Number} is the desired output type) solves the problem: - *
   {@code
-   *
-   *   Optional optionalInt = (Optional) getSomeOptionalInt();
-   *   Number value = optionalInt.or(0.5); // fine
-   *
-   *   FluentIterable numbers = getSomeNumbers();
-   *   Optional first = (Optional) numbers.first();
-   *   Number value = first.or(0.5); // fine}
- */ - public abstract T or(T defaultValue); - - /** - * Returns this {@code Optional} if it has a value present; {@code secondChoice} - * otherwise. - */ - public abstract Optional or(Optional secondChoice); - - /** - * Returns the contained instance if it is present; {@code supplier.get()} otherwise. If the - * supplier returns {@code null}, a {@link NullPointerException} is thrown. - * - * @throws NullPointerException if the supplier returns {@code null} - */ - public abstract T or(Supplier supplier); - - /** - * Returns the contained instance if it is present; {@code null} otherwise. If the - * instance is known to be present, use {@link #get()} instead. - */ - public abstract T orNull(); - - /** - * Returns an immutable singleton {@link Set} whose only element is the contained instance - * if it is present; an empty immutable {@link Set} otherwise. - * - * @since 11.0 - */ - public abstract Set asSet(); - - /** - * If the instance is present, it is transformed with the given {@link Function}; otherwise, - * {@link Optional#absent} is returned. If the function returns {@code null}, a - * {@link NullPointerException} is thrown. - * - * @throws NullPointerException if the function returns {@code null} - * - * @since 12.0 - */ - - public abstract Optional transform(Function function); - - /** - * Returns {@code true} if {@code object} is an {@code Optional} instance, and either - * the contained references are {@linkplain Object#equals equal} to each other or both - * are absent. Note that {@code Optional} instances of differing parameterized types can - * be equal. - */ - @Override public abstract boolean equals(Object object); - - /** - * Returns a hash code for this instance. - */ - @Override public abstract int hashCode(); - - /** - * Returns a string representation for this instance. The form of this string - * representation is unspecified. - */ - @Override public abstract String toString(); - - /** - * Returns the value of each present instance from the supplied {@code optionals}, in order, - * skipping over occurrences of {@link Optional#absent}. Iterators are unmodifiable and are - * evaluated lazily. - * - * @since 11.0 (generics widened in 13.0) - */ - -// public static Iterable presentInstances( -// final Iterable> optionals) { -// checkNotNull(optionals); -// return new Iterable() { -// @Override public Iterator iterator() { -// return new AbstractIterator() { -// private final Iterator> iterator = -// checkNotNull(optionals.iterator()); -// -// @Override protected T computeNext() { -// while (iterator.hasNext()) { -// Optional optional = iterator.next(); -// if (optional.isPresent()) { -// return optional.get(); -// } -// } -// return endOfData(); -// } -// }; -// }; -// }; -// } - - private static final long serialVersionUID = 0; -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Preconditions.java b/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Preconditions.java deleted file mode 100644 index 1b52b9974..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Preconditions.java +++ /dev/null @@ -1,447 +0,0 @@ -/* - * Copyright (C) 2007 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.whispersystems.libsignal.util.guava; - - -import java.util.NoSuchElementException; - - - -/** - * Simple static methods to be called at the start of your own methods to verify - * correct arguments and state. This allows constructs such as - *
- *     if (count <= 0) {
- *       throw new IllegalArgumentException("must be positive: " + count);
- *     }
- * - * to be replaced with the more compact - *
- *     checkArgument(count > 0, "must be positive: %s", count);
- * - * Note that the sense of the expression is inverted; with {@code Preconditions} - * you declare what you expect to be true, just as you do with an - * - * {@code assert} or a JUnit {@code assertTrue} call. - * - *

Warning: only the {@code "%s"} specifier is recognized as a - * placeholder in these messages, not the full range of {@link - * String#format(String, Object[])} specifiers. - * - *

Take care not to confuse precondition checking with other similar types - * of checks! Precondition exceptions -- including those provided here, but also - * {@link IndexOutOfBoundsException}, {@link NoSuchElementException}, {@link - * UnsupportedOperationException} and others -- are used to signal that the - * calling method has made an error. This tells the caller that it should - * not have invoked the method when it did, with the arguments it did, or - * perhaps ever. Postcondition or other invariant failures should not throw - * these types of exceptions. - * - *

See the Guava User Guide on - * using {@code Preconditions}. - * - * @author Kevin Bourrillion - * @since 2.0 (imported from Google Collections Library) - */ - -public final class Preconditions { - private Preconditions() {} - - /** - * Ensures the truth of an expression involving one or more parameters to the - * calling method. - * - * @param expression a boolean expression - * @throws IllegalArgumentException if {@code expression} is false - */ - public static void checkArgument(boolean expression) { - if (!expression) { - throw new IllegalArgumentException(); - } - } - - /** - * Ensures the truth of an expression involving one or more parameters to the - * calling method. - * - * @param expression a boolean expression - * @param errorMessage the exception message to use if the check fails; will - * be converted to a string using {@link String#valueOf(Object)} - * @throws IllegalArgumentException if {@code expression} is false - */ - public static void checkArgument( - boolean expression, Object errorMessage) { - if (!expression) { - throw new IllegalArgumentException(String.valueOf(errorMessage)); - } - } - - /** - * Ensures the truth of an expression involving one or more parameters to the - * calling method. - * - * @param expression a boolean expression - * @param errorMessageTemplate a template for the exception message should the - * check fail. The message is formed by replacing each {@code %s} - * placeholder in the template with an argument. These are matched by - * position - the first {@code %s} gets {@code errorMessageArgs[0]}, etc. - * Unmatched arguments will be appended to the formatted message in square - * braces. Unmatched placeholders will be left as-is. - * @param errorMessageArgs the arguments to be substituted into the message - * template. Arguments are converted to strings using - * {@link String#valueOf(Object)}. - * @throws IllegalArgumentException if {@code expression} is false - * @throws NullPointerException if the check fails and either {@code - * errorMessageTemplate} or {@code errorMessageArgs} is null (don't let - * this happen) - */ - public static void checkArgument(boolean expression, - String errorMessageTemplate, - Object... errorMessageArgs) { - if (!expression) { - throw new IllegalArgumentException( - format(errorMessageTemplate, errorMessageArgs)); - } - } - - /** - * Ensures the truth of an expression involving the state of the calling - * instance, but not involving any parameters to the calling method. - * - * @param expression a boolean expression - * @throws IllegalStateException if {@code expression} is false - */ - public static void checkState(boolean expression) { - if (!expression) { - throw new IllegalStateException(); - } - } - - /** - * Ensures the truth of an expression involving the state of the calling - * instance, but not involving any parameters to the calling method. - * - * @param expression a boolean expression - * @param errorMessage the exception message to use if the check fails; will - * be converted to a string using {@link String#valueOf(Object)} - * @throws IllegalStateException if {@code expression} is false - */ - public static void checkState( - boolean expression, Object errorMessage) { - if (!expression) { - throw new IllegalStateException(String.valueOf(errorMessage)); - } - } - - /** - * Ensures the truth of an expression involving the state of the calling - * instance, but not involving any parameters to the calling method. - * - * @param expression a boolean expression - * @param errorMessageTemplate a template for the exception message should the - * check fail. The message is formed by replacing each {@code %s} - * placeholder in the template with an argument. These are matched by - * position - the first {@code %s} gets {@code errorMessageArgs[0]}, etc. - * Unmatched arguments will be appended to the formatted message in square - * braces. Unmatched placeholders will be left as-is. - * @param errorMessageArgs the arguments to be substituted into the message - * template. Arguments are converted to strings using - * {@link String#valueOf(Object)}. - * @throws IllegalStateException if {@code expression} is false - * @throws NullPointerException if the check fails and either {@code - * errorMessageTemplate} or {@code errorMessageArgs} is null (don't let - * this happen) - */ - public static void checkState(boolean expression, - String errorMessageTemplate, - Object... errorMessageArgs) { - if (!expression) { - throw new IllegalStateException( - format(errorMessageTemplate, errorMessageArgs)); - } - } - - /** - * Ensures that an object reference passed as a parameter to the calling - * method is not null. - * - * @param reference an object reference - * @return the non-null reference that was validated - * @throws NullPointerException if {@code reference} is null - */ - public static T checkNotNull(T reference) { - if (reference == null) { - throw new NullPointerException(); - } - return reference; - } - - /** - * Ensures that an object reference passed as a parameter to the calling - * method is not null. - * - * @param reference an object reference - * @param errorMessage the exception message to use if the check fails; will - * be converted to a string using {@link String#valueOf(Object)} - * @return the non-null reference that was validated - * @throws NullPointerException if {@code reference} is null - */ - public static T checkNotNull(T reference, Object errorMessage) { - if (reference == null) { - throw new NullPointerException(String.valueOf(errorMessage)); - } - return reference; - } - - /** - * Ensures that an object reference passed as a parameter to the calling - * method is not null. - * - * @param reference an object reference - * @param errorMessageTemplate a template for the exception message should the - * check fail. The message is formed by replacing each {@code %s} - * placeholder in the template with an argument. These are matched by - * position - the first {@code %s} gets {@code errorMessageArgs[0]}, etc. - * Unmatched arguments will be appended to the formatted message in square - * braces. Unmatched placeholders will be left as-is. - * @param errorMessageArgs the arguments to be substituted into the message - * template. Arguments are converted to strings using - * {@link String#valueOf(Object)}. - * @return the non-null reference that was validated - * @throws NullPointerException if {@code reference} is null - */ - public static T checkNotNull(T reference, - String errorMessageTemplate, - Object... errorMessageArgs) { - if (reference == null) { - // If either of these parameters is null, the right thing happens anyway - throw new NullPointerException( - format(errorMessageTemplate, errorMessageArgs)); - } - return reference; - } - - /* - * All recent hotspots (as of 2009) *really* like to have the natural code - * - * if (guardExpression) { - * throw new BadException(messageExpression); - * } - * - * refactored so that messageExpression is moved to a separate - * String-returning method. - * - * if (guardExpression) { - * throw new BadException(badMsg(...)); - * } - * - * The alternative natural refactorings into void or Exception-returning - * methods are much slower. This is a big deal - we're talking factors of - * 2-8 in microbenchmarks, not just 10-20%. (This is a hotspot optimizer - * bug, which should be fixed, but that's a separate, big project). - * - * The coding pattern above is heavily used in java.util, e.g. in ArrayList. - * There is a RangeCheckMicroBenchmark in the JDK that was used to test this. - * - * But the methods in this class want to throw different exceptions, - * depending on the args, so it appears that this pattern is not directly - * applicable. But we can use the ridiculous, devious trick of throwing an - * exception in the middle of the construction of another exception. - * Hotspot is fine with that. - */ - - /** - * Ensures that {@code index} specifies a valid element in an array, - * list or string of size {@code size}. An element index may range from zero, - * inclusive, to {@code size}, exclusive. - * - * @param index a user-supplied index identifying an element of an array, list - * or string - * @param size the size of that array, list or string - * @return the value of {@code index} - * @throws IndexOutOfBoundsException if {@code index} is negative or is not - * less than {@code size} - * @throws IllegalArgumentException if {@code size} is negative - */ - public static int checkElementIndex(int index, int size) { - return checkElementIndex(index, size, "index"); - } - - /** - * Ensures that {@code index} specifies a valid element in an array, - * list or string of size {@code size}. An element index may range from zero, - * inclusive, to {@code size}, exclusive. - * - * @param index a user-supplied index identifying an element of an array, list - * or string - * @param size the size of that array, list or string - * @param desc the text to use to describe this index in an error message - * @return the value of {@code index} - * @throws IndexOutOfBoundsException if {@code index} is negative or is not - * less than {@code size} - * @throws IllegalArgumentException if {@code size} is negative - */ - public static int checkElementIndex( - int index, int size, String desc) { - // Carefully optimized for execution by hotspot (explanatory comment above) - if (index < 0 || index >= size) { - throw new IndexOutOfBoundsException(badElementIndex(index, size, desc)); - } - return index; - } - - private static String badElementIndex(int index, int size, String desc) { - if (index < 0) { - return format("%s (%s) must not be negative", desc, index); - } else if (size < 0) { - throw new IllegalArgumentException("negative size: " + size); - } else { // index >= size - return format("%s (%s) must be less than size (%s)", desc, index, size); - } - } - - /** - * Ensures that {@code index} specifies a valid position in an array, - * list or string of size {@code size}. A position index may range from zero - * to {@code size}, inclusive. - * - * @param index a user-supplied index identifying a position in an array, list - * or string - * @param size the size of that array, list or string - * @return the value of {@code index} - * @throws IndexOutOfBoundsException if {@code index} is negative or is - * greater than {@code size} - * @throws IllegalArgumentException if {@code size} is negative - */ - public static int checkPositionIndex(int index, int size) { - return checkPositionIndex(index, size, "index"); - } - - /** - * Ensures that {@code index} specifies a valid position in an array, - * list or string of size {@code size}. A position index may range from zero - * to {@code size}, inclusive. - * - * @param index a user-supplied index identifying a position in an array, list - * or string - * @param size the size of that array, list or string - * @param desc the text to use to describe this index in an error message - * @return the value of {@code index} - * @throws IndexOutOfBoundsException if {@code index} is negative or is - * greater than {@code size} - * @throws IllegalArgumentException if {@code size} is negative - */ - public static int checkPositionIndex( - int index, int size, String desc) { - // Carefully optimized for execution by hotspot (explanatory comment above) - if (index < 0 || index > size) { - throw new IndexOutOfBoundsException(badPositionIndex(index, size, desc)); - } - return index; - } - - private static String badPositionIndex(int index, int size, String desc) { - if (index < 0) { - return format("%s (%s) must not be negative", desc, index); - } else if (size < 0) { - throw new IllegalArgumentException("negative size: " + size); - } else { // index > size - return format("%s (%s) must not be greater than size (%s)", - desc, index, size); - } - } - - /** - * Ensures that {@code start} and {@code end} specify a valid positions - * in an array, list or string of size {@code size}, and are in order. A - * position index may range from zero to {@code size}, inclusive. - * - * @param start a user-supplied index identifying a starting position in an - * array, list or string - * @param end a user-supplied index identifying a ending position in an array, - * list or string - * @param size the size of that array, list or string - * @throws IndexOutOfBoundsException if either index is negative or is - * greater than {@code size}, or if {@code end} is less than {@code start} - * @throws IllegalArgumentException if {@code size} is negative - */ - public static void checkPositionIndexes(int start, int end, int size) { - // Carefully optimized for execution by hotspot (explanatory comment above) - if (start < 0 || end < start || end > size) { - throw new IndexOutOfBoundsException(badPositionIndexes(start, end, size)); - } - } - - private static String badPositionIndexes(int start, int end, int size) { - if (start < 0 || start > size) { - return badPositionIndex(start, size, "start index"); - } - if (end < 0 || end > size) { - return badPositionIndex(end, size, "end index"); - } - // end < start - return format("end index (%s) must not be less than start index (%s)", - end, start); - } - - /** - * Substitutes each {@code %s} in {@code template} with an argument. These - * are matched by position - the first {@code %s} gets {@code args[0]}, etc. - * If there are more arguments than placeholders, the unmatched arguments will - * be appended to the end of the formatted message in square braces. - * - * @param template a non-null string containing 0 or more {@code %s} - * placeholders. - * @param args the arguments to be substituted into the message - * template. Arguments are converted to strings using - * {@link String#valueOf(Object)}. Arguments can be null. - */ - static String format(String template, - Object... args) { - template = String.valueOf(template); // null -> "null" - - // start substituting the arguments into the '%s' placeholders - StringBuilder builder = new StringBuilder( - template.length() + 16 * args.length); - int templateStart = 0; - int i = 0; - while (i < args.length) { - int placeholderStart = template.indexOf("%s", templateStart); - if (placeholderStart == -1) { - break; - } - builder.append(template.substring(templateStart, placeholderStart)); - builder.append(args[i++]); - templateStart = placeholderStart + 2; - } - builder.append(template.substring(templateStart)); - - // if we run out of placeholders, append the extra args in square braces - if (i < args.length) { - builder.append(" ["); - builder.append(args[i++]); - while (i < args.length) { - builder.append(", "); - builder.append(args[i++]); - } - builder.append(']'); - } - - return builder.toString(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Present.java b/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Present.java deleted file mode 100644 index 252e42042..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Present.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2011 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.whispersystems.libsignal.util.guava; - -import static org.whispersystems.libsignal.util.guava.Preconditions.checkNotNull; - -import java.util.Collections; -import java.util.Set; - -/** - * Implementation of an {@link Optional} containing a reference. - */ - -final class Present extends Optional { - private final T reference; - - Present(T reference) { - this.reference = reference; - } - - @Override public boolean isPresent() { - return true; - } - - @Override public T get() { - return reference; - } - - @Override public T or(T defaultValue) { - checkNotNull(defaultValue, "use orNull() instead of or(null)"); - return reference; - } - - @Override public Optional or(Optional secondChoice) { - checkNotNull(secondChoice); - return this; - } - - @Override public T or(Supplier supplier) { - checkNotNull(supplier); - return reference; - } - - @Override public T orNull() { - return reference; - } - - @Override public Set asSet() { - return Collections.singleton(reference); - } - - @Override public Optional transform(Function function) { - return new Present(checkNotNull(function.apply(reference), - "Transformation function cannot return null.")); - } - - @Override public boolean equals(Object object) { - if (object instanceof Present) { - Present other = (Present) object; - return reference.equals(other.reference); - } - return false; - } - - @Override public int hashCode() { - return 0x598df91c + reference.hashCode(); - } - - @Override public String toString() { - return "Optional.of(" + reference + ")"; - } - - private static final long serialVersionUID = 0; -} diff --git a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Supplier.java b/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Supplier.java deleted file mode 100644 index 8299be3f1..000000000 --- a/service/java/src/main/java/org/whispersystems/libsignal/util/guava/Supplier.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2007 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.whispersystems.libsignal.util.guava; - - -/** - * A class that can supply objects of a single type. Semantically, this could - * be a factory, generator, builder, closure, or something else entirely. No - * guarantees are implied by this interface. - * - * @author Harry Heymann - * @since 2.0 (imported from Google Collections Library) - */ -public interface Supplier { - /** - * Retrieves an instance of the appropriate type. The returned object may or - * may not be a new instance, depending on the implementation. - * - * @return an instance of the appropriate type - */ - T get(); -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java b/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java deleted file mode 100644 index f8e700054..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java +++ /dev/null @@ -1,447 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api; - - -import com.google.protobuf.ByteString; - -import org.whispersystems.curve25519.Curve25519; -import org.whispersystems.curve25519.Curve25519KeyPair; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.IdentityKeyPair; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.InvalidCiphertextException; -import org.whispersystems.signalservice.api.crypto.ProfileCipher; -import org.whispersystems.signalservice.api.crypto.ProfileCipherOutputStream; -import org.whispersystems.signalservice.api.messages.calls.TurnServerInfo; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceInfo; -import org.whispersystems.signalservice.api.push.ContactTokenDetails; -import org.whispersystems.signalservice.api.push.SignedPreKeyEntity; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.api.util.StreamDetails; -import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; -import org.whispersystems.signalservice.internal.contacts.crypto.ContactDiscoveryCipher; -import org.whispersystems.signalservice.internal.contacts.crypto.Quote; -import org.whispersystems.signalservice.internal.contacts.crypto.RemoteAttestation; -import org.whispersystems.signalservice.internal.contacts.crypto.RemoteAttestationKeys; -import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedQuoteException; -import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException; -import org.whispersystems.signalservice.internal.contacts.entities.DiscoveryRequest; -import org.whispersystems.signalservice.internal.contacts.entities.DiscoveryResponse; -import org.whispersystems.signalservice.internal.contacts.entities.RemoteAttestationRequest; -import org.whispersystems.signalservice.internal.contacts.entities.RemoteAttestationResponse; -import org.whispersystems.signalservice.internal.crypto.ProvisioningCipher; -import org.whispersystems.signalservice.internal.push.ProfileAvatarData; -import org.whispersystems.signalservice.internal.push.PushServiceSocket; -import org.whispersystems.signalservice.internal.push.http.ProfileCipherOutputStreamFactory; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.internal.util.StaticCredentialsProvider; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.IOException; -import java.security.KeyStore; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.SignatureException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; - -import static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage; - -/** - * The main interface for creating, registering, and - * managing a Signal Service account. - * - * @author Moxie Marlinspike - */ -public class SignalServiceAccountManager { - - private static final String TAG = SignalServiceAccountManager.class.getSimpleName(); - - private final PushServiceSocket pushServiceSocket; - private final String user; - private final String userAgent; - - /** - * Construct a SignalServiceAccountManager. - * - * @param configuration The URL for the Signal Service. - * @param user A Signal Service phone number. - * @param password A Signal Service password. - * @param userAgent A string which identifies the client software. - */ - public SignalServiceAccountManager(SignalServiceConfiguration configuration, - String user, String password, - String userAgent) - { - this(configuration, new StaticCredentialsProvider(user, password, null), userAgent); - } - - public SignalServiceAccountManager(SignalServiceConfiguration configuration, - CredentialsProvider credentialsProvider, - String userAgent) - { - this.pushServiceSocket = new PushServiceSocket(configuration, credentialsProvider, userAgent); - this.user = credentialsProvider.getUser(); - this.userAgent = userAgent; - } - - public byte[] getSenderCertificate() throws IOException { - return this.pushServiceSocket.getSenderCertificate(); - } - - public void setPin(Optional pin) throws IOException { - if (pin.isPresent()) { - this.pushServiceSocket.setPin(pin.get()); - } else { - this.pushServiceSocket.removePin(); - } - } - - /** - * Register/Unregister a Google Cloud Messaging registration ID. - * - * @param gcmRegistrationId The GCM id to register. A call with an absent value will unregister. - * @throws IOException - */ - public void setGcmId(Optional gcmRegistrationId) throws IOException { - if (gcmRegistrationId.isPresent()) { - this.pushServiceSocket.registerGcmId(gcmRegistrationId.get()); - } else { - this.pushServiceSocket.unregisterGcmId(); - } - } - - /** - * Request an SMS verification code. On success, the server will send - * an SMS verification code to this Signal user. - * - * @throws IOException - */ - public void requestSmsVerificationCode(boolean androidSmsRetrieverSupported, Optional captchaToken) throws IOException { - this.pushServiceSocket.requestSmsVerificationCode(androidSmsRetrieverSupported, captchaToken); - } - - /** - * Request a Voice verification code. On success, the server will - * make a voice call to this Signal user. - * - * @throws IOException - */ - public void requestVoiceVerificationCode(Locale locale, Optional captchaToken) throws IOException { - this.pushServiceSocket.requestVoiceVerificationCode(locale, captchaToken); - } - - /** - * Verify a Signal Service account with a received SMS or voice verification code. - * - * @param verificationCode The verification code received via SMS or Voice - * (see {@link #requestSmsVerificationCode} and - * {@link #requestVoiceVerificationCode}). - * @param signalingKey 52 random bytes. A 32 byte AES key and a 20 byte Hmac256 key, - * concatenated. - * @param signalProtocolRegistrationId A random 14-bit number that identifies this Signal install. - * This value should remain consistent across registrations for the - * same install, but probabilistically differ across registrations - * for separate installs. - * - * @throws IOException - */ - public void verifyAccountWithCode(String verificationCode, String signalingKey, int signalProtocolRegistrationId, boolean fetchesMessages, String pin, - byte[] unidentifiedAccessKey, boolean unrestrictedUnidentifiedAccess) - throws IOException - { - this.pushServiceSocket.verifyAccountCode(verificationCode, signalingKey, - signalProtocolRegistrationId, - fetchesMessages, pin, - unidentifiedAccessKey, - unrestrictedUnidentifiedAccess); - } - - /** - * Refresh account attributes with server. - * - * @param signalingKey 52 random bytes. A 32 byte AES key and a 20 byte Hmac256 key, concatenated. - * @param signalProtocolRegistrationId A random 14-bit number that identifies this Signal install. - * This value should remain consistent across registrations for the same - * install, but probabilistically differ across registrations for - * separate installs. - * - * @throws IOException - */ - public void setAccountAttributes(String signalingKey, int signalProtocolRegistrationId, boolean fetchesMessages, String pin, - byte[] unidentifiedAccessKey, boolean unrestrictedUnidentifiedAccess) - throws IOException - { - this.pushServiceSocket.setAccountAttributes(signalingKey, signalProtocolRegistrationId, fetchesMessages, pin, - unidentifiedAccessKey, unrestrictedUnidentifiedAccess); - } - - /** - * Register an identity key, signed prekey, and list of one time prekeys - * with the server. - * - * @param identityKey The client's long-term identity keypair. - * @param signedPreKey The client's signed prekey. - * @param oneTimePreKeys The client's list of one-time prekeys. - * - * @throws IOException - */ - public void setPreKeys(IdentityKey identityKey, SignedPreKeyRecord signedPreKey, List oneTimePreKeys) - throws IOException - { - this.pushServiceSocket.registerPreKeys(identityKey, signedPreKey, oneTimePreKeys); - } - - /** - * @return The server's count of currently available (eg. unused) prekeys for this user. - * @throws IOException - */ - public int getPreKeysCount() throws IOException { - return this.pushServiceSocket.getAvailablePreKeys(); - } - - /** - * Set the client's signed prekey. - * - * @param signedPreKey The client's new signed prekey. - * @throws IOException - */ - public void setSignedPreKey(SignedPreKeyRecord signedPreKey) throws IOException { - this.pushServiceSocket.setCurrentSignedPreKey(signedPreKey); - } - - /** - * @return The server's view of the client's current signed prekey. - * @throws IOException - */ - public SignedPreKeyEntity getSignedPreKey() throws IOException { - return this.pushServiceSocket.getCurrentSignedPreKey(); - } - - /** - * Checks whether a contact is currently registered with the server. - * - * @param e164number The contact to check. - * @return An optional ContactTokenDetails, present if registered, absent if not. - * @throws IOException - */ - public Optional getContact(String e164number) throws IOException { - String contactToken = createDirectoryServerToken(e164number, true); - ContactTokenDetails contactTokenDetails = this.pushServiceSocket.getContactTokenDetails(contactToken); - - if (contactTokenDetails != null) { - contactTokenDetails.setNumber(e164number); - } - - return Optional.fromNullable(contactTokenDetails); - } - - /** - * Checks which contacts in a set are registered with the server. - * - * @param e164numbers The contacts to check. - * @return A list of ContactTokenDetails for the registered users. - * @throws IOException - */ - public List getContacts(Set e164numbers) - throws IOException - { - Map contactTokensMap = createDirectoryServerTokenMap(e164numbers); - List activeTokens = this.pushServiceSocket.retrieveDirectory(contactTokensMap.keySet()); - - for (ContactTokenDetails activeToken : activeTokens) { - activeToken.setNumber(contactTokensMap.get(activeToken.getToken())); - } - - return activeTokens; - } - - public List getRegisteredUsers(KeyStore iasKeyStore, Set e164numbers, String mrenclave) - throws IOException, Quote.InvalidQuoteFormatException, UnauthenticatedQuoteException, SignatureException, UnauthenticatedResponseException - { - try { - String authorization = this.pushServiceSocket.getContactDiscoveryAuthorization(); - Curve25519 curve = Curve25519.getInstance(Curve25519.BEST); - Curve25519KeyPair keyPair = curve.generateKeyPair(); - - ContactDiscoveryCipher cipher = new ContactDiscoveryCipher(); - RemoteAttestationRequest attestationRequest = new RemoteAttestationRequest(keyPair.getPublicKey()); - Pair> attestationResponse = this.pushServiceSocket.getContactDiscoveryRemoteAttestation(authorization, attestationRequest, mrenclave); - - RemoteAttestationKeys keys = new RemoteAttestationKeys(keyPair, attestationResponse.first().getServerEphemeralPublic(), attestationResponse.first().getServerStaticPublic()); - Quote quote = new Quote(attestationResponse.first().getQuote()); - byte[] requestId = cipher.getRequestId(keys, attestationResponse.first()); - - cipher.verifyServerQuote(quote, attestationResponse.first().getServerStaticPublic(), mrenclave); - cipher.verifyIasSignature(iasKeyStore, attestationResponse.first().getCertificates(), attestationResponse.first().getSignatureBody(), attestationResponse.first().getSignature(), quote); - - RemoteAttestation remoteAttestation = new RemoteAttestation(requestId, keys); - List addressBook = new LinkedList(); - - for (String e164number : e164numbers) { - addressBook.add(e164number.substring(1)); - } - - DiscoveryRequest request = cipher.createDiscoveryRequest(addressBook, remoteAttestation); - DiscoveryResponse response = this.pushServiceSocket.getContactDiscoveryRegisteredUsers(authorization, request, attestationResponse.second(), mrenclave); - byte[] data = cipher.getDiscoveryResponseData(response, remoteAttestation); - - Iterator addressBookIterator = addressBook.iterator(); - List results = new LinkedList(); - - for (byte aData : data) { - String candidate = addressBookIterator.next(); - - if (aData != 0) results.add('+' + candidate); - } - - return results; - } catch (InvalidCiphertextException e) { - throw new UnauthenticatedResponseException(e); - } - } - - public void reportContactDiscoveryServiceMatch() { - try { - this.pushServiceSocket.reportContactDiscoveryServiceMatch(); - } catch (IOException e) { - Log.w(TAG, "Request to indicate a contact discovery result match failed. Ignoring.", e); - } - } - - public void reportContactDiscoveryServiceMismatch() { - try { - this.pushServiceSocket.reportContactDiscoveryServiceMismatch(); - } catch (IOException e) { - Log.w(TAG, "Request to indicate a contact discovery result mismatch failed. Ignoring.", e); - } - } - - public void reportContactDiscoveryServiceAttestationError(String reason) { - try { - this.pushServiceSocket.reportContactDiscoveryServiceAttestationError(reason); - } catch (IOException e) { - Log.w(TAG, "Request to indicate a contact discovery attestation error failed. Ignoring.", e); - } - } - - public void reportContactDiscoveryServiceUnexpectedError(String reason) { - try { - this.pushServiceSocket.reportContactDiscoveryServiceUnexpectedError(reason); - } catch (IOException e) { - Log.w(TAG, "Request to indicate a contact discovery unexpected error failed. Ignoring.", e); - } - } - - public String getNewDeviceVerificationCode() throws IOException { - return this.pushServiceSocket.getNewDeviceVerificationCode(); - } - - public void addDevice(String deviceIdentifier, - ECPublicKey deviceKey, - IdentityKeyPair identityKeyPair, - Optional profileKey, - String code) - throws InvalidKeyException, IOException - { - ProvisioningCipher cipher = new ProvisioningCipher(deviceKey); - ProvisionMessage.Builder message = ProvisionMessage.newBuilder() - .setIdentityKeyPublic(ByteString.copyFrom(identityKeyPair.getPublicKey().serialize())) - .setIdentityKeyPrivate(ByteString.copyFrom(identityKeyPair.getPrivateKey().serialize())) - .setNumber(user) - .setProvisioningCode(code); - - if (profileKey.isPresent()) { - message.setProfileKey(ByteString.copyFrom(profileKey.get())); - } - - byte[] ciphertext = cipher.encrypt(message.build()); - this.pushServiceSocket.sendProvisioningMessage(deviceIdentifier, ciphertext); - } - - public List getDevices() throws IOException { - return this.pushServiceSocket.getDevices(); - } - - public void removeDevice(long deviceId) throws IOException { - this.pushServiceSocket.removeDevice(deviceId); - } - - public TurnServerInfo getTurnServerInfo() throws IOException { - return this.pushServiceSocket.getTurnServerInfo(); - } - - public void setProfileName(byte[] key, String name) - throws IOException - { - if (name == null) name = ""; - - String ciphertextName = Base64.encodeBytesWithoutPadding(new ProfileCipher(key).encryptName(name.getBytes("UTF-8"), ProfileCipher.NAME_PADDED_LENGTH)); - - this.pushServiceSocket.setProfileName(ciphertextName); - } - - public void setProfileAvatar(byte[] key, StreamDetails avatar) - throws IOException - { - ProfileAvatarData profileAvatarData = null; - - if (avatar != null) { - profileAvatarData = new ProfileAvatarData(avatar.getStream(), - ProfileCipherOutputStream.getCiphertextLength(avatar.getLength()), - avatar.getContentType(), - new ProfileCipherOutputStreamFactory(key)); - } - - this.pushServiceSocket.setProfileAvatar(profileAvatarData); - } - - public void setSoTimeoutMillis(long soTimeoutMillis) { - this.pushServiceSocket.setSoTimeoutMillis(soTimeoutMillis); - } - - public void cancelInFlightRequests() { - this.pushServiceSocket.cancelInFlightRequests(); - } - - private String createDirectoryServerToken(String e164number, boolean urlSafe) { - try { - MessageDigest digest = MessageDigest.getInstance("SHA1"); - byte[] token = Util.trim(digest.digest(e164number.getBytes()), 10); - String encoded = Base64.encodeBytesWithoutPadding(token); - - if (urlSafe) return encoded.replace('+', '-').replace('/', '_'); - else return encoded; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - private Map createDirectoryServerTokenMap(Collection e164numbers) { - Map tokenMap = new HashMap(e164numbers.size()); - - for (String number : e164numbers) { - tokenMap.put(createDirectoryServerToken(number, false), number); - } - - return tokenMap; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java b/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java deleted file mode 100644 index 059b2f2fd..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api; - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.internal.push.AttachmentUploadAttributes; -import org.whispersystems.signalservice.internal.push.OutgoingPushMessageList; -import org.whispersystems.signalservice.internal.push.SendMessageResponse; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.internal.util.JsonUtil; -import org.whispersystems.signalservice.internal.util.Util; -import org.whispersystems.signalservice.internal.websocket.WebSocketConnection; - -import java.io.IOException; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -import static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage; -import static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage; - -/** - * A SignalServiceMessagePipe represents a dedicated connection - * to the Signal Service, which the server can push messages - * down through. - */ -public class SignalServiceMessagePipe { - - private static final String TAG = SignalServiceMessagePipe.class.getName(); - - private final WebSocketConnection websocket; - private final Optional credentialsProvider; - - SignalServiceMessagePipe(WebSocketConnection websocket, Optional credentialsProvider) { - this.websocket = websocket; - this.credentialsProvider = credentialsProvider; - - this.websocket.connect(); - } - - /** - * A blocking call that reads a message off the pipe. When this - * call returns, the message has been acknowledged and will not - * be retransmitted. - * - * @param timeout The timeout to wait for. - * @param unit The timeout time unit. - * @return A new message. - * - * @throws InvalidVersionException - * @throws IOException - * @throws TimeoutException - */ - public SignalServiceEnvelope read(long timeout, TimeUnit unit) - throws InvalidVersionException, IOException, TimeoutException - { - return read(timeout, unit, new NullMessagePipeCallback()); - } - - /** - * A blocking call that reads a message off the pipe (see {@link #read(long, java.util.concurrent.TimeUnit)} - * - * Unlike {@link #read(long, java.util.concurrent.TimeUnit)}, this method allows you - * to specify a callback that will be called before the received message is acknowledged. - * This allows you to write the received message to durable storage before acknowledging - * receipt of it to the server. - * - * @param timeout The timeout to wait for. - * @param unit The timeout time unit. - * @param callback A callback that will be called before the message receipt is - * acknowledged to the server. - * @return The message read (same as the message sent through the callback). - * @throws TimeoutException - * @throws IOException - * @throws InvalidVersionException - */ - public SignalServiceEnvelope read(long timeout, TimeUnit unit, MessagePipeCallback callback) - throws TimeoutException, IOException, InvalidVersionException - { - if (!credentialsProvider.isPresent()) { - throw new IllegalArgumentException("You can't read messages if you haven't specified credentials"); - } - - while (true) { - WebSocketRequestMessage request = websocket.readRequest(unit.toMillis(timeout)); - WebSocketResponseMessage response = createWebSocketResponse(request); - boolean signalKeyEncrypted = isSignalKeyEncrypted(request); - - try { - if (isSignalServiceEnvelope(request)) { - SignalServiceEnvelope envelope = new SignalServiceEnvelope(request.getBody().toByteArray(), - credentialsProvider.get().getSignalingKey(), - signalKeyEncrypted); - - callback.onMessage(envelope); - return envelope; - } - } finally { - websocket.sendResponse(response); - } - } - } - - public SendMessageResponse send(OutgoingPushMessageList list, Optional unidentifiedAccess) throws IOException { - try { - List headers = new LinkedList() {{ - add("content-type:application/json"); - }}; - - if (unidentifiedAccess.isPresent()) { - headers.add("Unidentified-Access-Key:" + Base64.encodeBytes(unidentifiedAccess.get().getUnidentifiedAccessKey())); - } - - WebSocketRequestMessage requestMessage = WebSocketRequestMessage.newBuilder() - .setId(SecureRandom.getInstance("SHA1PRNG").nextLong()) - .setVerb("PUT") - .setPath(String.format("/v1/messages/%s", list.getDestination())) - .addAllHeaders(headers) - .setBody(ByteString.copyFrom(JsonUtil.toJson(list).getBytes())) - .build(); - - Pair response = websocket.sendRequest(requestMessage).get(10, TimeUnit.SECONDS); - - if (response.first() < 200 || response.first() >= 300) { - throw new IOException("Non-successful response: " + response.first()); - } - - if (Util.isEmpty(response.second())) return new SendMessageResponse(false); - else return JsonUtil.fromJson(response.second(), SendMessageResponse.class); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InterruptedException e) { - throw new IOException(e); - } catch (ExecutionException e) { - throw new IOException(e); - } catch (TimeoutException e) { - throw new IOException(e); - } - } - - public SignalServiceProfile getProfile(SignalServiceAddress address, Optional unidentifiedAccess) throws IOException { - try { - List headers = new LinkedList(); - - if (unidentifiedAccess.isPresent()) { - headers.add("Unidentified-Access-Key:" + Base64.encodeBytes(unidentifiedAccess.get().getUnidentifiedAccessKey())); - } - - WebSocketRequestMessage requestMessage = WebSocketRequestMessage.newBuilder() - .setId(SecureRandom.getInstance("SHA1PRNG").nextLong()) - .setVerb("GET") - .setPath(String.format("/v1/profile/%s", address.getNumber())) - .addAllHeaders(headers) - .build(); - - Pair response = websocket.sendRequest(requestMessage).get(10, TimeUnit.SECONDS); - - if (response.first() < 200 || response.first() >= 300) { - throw new IOException("Non-successful response: " + response.first()); - } - - return JsonUtil.fromJson(response.second(), SignalServiceProfile.class); - } catch (NoSuchAlgorithmException nsae) { - throw new AssertionError(nsae); - } catch (InterruptedException e) { - throw new IOException(e); - } catch (ExecutionException e) { - throw new IOException(e); - } catch (TimeoutException e) { - throw new IOException(e); - } - } - - public AttachmentUploadAttributes getAttachmentUploadAttributes() throws IOException { - try { - WebSocketRequestMessage requestMessage = WebSocketRequestMessage.newBuilder() - .setId(new SecureRandom().nextLong()) - .setVerb("GET") - .setPath("/v2/attachments/form/upload") - .build(); - - Pair response = websocket.sendRequest(requestMessage).get(10, TimeUnit.SECONDS); - - if (response.first() < 200 || response.first() >= 300) { - throw new IOException("Non-successful response: " + response.first()); - } - - return JsonUtil.fromJson(response.second(), AttachmentUploadAttributes.class); - } catch (InterruptedException e) { - throw new IOException(e); - } catch (ExecutionException e) { - throw new IOException(e); - } catch (TimeoutException e) { - throw new IOException(e); - } - } - - /** - * Close this connection to the server. - */ - public void shutdown() { - websocket.disconnect(); - } - - private boolean isSignalServiceEnvelope(WebSocketRequestMessage message) { - return "PUT".equals(message.getVerb()) && "/api/v1/message".equals(message.getPath()); - } - - private boolean isSignalKeyEncrypted(WebSocketRequestMessage message) { - List headers = message.getHeadersList(); - - if (headers == null || headers.isEmpty()) { - return true; - } - - for (String header : headers) { - String[] parts = header.split(":"); - - if (parts.length == 2 && parts[0] != null && parts[0].trim().equalsIgnoreCase("X-Signal-Key")) { - if (parts[1] != null && parts[1].trim().equalsIgnoreCase("false")) { - return false; - } - } - } - - return true; - } - - private WebSocketResponseMessage createWebSocketResponse(WebSocketRequestMessage request) { - if (isSignalServiceEnvelope(request)) { - return WebSocketResponseMessage.newBuilder() - .setId(request.getId()) - .setStatus(200) - .setMessage("OK") - .build(); - } else { - return WebSocketResponseMessage.newBuilder() - .setId(request.getId()) - .setStatus(400) - .setMessage("Unknown") - .build(); - } - } - - /** - * For receiving a callback when a new message has been - * received. - */ - public static interface MessagePipeCallback { - public void onMessage(SignalServiceEnvelope envelope); - } - - private static class NullMessagePipeCallback implements MessagePipeCallback { - @Override - public void onMessage(SignalServiceEnvelope envelope) {} - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageReceiver.java b/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageReceiver.java deleted file mode 100644 index 9777dea5e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageReceiver.java +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api; - -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.AttachmentCipherInputStream; -import org.whispersystems.signalservice.api.crypto.ProfileCipherInputStream; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment.ProgressListener; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest; -import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.api.util.SleepTimer; -import org.whispersystems.signalservice.api.websocket.ConnectivityListener; -import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; -import org.whispersystems.signalservice.internal.push.PushServiceSocket; -import org.whispersystems.signalservice.internal.push.SignalServiceEnvelopeEntity; -import org.whispersystems.signalservice.internal.sticker.StickerProtos; -import org.whispersystems.signalservice.internal.util.StaticCredentialsProvider; -import org.whispersystems.signalservice.internal.util.Util; -import org.whispersystems.signalservice.internal.websocket.WebSocketConnection; -import org.whispersystems.signalservice.loki.utilities.DownloadUtilities; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -/** - * The primary interface for receiving Signal Service messages. - * - * @author Moxie Marlinspike - */ -@SuppressWarnings("OptionalUsedAsFieldOrParameterType") -public class SignalServiceMessageReceiver { - - private final PushServiceSocket socket; - private final SignalServiceConfiguration urls; - private final CredentialsProvider credentialsProvider; - private final String userAgent; - private final ConnectivityListener connectivityListener; - private final SleepTimer sleepTimer; - - /** - * Construct a SignalServiceMessageReceiver. - * - * @param urls The URL of the Signal Service. - * @param user The Signal Service username (eg. phone number). - * @param password The Signal Service user password. - * @param signalingKey The 52 byte signaling key assigned to this user at registration. - */ - public SignalServiceMessageReceiver(SignalServiceConfiguration urls, - String user, String password, - String signalingKey, String userAgent, - ConnectivityListener listener, - SleepTimer timer) - { - this(urls, new StaticCredentialsProvider(user, password, signalingKey), userAgent, listener, timer); - } - - /** - * Construct a SignalServiceMessageReceiver. - * - * @param urls The URL of the Signal Service. - * @param credentials The Signal Service user's credentials. - */ - public SignalServiceMessageReceiver(SignalServiceConfiguration urls, - CredentialsProvider credentials, - String userAgent, - ConnectivityListener listener, - SleepTimer timer) - { - this.urls = urls; - this.credentialsProvider = credentials; - this.socket = new PushServiceSocket(urls, credentials, userAgent); - this.userAgent = userAgent; - this.connectivityListener = listener; - this.sleepTimer = timer; - } - - /** - * Retrieves a SignalServiceAttachment. - * - * @param pointer The {@link SignalServiceAttachmentPointer} - * received in a {@link SignalServiceDataMessage}. - * @param destination The download destination for this attachment. - * - * @return An InputStream that streams the plaintext attachment contents. - * @throws IOException - * @throws InvalidMessageException - */ - public InputStream retrieveAttachment(SignalServiceAttachmentPointer pointer, File destination, int maxSizeBytes) - throws IOException, InvalidMessageException - { - return retrieveAttachment(pointer, destination, maxSizeBytes, null); - } - - public SignalServiceProfile retrieveProfile(SignalServiceAddress address, Optional unidentifiedAccess) - throws IOException - { - return socket.retrieveProfile(address, unidentifiedAccess); - } - - public InputStream retrieveProfileAvatar(String path, File destination, byte[] profileKey, int maxSizeBytes) - throws IOException - { - DownloadUtilities.INSTANCE.downloadFile(destination, path, maxSizeBytes, null); - return new ProfileCipherInputStream(new FileInputStream(destination), profileKey); - } - - /** - * Retrieves a SignalServiceAttachment. - * - * @param pointer The {@link SignalServiceAttachmentPointer} - * received in a {@link SignalServiceDataMessage}. - * @param destination The download destination for this attachment. - * @param listener An optional listener (may be null) to receive callbacks on download progress. - * - * @return An InputStream that streams the plaintext attachment contents. - * @throws IOException - * @throws InvalidMessageException - */ - public InputStream retrieveAttachment(SignalServiceAttachmentPointer pointer, File destination, int maxSizeBytes, ProgressListener listener) - throws IOException, InvalidMessageException - { - // Loki - Fetch attachment - if (pointer.getUrl().isEmpty()) throw new InvalidMessageException("Missing attachment URL."); - DownloadUtilities.INSTANCE.downloadFile(destination, pointer.getUrl(), maxSizeBytes, listener); - - // Loki - Assume we're retrieving an attachment for an open group server if the digest is not set - if (!pointer.getDigest().isPresent()) { return new FileInputStream(destination); } - - return AttachmentCipherInputStream.createForAttachment(destination, pointer.getSize().or(0), pointer.getKey(), pointer.getDigest().get()); - } - - public InputStream retrieveSticker(byte[] packId, byte[] packKey, int stickerId) - throws IOException, InvalidMessageException - { - byte[] data = socket.retrieveSticker(packId, stickerId); - return AttachmentCipherInputStream.createForStickerData(data, packKey); - } - - /** - * Retrieves a {@link SignalServiceStickerManifest}. - * - * @param packId The 16-byte packId that identifies the sticker pack. - * @param packKey The 32-byte packKey that decrypts the sticker pack. - * @return The {@link SignalServiceStickerManifest} representing the sticker pack. - * @throws IOException - * @throws InvalidMessageException - */ - public SignalServiceStickerManifest retrieveStickerManifest(byte[] packId, byte[] packKey) - throws IOException, InvalidMessageException - { - byte[] manifestBytes = socket.retrieveStickerManifest(packId); - - InputStream cipherStream = AttachmentCipherInputStream.createForStickerData(manifestBytes, packKey); - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - - Util.copy(cipherStream, outputStream); - - StickerProtos.Pack pack = StickerProtos.Pack.parseFrom(outputStream.toByteArray()); - List stickers = new ArrayList(pack.getStickersCount()); - SignalServiceStickerManifest.StickerInfo cover = pack.hasCover() ? new SignalServiceStickerManifest.StickerInfo(pack.getCover().getId(), pack.getCover().getEmoji()) - : null; - - for (StickerProtos.Pack.Sticker sticker : pack.getStickersList()) { - stickers.add(new SignalServiceStickerManifest.StickerInfo(sticker.getId(), sticker.getEmoji())); - } - - return new SignalServiceStickerManifest(pack.getTitle(), pack.getAuthor(), cover, stickers); - } - - /** - * Creates a pipe for receiving SignalService messages. - * - * Callers must call {@link SignalServiceMessagePipe#shutdown()} when finished with the pipe. - * - * @return A SignalServiceMessagePipe for receiving Signal Service messages. - */ - public SignalServiceMessagePipe createMessagePipe() { - WebSocketConnection webSocket = new WebSocketConnection(urls.getSignalServiceUrls()[0].getUrl(), - urls.getSignalServiceUrls()[0].getTrustStore(), - Optional.of(credentialsProvider), userAgent, connectivityListener, - sleepTimer); - - return new SignalServiceMessagePipe(webSocket, Optional.of(credentialsProvider)); - } - - public SignalServiceMessagePipe createUnidentifiedMessagePipe() { - WebSocketConnection webSocket = new WebSocketConnection(urls.getSignalServiceUrls()[0].getUrl(), - urls.getSignalServiceUrls()[0].getTrustStore(), - Optional.absent(), userAgent, connectivityListener, - sleepTimer); - - return new SignalServiceMessagePipe(webSocket, Optional.of(credentialsProvider)); - } - - public List retrieveMessages() throws IOException { - return retrieveMessages(new NullMessageReceivedCallback()); - } - - public List retrieveMessages(MessageReceivedCallback callback) - throws IOException - { - List results = new LinkedList(); - List entities = socket.getMessages(); - - for (SignalServiceEnvelopeEntity entity : entities) { - SignalServiceEnvelope envelope; - - if (entity.getSource() != null && entity.getSourceDevice() > 0) { - envelope = new SignalServiceEnvelope(entity.getType(), entity.getSource(), - entity.getSourceDevice(), entity.getTimestamp(), - entity.getMessage(), entity.getContent(), - entity.getServerTimestamp(), entity.getServerUuid()); - } else { - envelope = new SignalServiceEnvelope(entity.getType(), entity.getTimestamp(), - entity.getMessage(), entity.getContent(), - entity.getServerTimestamp(), entity.getServerUuid()); - } - - callback.onMessage(envelope); - results.add(envelope); - - if (envelope.hasUuid()) socket.acknowledgeMessage(envelope.getUuid()); - else socket.acknowledgeMessage(entity.getSource(), entity.getTimestamp()); - } - - return results; - } - - - public interface MessageReceivedCallback { - public void onMessage(SignalServiceEnvelope envelope); - } - - public static class NullMessageReceivedCallback implements MessageReceivedCallback { - @Override - public void onMessage(SignalServiceEnvelope envelope) {} - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java deleted file mode 100644 index 7138d8316..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ /dev/null @@ -1,1492 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.signalservice.api; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.jetbrains.annotations.Nullable; -import org.signal.libsignal.metadata.SealedSessionCipher; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.SessionBuilder; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.loki.FallbackMessage; -import org.whispersystems.libsignal.loki.FallbackSessionCipher; -import org.whispersystems.libsignal.loki.SessionResetProtocol; -import org.whispersystems.libsignal.state.PreKeyBundle; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream; -import org.whispersystems.signalservice.api.crypto.SignalServiceCipher; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.messages.SendMessageResult; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage; -import org.whispersystems.signalservice.api.messages.calls.AnswerMessage; -import org.whispersystems.signalservice.api.messages.calls.IceUpdateMessage; -import org.whispersystems.signalservice.api.messages.calls.OfferMessage; -import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage; -import org.whispersystems.signalservice.api.messages.multidevice.BlockedListMessage; -import org.whispersystems.signalservice.api.messages.multidevice.ConfigurationMessage; -import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.messages.multidevice.StickerPackOperationMessage; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; -import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; -import org.whispersystems.signalservice.internal.crypto.PaddingInputStream; -import org.whispersystems.signalservice.internal.push.OutgoingPushMessage; -import org.whispersystems.signalservice.internal.push.OutgoingPushMessageList; -import org.whispersystems.signalservice.internal.push.PushAttachmentData; -import org.whispersystems.signalservice.internal.push.PushServiceSocket; -import org.whispersystems.signalservice.internal.push.PushTransportDetails; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage; -import org.whispersystems.signalservice.internal.push.http.AttachmentCipherOutputStreamFactory; -import org.whispersystems.signalservice.internal.push.http.OutputStreamFactory; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.internal.util.StaticCredentialsProvider; -import org.whispersystems.signalservice.internal.util.Util; -import org.whispersystems.signalservice.internal.util.concurrent.SettableFuture; -import org.whispersystems.signalservice.loki.api.LokiDotNetAPI; -import org.whispersystems.signalservice.loki.api.PushNotificationAPI; -import org.whispersystems.signalservice.loki.api.SignalMessageInfo; -import org.whispersystems.signalservice.loki.api.SnodeAPI; -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatAPI; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChatMessage; -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol; -import org.whispersystems.signalservice.loki.database.LokiMessageDatabaseProtocol; -import org.whispersystems.signalservice.loki.database.LokiOpenGroupDatabaseProtocol; -import org.whispersystems.signalservice.loki.database.LokiPreKeyBundleDatabaseProtocol; -import org.whispersystems.signalservice.loki.database.LokiThreadDatabaseProtocol; -import org.whispersystems.signalservice.loki.database.LokiUserDatabaseProtocol; -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysDatabaseProtocol; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.SessionManagementProtocol; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol; -import org.whispersystems.signalservice.loki.protocol.shelved.syncmessages.SyncMessagesProtocol; -import org.whispersystems.signalservice.loki.utilities.Broadcaster; -import org.whispersystems.signalservice.loki.utilities.PlaintextOutputStreamFactory; - -import java.io.IOException; -import java.io.InputStream; -import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - -import kotlin.Unit; -import kotlin.jvm.functions.Function1; -import nl.komponents.kovenant.Promise; - -import static org.whispersystems.libsignal.SessionCipher.SESSION_LOCK; - -/** - * The main interface for sending Signal Service messages. - * - * @author Moxie Marlinspike - */ -public class SignalServiceMessageSender { - - private static final String TAG = SignalServiceMessageSender.class.getSimpleName(); - - private final PushServiceSocket socket; - private final SignalProtocolStore store; - private final SignalServiceAddress localAddress; - private final Optional eventListener; - - private final AtomicReference> pipe; - private final AtomicReference> unidentifiedPipe; - private final AtomicBoolean isMultiDevice; - - // Loki - private final String userPublicKey; - private final LokiAPIDatabaseProtocol apiDatabase; - private final SharedSenderKeysDatabaseProtocol sskDatabase; - private final LokiThreadDatabaseProtocol threadDatabase; - private final LokiMessageDatabaseProtocol messageDatabase; - private final LokiPreKeyBundleDatabaseProtocol preKeyBundleDatabase; - private final SessionResetProtocol sessionResetImpl; - private final LokiUserDatabaseProtocol userDatabase; - private final LokiOpenGroupDatabaseProtocol openGroupDatabase; - private final Broadcaster broadcaster; - - /** - * Construct a SignalServiceMessageSender. - * - * @param urls The URL of the Signal Service. - * @param user The Signal Service username (eg phone number). - * @param password The Signal Service user password. - * @param store The SignalProtocolStore. - * @param eventListener An optional event listener, which fires whenever sessions are - * setup or torn down for a recipient. - */ - public SignalServiceMessageSender(SignalServiceConfiguration urls, - String user, String password, - SignalProtocolStore store, - String userAgent, - boolean isMultiDevice, - Optional pipe, - Optional unidentifiedPipe, - Optional eventListener, - String userPublicKey, - LokiAPIDatabaseProtocol apiDatabase, - SharedSenderKeysDatabaseProtocol sskDatabase, - LokiThreadDatabaseProtocol threadDatabase, - LokiMessageDatabaseProtocol messageDatabase, - LokiPreKeyBundleDatabaseProtocol preKeyBundleDatabase, - SessionResetProtocol sessionResetImpl, - LokiUserDatabaseProtocol userDatabase, - LokiOpenGroupDatabaseProtocol openGroupDatabase, - Broadcaster broadcaster) - { - this(urls, new StaticCredentialsProvider(user, password, null), store, userAgent, isMultiDevice, pipe, unidentifiedPipe, eventListener, userPublicKey, apiDatabase, sskDatabase, threadDatabase, messageDatabase, preKeyBundleDatabase, sessionResetImpl, userDatabase, openGroupDatabase, broadcaster); - } - - public SignalServiceMessageSender(SignalServiceConfiguration urls, - CredentialsProvider credentialsProvider, - SignalProtocolStore store, - String userAgent, - boolean isMultiDevice, - Optional pipe, - Optional unidentifiedPipe, - Optional eventListener, - String userPublicKey, - LokiAPIDatabaseProtocol apiDatabase, - SharedSenderKeysDatabaseProtocol sskDatabase, - LokiThreadDatabaseProtocol threadDatabase, - LokiMessageDatabaseProtocol messageDatabase, - LokiPreKeyBundleDatabaseProtocol preKeyBundleDatabase, - SessionResetProtocol sessionResetImpl, - LokiUserDatabaseProtocol userDatabase, - LokiOpenGroupDatabaseProtocol openGroupDatabase, - Broadcaster broadcaster) - { - this.socket = new PushServiceSocket(urls, credentialsProvider, userAgent); - this.store = store; - this.localAddress = new SignalServiceAddress(credentialsProvider.getUser()); - this.pipe = new AtomicReference<>(pipe); - this.unidentifiedPipe = new AtomicReference<>(unidentifiedPipe); - this.isMultiDevice = new AtomicBoolean(isMultiDevice); - this.eventListener = eventListener; - this.userPublicKey = userPublicKey; - this.apiDatabase = apiDatabase; - this.sskDatabase = sskDatabase; - this.threadDatabase = threadDatabase; - this.messageDatabase = messageDatabase; - this.preKeyBundleDatabase = preKeyBundleDatabase; - this.sessionResetImpl = sessionResetImpl; - this.userDatabase = userDatabase; - this.openGroupDatabase = openGroupDatabase; - this.broadcaster = broadcaster; - } - - /** - * Send a read receipt for a received message. - * - * @param recipient The sender of the received message you're acknowledging. - * @param message The read receipt to deliver. - * @throws IOException - * @throws UntrustedIdentityException - */ - public void sendReceipt(SignalServiceAddress recipient, - Optional unidentifiedAccess, - SignalServiceReceiptMessage message) - throws IOException, UntrustedIdentityException - { - byte[] content = createReceiptContent(message); - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(message, recipient.getNumber(), store); - sendMessage(recipient, getTargetUnidentifiedAccess(unidentifiedAccess), message.getWhen(), content, false, message.getTTL(), useFallbackEncryption, false); - } - - /** - * Send a typing indicator. - * - * @param recipient The destination - * @param message The typing indicator to deliver - * @throws IOException - * @throws UntrustedIdentityException - */ - public void sendTyping(SignalServiceAddress recipient, - Optional unidentifiedAccess, - SignalServiceTypingMessage message) - throws IOException, UntrustedIdentityException - { - byte[] content = createTypingContent(message); - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(message, recipient.getNumber(), store); - sendMessage(recipient, getTargetUnidentifiedAccess(unidentifiedAccess), message.getTimestamp(), content, true, message.getTTL(), useFallbackEncryption, false); - } - - public void sendTyping(List recipients, - List> unidentifiedAccess, - SignalServiceTypingMessage message) - throws IOException - { - byte[] content = createTypingContent(message); - sendMessage(0, recipients, getTargetUnidentifiedAccess(unidentifiedAccess), message.getTimestamp(), content, true, message.getTTL(), false, false); - } - - /** - * Send a call setup message to a single recipient. - * - * @param recipient The message's destination. - * @param message The call message. - * @throws IOException - */ - public void sendCallMessage(SignalServiceAddress recipient, - Optional unidentifiedAccess, - SignalServiceCallMessage message) - throws IOException, UntrustedIdentityException - { - byte[] content = createCallContent(message); - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(message, recipient.getNumber(), store); - sendMessage(recipient, getTargetUnidentifiedAccess(unidentifiedAccess), System.currentTimeMillis(), content, false, message.getTTL(), useFallbackEncryption, false); - } - - /** - * Send a message to a single recipient. - * - * @param recipient The message's destination. - * @param message The message. - * @throws UntrustedIdentityException - * @throws IOException - */ - public SendMessageResult sendMessage(long messageID, - SignalServiceAddress recipient, - Optional unidentifiedAccess, - SignalServiceDataMessage message) - throws UntrustedIdentityException, IOException - { - byte[] content = createMessageContent(message, recipient); - long timestamp = message.getTimestamp(); - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(message, recipient.getNumber(), store); - boolean isClosedGroup = message.group.isPresent() && message.group.get().getGroupType() == SignalServiceGroup.GroupType.SIGNAL; - SendMessageResult result = sendMessage(messageID, recipient, getTargetUnidentifiedAccess(unidentifiedAccess), timestamp, content, false, message.getTTL(), message.getDeviceLink().isPresent(), useFallbackEncryption, isClosedGroup, false, message.hasVisibleContent()); - - // Loki - This shouldn't get invoked for note to self - boolean wouldSignalSendSyncMessage = (result.getSuccess() != null && result.getSuccess().isNeedsSync()) || unidentifiedAccess.isPresent(); - if (wouldSignalSendSyncMessage && SyncMessagesProtocol.shared.shouldSyncMessage(message)) { - byte[] syncMessage = createMultiDeviceSentTranscriptContent(content, Optional.of(recipient), timestamp, Collections.singletonList(result)); - // Loki - Customize multi device logic - Set linkedDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); - for (String device : linkedDevices) { - SignalServiceAddress deviceAsAddress = new SignalServiceAddress(device); - boolean useFallbackEncryptionForSyncMessage = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(syncMessage, device, store); - sendMessage(deviceAsAddress, Optional.absent(), timestamp, syncMessage, false, message.getTTL(), useFallbackEncryptionForSyncMessage, true); - } - } - - // Loki - Start a session reset if needed - if (message.isEndSession()) { - SessionManagementProtocol.shared.setSessionResetStatusToInProgressIfNeeded(recipient, eventListener); - } - - return result; - } - - /** - * Send a message to a group. - * - * @param recipients The group members. - * @param message The group message. - * @throws IOException - */ - public List sendMessage(long messageID, - List recipients, - List> unidentifiedAccess, - SignalServiceDataMessage message) - throws IOException, UntrustedIdentityException - { - // Loki - We only need the first recipient in the line below. This is because the recipient is only used to determine - // whether an attachment is being sent to an open group or not. - byte[] content = createMessageContent(message, recipients.get(0)); - long timestamp = message.getTimestamp(); - boolean isClosedGroup = message.group.isPresent() && message.group.get().getGroupType() == SignalServiceGroup.GroupType.SIGNAL; - List results = sendMessage(messageID, recipients, getTargetUnidentifiedAccess(unidentifiedAccess), timestamp, content, false, message.getTTL(), isClosedGroup, message.hasVisibleContent()); - boolean needsSyncInResults = false; - - for (SendMessageResult result : results) { - if (result.getSuccess() != null && result.getSuccess().isNeedsSync()) { - needsSyncInResults = true; - break; - } - } - - // Loki - This shouldn't get invoked for note to self - if (needsSyncInResults && SyncMessagesProtocol.shared.shouldSyncMessage(message)) { - byte[] syncMessage = createMultiDeviceSentTranscriptContent(content, Optional.absent(), timestamp, results); - // Loki - Customize multi device logic - Set linkedDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); - for (String device : linkedDevices) { - SignalServiceAddress deviceAsAddress = new SignalServiceAddress(device); - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(syncMessage, device, store); - sendMessage(deviceAsAddress, Optional.absent(), timestamp, syncMessage, false, message.getTTL(), useFallbackEncryption, true); - } - } - - return results; - } - - public void sendMessage(SignalServiceSyncMessage message, Optional unidentifiedAccess) - throws IOException, UntrustedIdentityException - { - byte[] content; - long timestamp = System.currentTimeMillis(); - - if (message.getContacts().isPresent()) { - content = createMultiDeviceContactsContent(message.getContacts().get().getContactsStream().asStream(), message.getContacts().get().isComplete()); - } else if (message.getGroups().isPresent()) { - content = createMultiDeviceGroupsContent(message.getGroups().get().asStream()); - } else if (message.getOpenGroups().isPresent()) { - content = createMultiDeviceOpenGroupsContent(message.getOpenGroups().get()); - } else if (message.getRead().isPresent()) { - content = createMultiDeviceReadContent(message.getRead().get()); - } else if (message.getBlockedList().isPresent()) { - content = createMultiDeviceBlockedContent(message.getBlockedList().get()); - } else if (message.getConfiguration().isPresent()) { - content = createMultiDeviceConfigurationContent(message.getConfiguration().get()); - } else if (message.getSent().isPresent()) { - content = createMultiDeviceSentTranscriptContent(message.getSent().get(), unidentifiedAccess); - timestamp = message.getSent().get().getTimestamp(); - } else if (message.getStickerPackOperations().isPresent()) { - content = createMultiDeviceStickerPackOperationContent(message.getStickerPackOperations().get()); - } else if (message.getVerified().isPresent()) { - sendMessage(message.getVerified().get(), unidentifiedAccess); - return; - } else { - throw new IOException("Unsupported sync message!"); - } - - // Loki - Customize multi device logic - Set linkedDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); - for (String device : linkedDevices) { - SignalServiceAddress deviceAsAddress = new SignalServiceAddress(device); - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(message, device, store); - sendMessageToPrivateChat(0, deviceAsAddress, Optional.absent(), timestamp, content, false, message.getTTL(), useFallbackEncryption, false, false); - } - } - - public void setSoTimeoutMillis(long soTimeoutMillis) { - socket.setSoTimeoutMillis(soTimeoutMillis); - } - - public void cancelInFlightRequests() { - socket.cancelInFlightRequests(); - } - - public void setMessagePipe(SignalServiceMessagePipe pipe, SignalServiceMessagePipe unidentifiedPipe) { - this.pipe.set(Optional.fromNullable(pipe)); - this.unidentifiedPipe.set(Optional.fromNullable(unidentifiedPipe)); - } - - public void setIsMultiDevice(boolean isMultiDevice) { - this.isMultiDevice.set(isMultiDevice); - } - - public SignalServiceAttachmentPointer uploadAttachment(SignalServiceAttachmentStream attachment, boolean usePadding, @Nullable SignalServiceAddress recipient) - throws IOException - { - boolean shouldEncrypt = true; - String server = FileServerAPI.shared.getServer(); - - // Loki - Check if we are sending to an open group - if (recipient != null) { - long threadID = threadDatabase.getThreadID(recipient.getNumber()); - PublicChat publicChat = threadDatabase.getPublicChat(threadID); - if (publicChat != null) { - shouldEncrypt = false; - server = publicChat.getServer(); - } - } - - byte[] attachmentKey = Util.getSecretBytes(64); - long paddedLength = usePadding ? PaddingInputStream.getPaddedSize(attachment.getLength()) : attachment.getLength(); - InputStream dataStream = usePadding ? new PaddingInputStream(attachment.getInputStream(), attachment.getLength()) : attachment.getInputStream(); - long ciphertextLength = shouldEncrypt ? AttachmentCipherOutputStream.getCiphertextLength(paddedLength) : attachment.getLength(); - - OutputStreamFactory outputStreamFactory = shouldEncrypt ? new AttachmentCipherOutputStreamFactory(attachmentKey) : new PlaintextOutputStreamFactory(); - PushAttachmentData attachmentData = new PushAttachmentData(attachment.getContentType(), dataStream, ciphertextLength, outputStreamFactory, attachment.getListener()); - - // Loki - Upload attachment - LokiDotNetAPI.UploadResult result = FileServerAPI.shared.uploadAttachment(server, attachmentData); - return new SignalServiceAttachmentPointer(result.getId(), - attachment.getContentType(), - attachmentKey, - Optional.of(Util.toIntExact(attachment.getLength())), - attachment.getPreview(), - attachment.getWidth(), attachment.getHeight(), - Optional.fromNullable(result.getDigest()), - attachment.getFileName(), - attachment.getVoiceNote(), - attachment.getCaption(), - result.getUrl()); - } - - private void sendMessage(VerifiedMessage message, Optional unidentifiedAccess) - throws IOException, UntrustedIdentityException - { - - } - - private byte[] createTypingContent(SignalServiceTypingMessage message) { - Content.Builder container = Content.newBuilder(); - TypingMessage.Builder builder = TypingMessage.newBuilder(); - - builder.setTimestamp(message.getTimestamp()); - - if (message.isTypingStarted()) builder.setAction(TypingMessage.Action.STARTED); - else if (message.isTypingStopped()) builder.setAction(TypingMessage.Action.STOPPED); - else throw new IllegalArgumentException("Unknown typing indicator"); - - if (message.getGroupId().isPresent()) { - builder.setGroupId(ByteString.copyFrom(message.getGroupId().get())); - } - - return container.setTypingMessage(builder).build().toByteArray(); - } - - private byte[] createReceiptContent(SignalServiceReceiptMessage message) { - Content.Builder container = Content.newBuilder(); - ReceiptMessage.Builder builder = ReceiptMessage.newBuilder(); - - for (long timestamp : message.getTimestamps()) { - builder.addTimestamp(timestamp); - } - - if (message.isDeliveryReceipt()) builder.setType(ReceiptMessage.Type.DELIVERY); - else if (message.isReadReceipt()) builder.setType(ReceiptMessage.Type.READ); - - return container.setReceiptMessage(builder).build().toByteArray(); - } - - private byte[] createMessageContent(SignalServiceDataMessage message, SignalServiceAddress recipient) - throws IOException - { - Content.Builder container = Content.newBuilder(); - - if (message.getPreKeyBundle().isPresent()) { - PreKeyBundle preKeyBundle = message.getPreKeyBundle().get(); - PreKeyBundleMessage.Builder preKeyBundleMessageBuilder = PreKeyBundleMessage.newBuilder() - .setDeviceId(preKeyBundle.getDeviceId()) - .setIdentityKey(ByteString.copyFrom(preKeyBundle.getIdentityKey().serialize())) - .setPreKeyId(preKeyBundle.getPreKeyId()) - .setPreKey(ByteString.copyFrom(preKeyBundle.getPreKey().serialize())) - .setSignedKeyId(preKeyBundle.getSignedPreKeyId()) - .setSignedKey(ByteString.copyFrom(preKeyBundle.getSignedPreKey().serialize())) - .setSignature(ByteString.copyFrom(preKeyBundle.getSignedPreKeySignature())) - .setIdentityKey(ByteString.copyFrom(preKeyBundle.getIdentityKey().serialize())); - container.setPreKeyBundleMessage(preKeyBundleMessageBuilder); - } - - if (message.getDeviceLink().isPresent()) { - DeviceLink deviceLink = message.getDeviceLink().get(); - SignalServiceProtos.DeviceLinkMessage.Builder deviceLinkMessageBuilder = SignalServiceProtos.DeviceLinkMessage.newBuilder() - .setPrimaryPublicKey(deviceLink.getMasterPublicKey()) - .setSecondaryPublicKey(deviceLink.getSlavePublicKey()) - .setRequestSignature(ByteString.copyFrom(Objects.requireNonNull(deviceLink.getRequestSignature()))); - if (deviceLink.getAuthorizationSignature() != null) { - deviceLinkMessageBuilder.setAuthorizationSignature(ByteString.copyFrom(deviceLink.getAuthorizationSignature())); - } - container.setDeviceLinkMessage(deviceLinkMessageBuilder.build()); - } - - DataMessage.Builder builder = DataMessage.newBuilder(); - List pointers = createAttachmentPointers(message.getAttachments(), recipient); - - if (!pointers.isEmpty()) { - builder.addAllAttachments(pointers); - } - - if (message.getBody().isPresent()) { - builder.setBody(message.getBody().get()); - } - - if (message.getGroupInfo().isPresent()) { - builder.setGroup(createGroupContent(message.getGroupInfo().get(), recipient)); - } - - if (message.isEndSession()) { - builder.setFlags(DataMessage.Flags.END_SESSION_VALUE); - } - - if (message.isExpirationUpdate()) { - builder.setFlags(DataMessage.Flags.EXPIRATION_TIMER_UPDATE_VALUE); - } - - if (message.isProfileKeyUpdate()) { - builder.setFlags(DataMessage.Flags.PROFILE_KEY_UPDATE_VALUE); - } - - if (message.isDeviceUnlinkingRequest()) { - builder.setFlags(DataMessage.Flags.DEVICE_UNLINKING_REQUEST_VALUE); - } - - if (message.getExpiresInSeconds() > 0) { - builder.setExpireTimer(message.getExpiresInSeconds()); - } - - if (message.getProfileKey().isPresent()) { - builder.setProfileKey(ByteString.copyFrom(message.getProfileKey().get())); - } - - if (message.getQuote().isPresent()) { - DataMessage.Quote.Builder quoteBuilder = DataMessage.Quote.newBuilder() - .setId(message.getQuote().get().getId()) - .setAuthor(message.getQuote().get().getAuthor().getNumber()) - .setText(message.getQuote().get().getText()); - - for (SignalServiceDataMessage.Quote.QuotedAttachment attachment : message.getQuote().get().getAttachments()) { - DataMessage.Quote.QuotedAttachment.Builder quotedAttachment = DataMessage.Quote.QuotedAttachment.newBuilder(); - - quotedAttachment.setContentType(attachment.getContentType()); - - if (attachment.getFileName() != null) { - quotedAttachment.setFileName(attachment.getFileName()); - } - - if (attachment.getThumbnail() != null) { - quotedAttachment.setThumbnail(createAttachmentPointer(attachment.getThumbnail().asStream(), recipient)); - } - - quoteBuilder.addAttachments(quotedAttachment); - } - - builder.setQuote(quoteBuilder); - } - - if (message.getSharedContacts().isPresent()) { - builder.addAllContact(createSharedContactContent(message.getSharedContacts().get(), recipient)); - } - - if (message.getPreviews().isPresent()) { - for (SignalServiceDataMessage.Preview preview : message.getPreviews().get()) { - DataMessage.Preview.Builder previewBuilder = DataMessage.Preview.newBuilder(); - previewBuilder.setTitle(preview.getTitle()); - previewBuilder.setUrl(preview.getUrl()); - - if (preview.getImage().isPresent()) { - if (preview.getImage().get().isStream()) { - previewBuilder.setImage(createAttachmentPointer(preview.getImage().get().asStream(), recipient)); - } else { - previewBuilder.setImage(createAttachmentPointer(preview.getImage().get().asPointer())); - } - } - - builder.addPreview(previewBuilder.build()); - } - } - - if (message.getSticker().isPresent()) { - DataMessage.Sticker.Builder stickerBuilder = DataMessage.Sticker.newBuilder(); - - stickerBuilder.setPackId(ByteString.copyFrom(message.getSticker().get().getPackId())); - stickerBuilder.setPackKey(ByteString.copyFrom(message.getSticker().get().getPackKey())); - stickerBuilder.setStickerId(message.getSticker().get().getStickerId()); - - if (message.getSticker().get().getAttachment().isStream()) { - stickerBuilder.setData(createAttachmentPointer(message.getSticker().get().getAttachment().asStream(), true, recipient)); - } else { - stickerBuilder.setData(createAttachmentPointer(message.getSticker().get().getAttachment().asPointer())); - } - - builder.setSticker(stickerBuilder.build()); - } - - LokiUserProfile.Builder lokiUserProfileBuilder = LokiUserProfile.newBuilder(); - String displayName = userDatabase.getDisplayName(userPublicKey); - if (displayName != null) { lokiUserProfileBuilder.setDisplayName(displayName); } - String profilePictureURL = userDatabase.getProfilePictureURL(userPublicKey); - if (profilePictureURL != null) { lokiUserProfileBuilder.setProfilePictureURL(profilePictureURL); } - builder.setProfile(lokiUserProfileBuilder.build()); - - builder.setTimestamp(message.getTimestamp()); - - container.setDataMessage(builder); - - return container.build().toByteArray(); - } - - private byte[] createCallContent(SignalServiceCallMessage callMessage) { - Content.Builder container = Content.newBuilder(); - CallMessage.Builder builder = CallMessage.newBuilder(); - - if (callMessage.getOfferMessage().isPresent()) { - OfferMessage offer = callMessage.getOfferMessage().get(); - builder.setOffer(CallMessage.Offer.newBuilder() - .setId(offer.getId()) - .setDescription(offer.getDescription())); - } else if (callMessage.getAnswerMessage().isPresent()) { - AnswerMessage answer = callMessage.getAnswerMessage().get(); - builder.setAnswer(CallMessage.Answer.newBuilder() - .setId(answer.getId()) - .setDescription(answer.getDescription())); - } else if (callMessage.getIceUpdateMessages().isPresent()) { - List updates = callMessage.getIceUpdateMessages().get(); - - for (IceUpdateMessage update : updates) { - builder.addIceUpdate(CallMessage.IceUpdate.newBuilder() - .setId(update.getId()) - .setSdp(update.getSdp()) - .setSdpMid(update.getSdpMid()) - .setSdpMLineIndex(update.getSdpMLineIndex())); - } - } else if (callMessage.getHangupMessage().isPresent()) { - builder.setHangup(CallMessage.Hangup.newBuilder().setId(callMessage.getHangupMessage().get().getId())); - } else if (callMessage.getBusyMessage().isPresent()) { - builder.setBusy(CallMessage.Busy.newBuilder().setId(callMessage.getBusyMessage().get().getId())); - } - - container.setCallMessage(builder); - return container.build().toByteArray(); - } - - private byte[] createMultiDeviceContactsContent(SignalServiceAttachmentStream contacts, boolean complete) - throws IOException - { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder builder = createSyncMessageBuilder(); - builder.setContacts(SyncMessage.Contacts.newBuilder() - .setData(ByteString.readFrom(contacts.getInputStream())) - .setComplete(complete)); - - return container.setSyncMessage(builder).build().toByteArray(); - } - - private byte[] createMultiDeviceGroupsContent(SignalServiceAttachmentStream groups) - throws IOException - { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder builder = createSyncMessageBuilder(); - builder.setGroups(SyncMessage.Groups.newBuilder() - .setData(ByteString.readFrom(groups.getInputStream()))); - - return container.setSyncMessage(builder).build().toByteArray(); - } - - private byte[] createMultiDeviceOpenGroupsContent(List openGroups) - throws IOException - { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder builder = createSyncMessageBuilder(); - for (PublicChat openGroup : openGroups) { - String url = openGroup.getServer(); - int channel = Long.valueOf(openGroup.getChannel()).intValue(); - SyncMessage.OpenGroupDetails details = SyncMessage.OpenGroupDetails.newBuilder() - .setUrl(url) - .setChannelID(channel) - .build(); - builder.addOpenGroups(details); - } - - return container.setSyncMessage(builder).build().toByteArray(); - } - - private byte[] createMultiDeviceSentTranscriptContent(SentTranscriptMessage transcript, Optional unidentifiedAccess) - throws IOException - { - SignalServiceAddress address = new SignalServiceAddress(transcript.getDestination().get()); - SendMessageResult result = SendMessageResult.success(address, unidentifiedAccess.isPresent(), true); - - return createMultiDeviceSentTranscriptContent(createMessageContent(transcript.getMessage(), address), - Optional.of(address), - transcript.getTimestamp(), - Collections.singletonList(result)); - } - - private byte[] createMultiDeviceSentTranscriptContent(byte[] content, Optional recipient, - long timestamp, List sendMessageResults) - { - try { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder syncMessage = createSyncMessageBuilder(); - SyncMessage.Sent.Builder sentMessage = SyncMessage.Sent.newBuilder(); - DataMessage dataMessage = Content.parseFrom(content).getDataMessage(); - - sentMessage.setTimestamp(timestamp); - sentMessage.setMessage(dataMessage); - - for (SendMessageResult result : sendMessageResults) { - if (result.getSuccess() != null) { - sentMessage.addUnidentifiedStatus(SyncMessage.Sent.UnidentifiedDeliveryStatus.newBuilder() - .setDestination(result.getAddress().getNumber()) - .setUnidentified(result.getSuccess().isUnidentified())); - } - } - - if (recipient.isPresent()) { - sentMessage.setDestination(recipient.get().getNumber()); - } - - if (dataMessage.getExpireTimer() > 0) { - sentMessage.setExpirationStartTimestamp(System.currentTimeMillis()); - } - - return container.setSyncMessage(syncMessage.setSent(sentMessage)).build().toByteArray(); - } catch (InvalidProtocolBufferException e) { - throw new AssertionError(e); - } - } - - private byte[] createMultiDeviceReadContent(List readMessages) { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder builder = createSyncMessageBuilder(); - - for (ReadMessage readMessage : readMessages) { - builder.addRead(SyncMessage.Read.newBuilder() - .setTimestamp(readMessage.getTimestamp()) - .setSender(readMessage.getSender())); - } - - return container.setSyncMessage(builder).build().toByteArray(); - } - - private byte[] createMultiDeviceBlockedContent(BlockedListMessage blocked) { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder syncMessage = createSyncMessageBuilder(); - SyncMessage.Blocked.Builder blockedMessage = SyncMessage.Blocked.newBuilder(); - - blockedMessage.addAllNumbers(blocked.getNumbers()); - - for (byte[] groupId : blocked.getGroupIds()) { - blockedMessage.addGroupIds(ByteString.copyFrom(groupId)); - } - - return container.setSyncMessage(syncMessage.setBlocked(blockedMessage)).build().toByteArray(); - } - - private byte[] createMultiDeviceConfigurationContent(ConfigurationMessage configuration) { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder syncMessage = createSyncMessageBuilder(); - SyncMessage.Configuration.Builder configurationMessage = SyncMessage.Configuration.newBuilder(); - - if (configuration.getReadReceipts().isPresent()) { - configurationMessage.setReadReceipts(configuration.getReadReceipts().get()); - } - - if (configuration.getUnidentifiedDeliveryIndicators().isPresent()) { - configurationMessage.setUnidentifiedDeliveryIndicators(configuration.getUnidentifiedDeliveryIndicators().get()); - } - - if (configuration.getTypingIndicators().isPresent()) { - configurationMessage.setTypingIndicators(configuration.getTypingIndicators().get()); - } - - if (configuration.getLinkPreviews().isPresent()) { - configurationMessage.setLinkPreviews(configuration.getLinkPreviews().get()); - } - - return container.setSyncMessage(syncMessage.setConfiguration(configurationMessage)).build().toByteArray(); - } - - private byte[] createMultiDeviceStickerPackOperationContent(List stickerPackOperations) { - Content.Builder container = Content.newBuilder(); - SyncMessage.Builder syncMessage = createSyncMessageBuilder(); - - for (StickerPackOperationMessage stickerPackOperation : stickerPackOperations) { - SyncMessage.StickerPackOperation.Builder builder = SyncMessage.StickerPackOperation.newBuilder(); - - if (stickerPackOperation.getPackId().isPresent()) { - builder.setPackId(ByteString.copyFrom(stickerPackOperation.getPackId().get())); - } - - if (stickerPackOperation.getPackKey().isPresent()) { - builder.setPackKey(ByteString.copyFrom(stickerPackOperation.getPackKey().get())); - } - - if (stickerPackOperation.getType().isPresent()) { - switch (stickerPackOperation.getType().get()) { - case INSTALL: builder.setType(SyncMessage.StickerPackOperation.Type.INSTALL); break; - case REMOVE: builder.setType(SyncMessage.StickerPackOperation.Type.REMOVE); break; - } - } - - syncMessage.addStickerPackOperation(builder); - } - - return container.setSyncMessage(syncMessage).build().toByteArray(); - } - - private SyncMessage.Builder createSyncMessageBuilder() { - SecureRandom random = new SecureRandom(); - byte[] padding = Util.getRandomLengthBytes(512); - random.nextBytes(padding); - - SyncMessage.Builder builder = SyncMessage.newBuilder(); - builder.setPadding(ByteString.copyFrom(padding)); - - return builder; - } - - private GroupContext createGroupContent(SignalServiceGroup group, SignalServiceAddress recipient) - throws IOException - { - GroupContext.Builder builder = GroupContext.newBuilder(); - builder.setId(ByteString.copyFrom(group.getGroupId())); - - if (group.getType() != SignalServiceGroup.Type.DELIVER) { - if (group.getType() == SignalServiceGroup.Type.UPDATE) builder.setType(GroupContext.Type.UPDATE); - else if (group.getType() == SignalServiceGroup.Type.QUIT) builder.setType(GroupContext.Type.QUIT); - else if (group.getType() == SignalServiceGroup.Type.REQUEST_INFO) builder.setType(GroupContext.Type.REQUEST_INFO); - else throw new AssertionError("Unknown type: " + group.getType()); - - if (group.getName().isPresent()) builder.setName(group.getName().get()); - if (group.getMembers().isPresent()) builder.addAllMembers(group.getMembers().get()); - if (group.getAdmins().isPresent()) builder.addAllAdmins(group.getAdmins().get()); - - if (group.getAvatar().isPresent()) { - if (group.getAvatar().get().isStream()) { - builder.setAvatar(createAttachmentPointer(group.getAvatar().get().asStream(), recipient)); - } else { - builder.setAvatar(createAttachmentPointer(group.getAvatar().get().asPointer())); - } - } - } else { - builder.setType(GroupContext.Type.DELIVER); - } - - return builder.build(); - } - - private List createSharedContactContent(List contacts, SignalServiceAddress recipient) - throws IOException - { - List results = new LinkedList<>(); - - for (SharedContact contact : contacts) { - DataMessage.Contact.Name.Builder nameBuilder = DataMessage.Contact.Name.newBuilder(); - - if (contact.getName().getFamily().isPresent()) nameBuilder.setFamilyName(contact.getName().getFamily().get()); - if (contact.getName().getGiven().isPresent()) nameBuilder.setGivenName(contact.getName().getGiven().get()); - if (contact.getName().getMiddle().isPresent()) nameBuilder.setMiddleName(contact.getName().getMiddle().get()); - if (contact.getName().getPrefix().isPresent()) nameBuilder.setPrefix(contact.getName().getPrefix().get()); - if (contact.getName().getSuffix().isPresent()) nameBuilder.setSuffix(contact.getName().getSuffix().get()); - if (contact.getName().getDisplay().isPresent()) nameBuilder.setDisplayName(contact.getName().getDisplay().get()); - - DataMessage.Contact.Builder contactBuilder = DataMessage.Contact.newBuilder() - .setName(nameBuilder); - - if (contact.getAddress().isPresent()) { - for (SharedContact.PostalAddress address : contact.getAddress().get()) { - DataMessage.Contact.PostalAddress.Builder addressBuilder = DataMessage.Contact.PostalAddress.newBuilder(); - - switch (address.getType()) { - case HOME: addressBuilder.setType(DataMessage.Contact.PostalAddress.Type.HOME); break; - case WORK: addressBuilder.setType(DataMessage.Contact.PostalAddress.Type.WORK); break; - case CUSTOM: addressBuilder.setType(DataMessage.Contact.PostalAddress.Type.CUSTOM); break; - default: throw new AssertionError("Unknown type: " + address.getType()); - } - - if (address.getCity().isPresent()) addressBuilder.setCity(address.getCity().get()); - if (address.getCountry().isPresent()) addressBuilder.setCountry(address.getCountry().get()); - if (address.getLabel().isPresent()) addressBuilder.setLabel(address.getLabel().get()); - if (address.getNeighborhood().isPresent()) addressBuilder.setNeighborhood(address.getNeighborhood().get()); - if (address.getPobox().isPresent()) addressBuilder.setPobox(address.getPobox().get()); - if (address.getPostcode().isPresent()) addressBuilder.setPostcode(address.getPostcode().get()); - if (address.getRegion().isPresent()) addressBuilder.setRegion(address.getRegion().get()); - if (address.getStreet().isPresent()) addressBuilder.setStreet(address.getStreet().get()); - - contactBuilder.addAddress(addressBuilder); - } - } - - if (contact.getEmail().isPresent()) { - for (SharedContact.Email email : contact.getEmail().get()) { - DataMessage.Contact.Email.Builder emailBuilder = DataMessage.Contact.Email.newBuilder() - .setValue(email.getValue()); - - switch (email.getType()) { - case HOME: emailBuilder.setType(DataMessage.Contact.Email.Type.HOME); break; - case WORK: emailBuilder.setType(DataMessage.Contact.Email.Type.WORK); break; - case MOBILE: emailBuilder.setType(DataMessage.Contact.Email.Type.MOBILE); break; - case CUSTOM: emailBuilder.setType(DataMessage.Contact.Email.Type.CUSTOM); break; - default: throw new AssertionError("Unknown type: " + email.getType()); - } - - if (email.getLabel().isPresent()) emailBuilder.setLabel(email.getLabel().get()); - - contactBuilder.addEmail(emailBuilder); - } - } - - if (contact.getPhone().isPresent()) { - for (SharedContact.Phone phone : contact.getPhone().get()) { - DataMessage.Contact.Phone.Builder phoneBuilder = DataMessage.Contact.Phone.newBuilder() - .setValue(phone.getValue()); - - switch (phone.getType()) { - case HOME: phoneBuilder.setType(DataMessage.Contact.Phone.Type.HOME); break; - case WORK: phoneBuilder.setType(DataMessage.Contact.Phone.Type.WORK); break; - case MOBILE: phoneBuilder.setType(DataMessage.Contact.Phone.Type.MOBILE); break; - case CUSTOM: phoneBuilder.setType(DataMessage.Contact.Phone.Type.CUSTOM); break; - default: throw new AssertionError("Unknown type: " + phone.getType()); - } - - if (phone.getLabel().isPresent()) phoneBuilder.setLabel(phone.getLabel().get()); - - contactBuilder.addNumber(phoneBuilder); - } - } - - if (contact.getAvatar().isPresent()) { - AttachmentPointer pointer = contact.getAvatar().get().getAttachment().isStream() ? createAttachmentPointer(contact.getAvatar().get().getAttachment().asStream(), recipient) - : createAttachmentPointer(contact.getAvatar().get().getAttachment().asPointer()); - contactBuilder.setAvatar(DataMessage.Contact.Avatar.newBuilder() - .setAvatar(pointer) - .setIsProfile(contact.getAvatar().get().isProfile())); - } - - if (contact.getOrganization().isPresent()) { - contactBuilder.setOrganization(contact.getOrganization().get()); - } - - results.add(contactBuilder.build()); - } - - return results; - } - - private List sendMessage(long messageID, - List recipients, - List> unidentifiedAccess, - long timestamp, - byte[] content, - boolean online, - int ttl, - boolean isClosedGroup, - boolean notifyPNServer) - throws IOException - { - List results = new LinkedList<>(); - Iterator recipientIterator = recipients.iterator(); - Iterator> unidentifiedAccessIterator = unidentifiedAccess.iterator(); - - while (recipientIterator.hasNext()) { - SignalServiceAddress recipient = recipientIterator.next(); - - try { - boolean useFallbackEncryption = SessionManagementProtocol.shared.shouldMessageUseFallbackEncryption(content, recipient.getNumber(), store); - SendMessageResult result = sendMessage(messageID, recipient, unidentifiedAccessIterator.next(), timestamp, content, online, ttl, false, useFallbackEncryption, isClosedGroup, false, notifyPNServer); - results.add(result); - } catch (UnregisteredUserException e) { - Log.w(TAG, e); - results.add(SendMessageResult.unregisteredFailure(recipient)); - } catch (PushNetworkException e) { - Log.w(TAG, e); - results.add(SendMessageResult.networkFailure(recipient)); - } - } - - return results; - } - - private SendMessageResult sendMessage(SignalServiceAddress recipient, - Optional unidentifiedAccess, - long timestamp, - byte[] content, - boolean online, - int ttl, - boolean useFallbackEncryption, - boolean isSyncMessage) - throws IOException - { - // Loki - This method is only invoked for various types of control messages - return sendMessage(0, recipient, unidentifiedAccess, timestamp, content, online, ttl, false, false, useFallbackEncryption, isSyncMessage, false); - } - - public SendMessageResult sendMessage(final long messageID, - final SignalServiceAddress recipient, - Optional unidentifiedAccess, - long timestamp, - byte[] content, - boolean online, - int ttl, - boolean isDeviceLinkMessage, - boolean useFallbackEncryption, - boolean isClosedGroup, - boolean isSyncMessage, - boolean notifyPNServer) - throws IOException - { - long threadID = threadDatabase.getThreadID(recipient.getNumber()); - PublicChat publicChat = threadDatabase.getPublicChat(threadID); - try { - if (publicChat != null) { - return sendMessageToPublicChat(messageID, recipient, timestamp, content, publicChat); - } else { - return sendMessageToPrivateChat(messageID, recipient, unidentifiedAccess, timestamp, content, online, ttl, useFallbackEncryption, isClosedGroup, notifyPNServer); - } - } catch (PushNetworkException e) { - return SendMessageResult.networkFailure(recipient); - } catch (UntrustedIdentityException e) { - return SendMessageResult.identityFailure(recipient, e.getIdentityKey()); - } - } - - private SendMessageResult sendMessageToPublicChat(final long messageID, - final SignalServiceAddress recipient, - long timestamp, - byte[] content, - PublicChat publicChat) { - if (messageID == 0) { - Log.d("Loki", "Missing message ID."); - } - final SettableFuture[] future = { new SettableFuture() }; - try { - SignalServiceProtos.DataMessage data = SignalServiceProtos.Content.parseFrom(content).getDataMessage(); - String body = (data.getBody() != null && data.getBody().length() > 0) ? data.getBody() : Long.toString(data.getTimestamp()); - PublicChatMessage.Quote quote = null; - if (data.hasQuote()) { - long quoteID = data.getQuote().getId(); - String quoteePublicKey = data.getQuote().getAuthor(); - long serverID = messageDatabase.getQuoteServerID(quoteID, quoteePublicKey); - quote = new PublicChatMessage.Quote(quoteID, quoteePublicKey, data.getQuote().getText(), serverID); - } - SignalServiceProtos.DataMessage.Preview linkPreview = (data.getPreviewList().size() > 0) ? data.getPreviewList().get(0) : null; - ArrayList attachments = new ArrayList<>(); - if (linkPreview != null && linkPreview.hasImage()) { - AttachmentPointer attachmentPointer = linkPreview.getImage(); - String caption = attachmentPointer.hasCaption() ? attachmentPointer.getCaption() : null; - attachments.add(new PublicChatMessage.Attachment( - PublicChatMessage.Attachment.Kind.LinkPreview, - publicChat.getServer(), - attachmentPointer.getId(), - attachmentPointer.getContentType(), - attachmentPointer.getSize(), - attachmentPointer.getFileName(), - attachmentPointer.getFlags(), - attachmentPointer.getWidth(), - attachmentPointer.getHeight(), - caption, - attachmentPointer.getUrl(), - linkPreview.getUrl(), - linkPreview.getTitle() - )); - } - for (AttachmentPointer attachmentPointer : data.getAttachmentsList()) { - String caption = attachmentPointer.hasCaption() ? attachmentPointer.getCaption() : null; - attachments.add(new PublicChatMessage.Attachment( - PublicChatMessage.Attachment.Kind.Attachment, - publicChat.getServer(), - attachmentPointer.getId(), - attachmentPointer.getContentType(), - attachmentPointer.getSize(), - attachmentPointer.getFileName(), - attachmentPointer.getFlags(), - attachmentPointer.getWidth(), - attachmentPointer.getHeight(), - caption, - attachmentPointer.getUrl(), - null, - null - )); - } - PublicChatMessage message = new PublicChatMessage(userPublicKey, "", body, timestamp, PublicChatAPI.getPublicChatMessageType(), quote, attachments); - byte[] privateKey = store.getIdentityKeyPair().getPrivateKey().serialize(); - new PublicChatAPI(userPublicKey, privateKey, apiDatabase, userDatabase, openGroupDatabase).sendMessage(message, publicChat.getChannel(), publicChat.getServer()).success(new Function1() { - - @Override - public Unit invoke(PublicChatMessage message) { - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - messageDatabase.setServerID(messageID, message.getServerID()); - f.set(Unit.INSTANCE); - return Unit.INSTANCE; - } - }).fail(new Function1() { - - @Override - public Unit invoke(Exception exception) { - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - f.setException(exception); - return Unit.INSTANCE; - } - }); - } catch (Exception exception) { - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - f.setException(exception); - } - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - try { - f.get(1, TimeUnit.MINUTES); - return SendMessageResult.success(recipient, false, false); - } catch (Exception exception) { - return SendMessageResult.networkFailure(recipient); - } - } - - private SendMessageResult sendMessageToPrivateChat(final long messageID, - final SignalServiceAddress recipient, - Optional unidentifiedAccess, - final long timestamp, - byte[] content, - boolean online, - int ttl, - boolean useFallbackEncryption, - boolean isClosedGroup, - final boolean notifyPNServer) - throws IOException, UntrustedIdentityException - { - if (recipient.getNumber().equals(userPublicKey)) { return SendMessageResult.success(recipient, false, false); } - final SettableFuture[] future = { new SettableFuture() }; - try { - OutgoingPushMessageList messages = getEncryptedMessages(socket, recipient, unidentifiedAccess, timestamp, content, online, useFallbackEncryption, isClosedGroup); - // Loki - Remove this when we have shared sender keys - // ======== - if (messages.getMessages().isEmpty()) { - return SendMessageResult.success(recipient, false, false); - } - // ======== - Set userLinkedDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey); - if (sskDatabase.isSSKBasedClosedGroup(recipient.getNumber())) { - Log.d("Loki", "Sending message to closed group.") ; - } else if (recipient.getNumber().equals(userPublicKey)) { - Log.d("Loki", "Sending message to self."); - } else if (userLinkedDevices.contains(recipient.getNumber())) { - Log.d("Loki", "Sending message to linked device."); - } else { - Log.d("Loki", "Sending message to " + recipient.getNumber() + "."); - } - OutgoingPushMessage message = messages.getMessages().get(0); - final SignalServiceProtos.Envelope.Type type = SignalServiceProtos.Envelope.Type.valueOf(message.type); - final String senderID; - if (type == SignalServiceProtos.Envelope.Type.CLOSED_GROUP_CIPHERTEXT) { - senderID = recipient.getNumber(); - } else if (type == SignalServiceProtos.Envelope.Type.UNIDENTIFIED_SENDER) { - senderID = ""; - } else { - senderID = userPublicKey; - } - final int senderDeviceID = (type == SignalServiceProtos.Envelope.Type.UNIDENTIFIED_SENDER) ? 0 : SignalServiceAddress.DEFAULT_DEVICE_ID; - // Make sure we have a valid ttl; otherwise default to 2 days - if (ttl <= 0) { ttl = TTLUtilities.INSTANCE.getFallbackMessageTTL(); } - final int regularMessageTTL = TTLUtilities.getTTL(TTLUtilities.MessageType.Regular); - final int __ttl = ttl; - final SignalMessageInfo messageInfo = new SignalMessageInfo(type, timestamp, senderID, senderDeviceID, message.content, recipient.getNumber(), ttl, false); - SnodeAPI.shared.sendSignalMessage(messageInfo).success(new Function1, Exception>>, Unit>() { - - @Override - public Unit invoke(Set, Exception>> promises) { - final boolean[] isSuccess = { false }; - final int[] promiseCount = {promises.size()}; - final int[] errorCount = { 0 }; - for (Promise, Exception> promise : promises) { - promise.success(new Function1, Unit>() { - - @Override - public Unit invoke(Map map) { - if (isSuccess[0]) { return Unit.INSTANCE; } // Succeed as soon as the first promise succeeds - if (__ttl == regularMessageTTL) { - broadcaster.broadcast("messageSent", timestamp); - } - isSuccess[0] = true; - if (notifyPNServer) { - PushNotificationAPI.shared.notify(messageInfo); - } - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - f.set(Unit.INSTANCE); - return Unit.INSTANCE; - } - }).fail(new Function1() { - - @Override - public Unit invoke(Exception exception) { - errorCount[0] += 1; - if (errorCount[0] != promiseCount[0]) { return Unit.INSTANCE; } // Only error out if all promises failed - if (__ttl == regularMessageTTL) { - broadcaster.broadcast("messageFailed", timestamp); - } - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - f.setException(exception); - return Unit.INSTANCE; - } - }); - } - return Unit.INSTANCE; - } - }).fail(new Function1() { - - @Override - public Unit invoke(Exception exception) { - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - f.setException(exception); - return Unit.INSTANCE; - } - }); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - @SuppressWarnings("unchecked") SettableFuture f = (SettableFuture)future[0]; - try { - f.get(1, TimeUnit.MINUTES); - return SendMessageResult.success(recipient, false, true); - } catch (Exception exception) { - Throwable underlyingError = exception.getCause(); - if (underlyingError instanceof SnodeAPI.Error) { - return SendMessageResult.lokiAPIError(recipient, (SnodeAPI.Error)underlyingError); - } else { - return SendMessageResult.networkFailure(recipient); - } - } - } - - private List createAttachmentPointers(Optional> attachments, SignalServiceAddress recipient) - throws IOException - { - List pointers = new LinkedList<>(); - - if (!attachments.isPresent() || attachments.get().isEmpty()) { - Log.w(TAG, "No attachments present..."); - return pointers; - } - - for (SignalServiceAttachment attachment : attachments.get()) { - if (attachment.isStream()) { - Log.w(TAG, "Found attachment, creating pointer..."); - pointers.add(createAttachmentPointer(attachment.asStream(), recipient)); - } else if (attachment.isPointer()) { - Log.w(TAG, "Including existing attachment pointer..."); - pointers.add(createAttachmentPointer(attachment.asPointer())); - } - } - - return pointers; - } - - private AttachmentPointer createAttachmentPointer(SignalServiceAttachmentPointer attachment) { - AttachmentPointer.Builder builder = AttachmentPointer.newBuilder() - .setContentType(attachment.getContentType()) - .setId(attachment.getId()) - .setKey(ByteString.copyFrom(attachment.getKey())) - .setDigest(ByteString.copyFrom(attachment.getDigest().get())) - .setSize(attachment.getSize().get()) - .setUrl(attachment.getUrl()); - - if (attachment.getFileName().isPresent()) { - builder.setFileName(attachment.getFileName().get()); - } - - if (attachment.getPreview().isPresent()) { - builder.setThumbnail(ByteString.copyFrom(attachment.getPreview().get())); - } - - if (attachment.getWidth() > 0) { - builder.setWidth(attachment.getWidth()); - } - - if (attachment.getHeight() > 0) { - builder.setHeight(attachment.getHeight()); - } - - if (attachment.getVoiceNote()) { - builder.setFlags(AttachmentPointer.Flags.VOICE_MESSAGE_VALUE); - } - - if (attachment.getCaption().isPresent()) { - builder.setCaption(attachment.getCaption().get()); - } - - return builder.build(); - } - - private AttachmentPointer createAttachmentPointer(SignalServiceAttachmentStream attachment) - throws IOException - { - return createAttachmentPointer(attachment, false, null); - } - - private AttachmentPointer createAttachmentPointer(SignalServiceAttachmentStream attachment, SignalServiceAddress recipient) - throws IOException - { - return createAttachmentPointer(attachment, false, recipient); - } - - private AttachmentPointer createAttachmentPointer(SignalServiceAttachmentStream attachment, boolean usePadding, SignalServiceAddress recipient) - throws IOException - { - SignalServiceAttachmentPointer pointer = uploadAttachment(attachment, usePadding, recipient); - return createAttachmentPointer(pointer); - } - - private OutgoingPushMessageList getEncryptedMessages(PushServiceSocket socket, - SignalServiceAddress recipient, - Optional unidentifiedAccess, - long timestamp, - byte[] plaintext, - boolean online, - boolean useFallbackEncryption, - boolean isClosedGroup) - throws IOException, InvalidKeyException, UntrustedIdentityException - { - List messages = new LinkedList<>(); - - // Loki - The way this works is: - // • Alice sends a session request (i.e. a pre key bundle) to Bob using fallback encryption. - // • She may send any number of subsequent messages also encrypted using fallback encryption. - // • When Bob receives the session request, he sets up his Signal cipher session locally and sends back a null message, - // now encrypted using Signal encryption. - // • Alice receives this, sets up her Signal cipher session locally, and sends any subsequent messages - // using Signal encryption. - - if (!recipient.equals(localAddress) || unidentifiedAccess.isPresent()) { - if (sskDatabase.isSSKBasedClosedGroup(recipient.getNumber()) && unidentifiedAccess.isPresent()) { - messages.add(getSSKEncryptedMessage(recipient.getNumber(), unidentifiedAccess.get(), plaintext)); - } else if (useFallbackEncryption) { - messages.add(getFallbackCipherEncryptedMessage(recipient.getNumber(), plaintext, unidentifiedAccess)); - } else { - OutgoingPushMessage message = getEncryptedMessage(socket, recipient, unidentifiedAccess, plaintext, isClosedGroup); - if (message != null) { // May be null in a closed group context - messages.add(message); - } - } - } - - return new OutgoingPushMessageList(recipient.getNumber(), timestamp, messages, online); - } - - private OutgoingPushMessage getFallbackCipherEncryptedMessage(String publicKey, byte[] plaintext, Optional unidentifiedAccess) - throws InvalidKeyException - { - Log.d("Loki", "Using fallback cipher."); - int deviceID = SignalServiceAddress.DEFAULT_DEVICE_ID; - SignalProtocolAddress signalProtocolAddress = new SignalProtocolAddress(publicKey, deviceID); - byte[] userPrivateKey = store.getIdentityKeyPair().getPrivateKey().serialize(); - FallbackSessionCipher cipher = new FallbackSessionCipher(userPrivateKey, publicKey); - PushTransportDetails transportDetails = new PushTransportDetails(FallbackSessionCipher.getSessionVersion()); - byte[] bytes = cipher.encrypt(transportDetails.getPaddedMessageBody(plaintext)); - if (bytes == null) { bytes = new byte[0]; } - if (unidentifiedAccess.isPresent()) { - SealedSessionCipher sealedSessionCipher = new SealedSessionCipher(store, null, signalProtocolAddress); - FallbackMessage message = new FallbackMessage(bytes); - byte[] ciphertext = sealedSessionCipher.encrypt(signalProtocolAddress, unidentifiedAccess.get().getUnidentifiedCertificate(), message); - return new OutgoingPushMessage(SignalServiceProtos.Envelope.Type.UNIDENTIFIED_SENDER_VALUE, deviceID, 0, Base64.encodeBytes(ciphertext)); - } else { - return new OutgoingPushMessage(SignalServiceProtos.Envelope.Type.FALLBACK_MESSAGE_VALUE, deviceID, 0, Base64.encodeBytes(bytes)); - } - } - - private OutgoingPushMessage getSSKEncryptedMessage(String groupPublicKey, UnidentifiedAccess unidentifiedAccess, byte[] plaintext) - throws InvalidKeyException, UntrustedIdentityException, IOException - { - int deviceID = SignalServiceAddress.DEFAULT_DEVICE_ID; - SignalProtocolAddress signalProtocolAddress = new SignalProtocolAddress(groupPublicKey, deviceID); - SignalServiceCipher cipher = new SignalServiceCipher(localAddress, store, sskDatabase, sessionResetImpl, null); - try { - return cipher.encrypt(signalProtocolAddress, Optional.of(unidentifiedAccess), plaintext); - } catch (org.whispersystems.libsignal.UntrustedIdentityException e) { - throw new UntrustedIdentityException("Untrusted identity", groupPublicKey, e.getUntrustedIdentity()); - } - } - - private OutgoingPushMessage getEncryptedMessage(PushServiceSocket socket, - SignalServiceAddress recipient, - Optional unidentifiedAccess, - byte[] plaintext, - boolean isClosedGroup) - throws IOException, InvalidKeyException, UntrustedIdentityException - { - Log.d("Loki", "Using Signal cipher."); - int deviceID = SignalServiceAddress.DEFAULT_DEVICE_ID; - SignalProtocolAddress signalProtocolAddress = new SignalProtocolAddress(recipient.getNumber(), deviceID); - SignalServiceCipher cipher = new SignalServiceCipher(localAddress, store, sskDatabase, sessionResetImpl, null); - - try { - String contactPublicKey = recipient.getNumber(); - PreKeyBundle preKeyBundle = preKeyBundleDatabase.getPreKeyBundle(contactPublicKey); - if (preKeyBundle == null) { - if (!store.containsSession(signalProtocolAddress)) { - SessionManagementProtocol.shared.repairSessionIfNeeded(recipient, isClosedGroup); - // Loki - Remove this when we have shared sender keys - // ======== - if (SessionManagementProtocol.shared.shouldIgnoreMissingPreKeyBundleException(isClosedGroup)) { - return null; - } - // ======== - throw new InvalidKeyException("Pre key bundle not found for: " + recipient.getNumber() + "."); - } - } else { - try { - SignalProtocolAddress address = new SignalProtocolAddress(contactPublicKey, preKeyBundle.getDeviceId()); - SessionBuilder sessionBuilder = new SessionBuilder(store, address); - sessionBuilder.process(preKeyBundle); - // Loki - Discard the pre key bundle once the session has been established - preKeyBundleDatabase.removePreKeyBundle(contactPublicKey); - } catch (org.whispersystems.libsignal.UntrustedIdentityException e) { - throw new UntrustedIdentityException("Untrusted identity key", recipient.getNumber(), preKeyBundle.getIdentityKey()); - } - if (eventListener.isPresent()) { - eventListener.get().onSecurityEvent(recipient); - } - } - } catch (InvalidKeyException e) { - throw new IOException(e); - } - - // Loki - Ensure all session processing has finished - synchronized (SESSION_LOCK) { - try { - return cipher.encrypt(signalProtocolAddress, unidentifiedAccess, plaintext); - } catch (org.whispersystems.libsignal.UntrustedIdentityException e) { - throw new UntrustedIdentityException("Untrusted on send", recipient.getNumber(), e.getUntrustedIdentity()); - } - } - } - - private Optional getTargetUnidentifiedAccess(Optional unidentifiedAccess) { - if (unidentifiedAccess.isPresent()) { - return unidentifiedAccess.get().getTargetUnidentifiedAccess(); - } - - return Optional.absent(); - } - - private List> getTargetUnidentifiedAccess(List> unidentifiedAccess) { - List> results = new LinkedList<>(); - - for (Optional item : unidentifiedAccess) { - if (item.isPresent()) results.add(item.get().getTargetUnidentifiedAccess()); - else results.add(Optional.absent()); - } - - return results; - } - - public static interface EventListener { - - public void onSecurityEvent(SignalServiceAddress address); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherInputStream.java deleted file mode 100644 index 70d52877b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherInputStream.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (C) 2014-2017 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.crypto; - -import org.whispersystems.libsignal.InvalidMacException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.signalservice.internal.util.ContentLengthInputStream; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Arrays; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.ShortBufferException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -/** - * Class for streaming an encrypted push attachment off disk. - * - * @author Moxie Marlinspike - */ - -public class AttachmentCipherInputStream extends FilterInputStream { - - private static final int BLOCK_SIZE = 16; - private static final int CIPHER_KEY_SIZE = 32; - private static final int MAC_KEY_SIZE = 32; - - private Cipher cipher; - private boolean done; - private long totalDataSize; - private long totalRead; - private byte[] overflowBuffer; - - public static InputStream createForAttachment(File file, long plaintextLength, byte[] combinedKeyMaterial, byte[] digest) - throws InvalidMessageException, IOException - { - try { - byte[][] parts = Util.split(combinedKeyMaterial, CIPHER_KEY_SIZE, MAC_KEY_SIZE); - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(parts[1], "HmacSHA256")); - - if (file.length() <= BLOCK_SIZE + mac.getMacLength()) { - throw new InvalidMessageException("Message shorter than crypto overhead!"); - } - - if (digest == null) { - throw new InvalidMacException("Missing digest!"); - } - - FileInputStream fin = new FileInputStream(file); - verifyMac(fin, file.length(), mac, digest); - - InputStream inputStream = new AttachmentCipherInputStream(new FileInputStream(file), parts[0], file.length() - BLOCK_SIZE - mac.getMacLength()); - - if (plaintextLength != 0) { - inputStream = new ContentLengthInputStream(inputStream, plaintextLength); - } - - return inputStream; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (InvalidMacException e) { - throw new InvalidMessageException(e); - } - } - - public static InputStream createForStickerData(byte[] data, byte[] packKey) - throws InvalidMessageException, IOException - { - try { - byte[] combinedKeyMaterial = new HKDFv3().deriveSecrets(packKey, "Sticker Pack".getBytes(), 64); - byte[][] parts = Util.split(combinedKeyMaterial, CIPHER_KEY_SIZE, MAC_KEY_SIZE); - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(parts[1], "HmacSHA256")); - - if (data.length <= BLOCK_SIZE + mac.getMacLength()) { - throw new InvalidMessageException("Message shorter than crypto overhead!"); - } - - InputStream inputStream = new ByteArrayInputStream(data); - verifyMac(inputStream, data.length, mac, null); - - return new AttachmentCipherInputStream(new ByteArrayInputStream(data), parts[0], data.length - BLOCK_SIZE - mac.getMacLength()); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (InvalidMacException e) { - throw new InvalidMessageException(e); - } - } - - private AttachmentCipherInputStream(InputStream inputStream, byte[] cipherKey, long totalDataSize) - throws IOException - { - super(inputStream); - - try { - byte[] iv = new byte[BLOCK_SIZE]; - readFully(iv); - - this.cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - this.cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(cipherKey, "AES"), new IvParameterSpec(iv)); - - this.done = false; - this.totalRead = 0; - this.totalDataSize = totalDataSize; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } - } - - @Override - public int read(byte[] buffer) throws IOException { - return read(buffer, 0, buffer.length); - } - - @Override - public int read(byte[] buffer, int offset, int length) throws IOException { - if (totalRead != totalDataSize) return readIncremental(buffer, offset, length); - else if (!done) return readFinal(buffer, offset, length); - else return -1; - } - - @Override - public boolean markSupported() { - return false; - } - - @Override - public long skip(long byteCount) throws IOException { - long skipped = 0L; - while (skipped < byteCount) { - byte[] buf = new byte[Math.min(4096, (int)(byteCount-skipped))]; - int read = read(buf); - - skipped += read; - } - - return skipped; - } - - private int readFinal(byte[] buffer, int offset, int length) throws IOException { - try { - int flourish = cipher.doFinal(buffer, offset); - - done = true; - return flourish; - } catch (IllegalBlockSizeException e) { - throw new IOException(e); - } catch (BadPaddingException e) { - throw new IOException(e); - } catch (ShortBufferException e) { - throw new IOException(e); - } - } - - private int readIncremental(byte[] buffer, int offset, int length) throws IOException { - int readLength = 0; - if (null != overflowBuffer) { - if (overflowBuffer.length > length) { - System.arraycopy(overflowBuffer, 0, buffer, offset, length); - overflowBuffer = Arrays.copyOfRange(overflowBuffer, length, overflowBuffer.length); - return length; - } else if (overflowBuffer.length == length) { - System.arraycopy(overflowBuffer, 0, buffer, offset, length); - overflowBuffer = null; - return length; - } else { - System.arraycopy(overflowBuffer, 0, buffer, offset, overflowBuffer.length); - readLength += overflowBuffer.length; - offset += readLength; - length -= readLength; - overflowBuffer = null; - } - } - - if (length + totalRead > totalDataSize) - length = (int)(totalDataSize - totalRead); - - byte[] internalBuffer = new byte[length]; - int read = super.read(internalBuffer, 0, internalBuffer.length <= cipher.getBlockSize() ? internalBuffer.length : internalBuffer.length - cipher.getBlockSize()); - totalRead += read; - - try { - int outputLen = cipher.getOutputSize(read); - - if (outputLen <= length) { - readLength += cipher.update(internalBuffer, 0, read, buffer, offset); - return readLength; - } - - byte[] transientBuffer = new byte[outputLen]; - outputLen = cipher.update(internalBuffer, 0, read, transientBuffer, 0); - if (outputLen <= length) { - System.arraycopy(transientBuffer, 0, buffer, offset, outputLen); - readLength += outputLen; - } else { - System.arraycopy(transientBuffer, 0, buffer, offset, length); - overflowBuffer = Arrays.copyOfRange(transientBuffer, length, outputLen); - readLength += length; - } - return readLength; - } catch (ShortBufferException e) { - throw new AssertionError(e); - } - } - - private static void verifyMac(InputStream inputStream, long length, Mac mac, byte[] theirDigest) - throws InvalidMacException - { - try { - MessageDigest digest = MessageDigest.getInstance("SHA256"); - int remainingData = Util.toIntExact(length) - mac.getMacLength(); - byte[] buffer = new byte[4096]; - - while (remainingData > 0) { - int read = inputStream.read(buffer, 0, Math.min(buffer.length, remainingData)); - mac.update(buffer, 0, read); - digest.update(buffer, 0, read); - remainingData -= read; - } - - byte[] ourMac = mac.doFinal(); - byte[] theirMac = new byte[mac.getMacLength()]; - Util.readFully(inputStream, theirMac); - - if (!MessageDigest.isEqual(ourMac, theirMac)) { - throw new InvalidMacException("MAC doesn't match!"); - } - - byte[] ourDigest = digest.digest(theirMac); - - if (theirDigest != null && !MessageDigest.isEqual(ourDigest, theirDigest)) { - throw new InvalidMacException("Digest doesn't match!"); - } - - } catch (IOException e) { - throw new InvalidMacException(e); - } catch (ArithmeticException e) { - throw new InvalidMacException(e); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - private void readFully(byte[] buffer) throws IOException { - int offset = 0; - - for (;;) { - int read = super.read(buffer, offset, buffer.length - offset); - - if (read + offset < buffer.length) offset += read; - else return; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherOutputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherOutputStream.java deleted file mode 100644 index 376f7a9eb..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherOutputStream.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2014-2017 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.crypto; - -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.IOException; -import java.io.OutputStream; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.SecretKeySpec; - -public class AttachmentCipherOutputStream extends DigestingOutputStream { - - private final Cipher cipher; - private final Mac mac; - - public AttachmentCipherOutputStream(byte[] combinedKeyMaterial, - OutputStream outputStream) - throws IOException - { - super(outputStream); - try { - this.cipher = initializeCipher(); - this.mac = initializeMac(); - byte[][] keyParts = Util.split(combinedKeyMaterial, 32, 32); - - this.cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(keyParts[0], "AES")); - this.mac.init(new SecretKeySpec(keyParts[1], "HmacSHA256")); - - mac.update(cipher.getIV()); - super.write(cipher.getIV()); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - - @Override - public void write(byte[] buffer) throws IOException { - write(buffer, 0, buffer.length); - } - - @Override - public void write(byte[] buffer, int offset, int length) throws IOException { - byte[] ciphertext = cipher.update(buffer, offset, length); - - if (ciphertext != null) { - mac.update(ciphertext); - super.write(ciphertext); - } - } - - @Override - public void write(int b) { - throw new AssertionError("NYI"); - } - - @Override - public void flush() throws IOException { - try { - byte[] ciphertext = cipher.doFinal(); - byte[] auth = mac.doFinal(ciphertext); - - super.write(ciphertext); - super.write(auth); - - super.flush(); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } - } - - public static long getCiphertextLength(long plaintextLength) { - return 16 + (((plaintextLength / 16) +1) * 16) + 32; - } - - private Mac initializeMac() { - try { - return Mac.getInstance("HmacSHA256"); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - private Cipher initializeCipher() { - try { - return Cipher.getInstance("AES/CBC/PKCS5Padding"); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/DigestingOutputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/DigestingOutputStream.java deleted file mode 100644 index 555c1e855..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/DigestingOutputStream.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - - -import java.io.FilterOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -public abstract class DigestingOutputStream extends FilterOutputStream { - - private final MessageDigest runningDigest; - - private byte[] digest; - - public DigestingOutputStream(OutputStream outputStream) { - super(outputStream); - - try { - this.runningDigest = MessageDigest.getInstance("SHA256"); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - @Override - public void write(byte[] buffer) throws IOException { - runningDigest.update(buffer, 0, buffer.length); - out.write(buffer, 0, buffer.length); - } - - public void write(byte[] buffer, int offset, int length) throws IOException { - runningDigest.update(buffer, offset, length); - out.write(buffer, offset, length); - } - - public void write(int b) throws IOException { - runningDigest.update((byte)b); - out.write(b); - } - - public void flush() throws IOException { - digest = runningDigest.digest(); - out.flush(); - } - - public void close() throws IOException { - out.close(); - } - - public byte[] getTransmittedDigest() { - return digest; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/InvalidCiphertextException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/InvalidCiphertextException.java deleted file mode 100644 index 9ea11dad1..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/InvalidCiphertextException.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - -public class InvalidCiphertextException extends Exception { - public InvalidCiphertextException(Exception nested) { - super(nested); - } - - public InvalidCiphertextException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipher.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipher.java deleted file mode 100644 index 27f4f4f07..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipher.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - - -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.signalservice.internal.util.Util; - -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.GCMParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class ProfileCipher { - - public static final int NAME_PADDED_LENGTH = 26; - - private final byte[] key; - - public ProfileCipher(byte[] key) { - this.key = key; - } - - public byte[] encryptName(byte[] input, int paddedLength) { - try { - byte[] inputPadded = new byte[paddedLength]; - - if (input.length > inputPadded.length) { - throw new IllegalArgumentException("Input is too long: " + new String(input)); - } - - System.arraycopy(input, 0, inputPadded, 0, input.length); - - byte[] nonce = Util.getSecretBytes(12); - - Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); - cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), new GCMParameterSpec(128, nonce)); - - return ByteUtil.combine(nonce, cipher.doFinal(inputPadded)); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - - public byte[] decryptName(byte[] input) throws InvalidCiphertextException { - try { - if (input.length < 12 + 16 + 1) { - throw new InvalidCiphertextException("Too short: " + input.length); - } - - byte[] nonce = new byte[12]; - System.arraycopy(input, 0, nonce, 0, nonce.length); - - Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); - cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, "AES"), new GCMParameterSpec(128, nonce)); - - byte[] paddedPlaintext = cipher.doFinal(input, nonce.length, input.length - nonce.length); - int plaintextLength = 0; - - for (int i=paddedPlaintext.length-1;i>=0;i--) { - if (paddedPlaintext[i] != (byte)0x00) { - plaintextLength = i + 1; - break; - } - } - - byte[] plaintext = new byte[plaintextLength]; - System.arraycopy(paddedPlaintext, 0, plaintext, 0, plaintextLength); - - return plaintext; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new InvalidCiphertextException(e); - } catch (BadPaddingException e) { - throw new InvalidCiphertextException(e); - } - } - - public boolean verifyUnidentifiedAccess(byte[] theirUnidentifiedAccessVerifier) { - try { - if (theirUnidentifiedAccessVerifier == null || theirUnidentifiedAccessVerifier.length == 0) return false; - - byte[] unidentifiedAccessKey = UnidentifiedAccess.deriveAccessKeyFrom(key); - - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(unidentifiedAccessKey, "HmacSHA256")); - - byte[] ourUnidentifiedAccessVerifier = mac.doFinal(new byte[32]); - - return MessageDigest.isEqual(theirUnidentifiedAccessVerifier, ourUnidentifiedAccessVerifier); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherInputStream.java deleted file mode 100644 index cb4de067d..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherInputStream.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - - -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.ShortBufferException; -import javax.crypto.spec.GCMParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class ProfileCipherInputStream extends FilterInputStream { - - private final Cipher cipher; - - private boolean finished = false; - - public ProfileCipherInputStream(InputStream in, byte[] key) throws IOException { - super(in); - - try { - this.cipher = Cipher.getInstance("AES/GCM/NoPadding"); - - byte[] nonce = new byte[12]; - Util.readFully(in, nonce); - - this.cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, "AES"), new GCMParameterSpec(128, nonce)); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - } - - @Override - public int read() { - throw new AssertionError("Not supported!"); - } - - @Override - public int read(byte[] input) throws IOException { - return read(input, 0, input.length); - } - - @Override - public int read(byte[] output, int outputOffset, int outputLength) throws IOException { - if (finished) return -1; - - try { - byte[] ciphertext = new byte[outputLength / 2]; - int read = in.read(ciphertext, 0, ciphertext.length); - - if (read == -1) { - if (cipher.getOutputSize(0) > outputLength) { - throw new AssertionError("Need: " + cipher.getOutputSize(0) + " but only have: " + outputLength); - } - - finished = true; - return cipher.doFinal(output, outputOffset); - } else { - if (cipher.getOutputSize(read) > outputLength) { - throw new AssertionError("Need: " + cipher.getOutputSize(read) + " but only have: " + outputLength); - } - - return cipher.update(ciphertext, 0, read, output, outputOffset); - } - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch(ShortBufferException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new IOException(e); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherOutputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherOutputStream.java deleted file mode 100644 index 05bebe9d1..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/ProfileCipherOutputStream.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - -import java.io.IOException; -import java.io.OutputStream; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.GCMParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class ProfileCipherOutputStream extends DigestingOutputStream { - - private final Cipher cipher; - - public ProfileCipherOutputStream(OutputStream out, byte[] key) throws IOException { - super(out); - try { - this.cipher = Cipher.getInstance("AES/GCM/NoPadding"); - - byte[] nonce = generateNonce(); - this.cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), new GCMParameterSpec(128, nonce)); - - super.write(nonce, 0, nonce.length); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - } - - @Override - public void write(byte[] buffer) throws IOException { - write(buffer, 0, buffer.length); - } - - @Override - public void write(byte[] buffer, int offset, int length) throws IOException { - byte[] output = cipher.update(buffer, offset, length); - super.write(output); - } - - @Override - public void write(int b) throws IOException { - byte[] input = new byte[1]; - input[0] = (byte)b; - - byte[] output = cipher.update(input); - super.write(output); - } - - @Override - public void flush() throws IOException { - try { - byte[] output = cipher.doFinal(); - - super.write(output); - super.flush(); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } - } - - private byte[] generateNonce() { - byte[] nonce = new byte[12]; - new SecureRandom().nextBytes(nonce); - return nonce; - } - - public static long getCiphertextLength(long plaintextLength) { - return 12 + 16 + plaintextLength; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/SignalServiceCipher.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/SignalServiceCipher.java deleted file mode 100644 index ee52aede6..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/SignalServiceCipher.java +++ /dev/null @@ -1,850 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.crypto; - -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; - -import org.signal.libsignal.metadata.InvalidMetadataMessageException; -import org.signal.libsignal.metadata.InvalidMetadataVersionException; -import org.signal.libsignal.metadata.ProtocolDuplicateMessageException; -import org.signal.libsignal.metadata.ProtocolInvalidKeyException; -import org.signal.libsignal.metadata.ProtocolInvalidKeyIdException; -import org.signal.libsignal.metadata.ProtocolInvalidMessageException; -import org.signal.libsignal.metadata.ProtocolInvalidVersionException; -import org.signal.libsignal.metadata.ProtocolLegacyMessageException; -import org.signal.libsignal.metadata.ProtocolNoSessionException; -import org.signal.libsignal.metadata.ProtocolUntrustedIdentityException; -import org.signal.libsignal.metadata.SealedSessionCipher; -import org.signal.libsignal.metadata.SelfSendException; -import org.signal.libsignal.metadata.certificate.CertificateValidator; -import org.whispersystems.libsignal.DuplicateMessageException; -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidKeyIdException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.libsignal.LegacyMessageException; -import org.whispersystems.libsignal.NoSessionException; -import org.whispersystems.libsignal.SessionCipher; -import org.whispersystems.libsignal.SignalProtocolAddress; -import org.whispersystems.libsignal.UntrustedIdentityException; -import org.whispersystems.libsignal.loki.LokiSessionCipher; -import org.whispersystems.libsignal.loki.SessionResetProtocol; -import org.whispersystems.libsignal.protocol.CiphertextMessage; -import org.whispersystems.libsignal.protocol.PreKeySignalMessage; -import org.whispersystems.libsignal.protocol.SignalMessage; -import org.whispersystems.libsignal.state.SignalProtocolStore; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.api.messages.SignalServiceContent; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Preview; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Sticker; -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceNullMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage; -import org.whispersystems.signalservice.api.messages.calls.AnswerMessage; -import org.whispersystems.signalservice.api.messages.calls.BusyMessage; -import org.whispersystems.signalservice.api.messages.calls.HangupMessage; -import org.whispersystems.signalservice.api.messages.calls.IceUpdateMessage; -import org.whispersystems.signalservice.api.messages.calls.OfferMessage; -import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage; -import org.whispersystems.signalservice.api.messages.multidevice.BlockedListMessage; -import org.whispersystems.signalservice.api.messages.multidevice.ContactsMessage; -import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage; -import org.whispersystems.signalservice.api.messages.multidevice.RequestMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.api.messages.multidevice.StickerPackOperationMessage; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; -import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage.VerifiedState; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.internal.push.OutgoingPushMessage; -import org.whispersystems.signalservice.internal.push.PushTransportDetails; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; -import org.whispersystems.signalservice.loki.protocol.closedgroups.ClosedGroupUtilities; -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysDatabaseProtocol; -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.PreKeyBundleMessage; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage; -import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.DELIVER; - -/** - * This is used to decrypt received {@link SignalServiceEnvelope}s. - * - * @author Moxie Marlinspike - */ -public class SignalServiceCipher { - - @SuppressWarnings("unused") - private static final String TAG = SignalServiceCipher.class.getSimpleName(); - - private final SignalProtocolStore signalProtocolStore; - private final SessionResetProtocol sessionResetProtocol; - private final SharedSenderKeysDatabaseProtocol sskDatabase; - private final SignalServiceAddress localAddress; - private final CertificateValidator certificateValidator; - - public SignalServiceCipher(SignalServiceAddress localAddress, - SignalProtocolStore signalProtocolStore, - SharedSenderKeysDatabaseProtocol sskDatabase, - SessionResetProtocol sessionResetProtocol, - CertificateValidator certificateValidator) - { - this.signalProtocolStore = signalProtocolStore; - this.sessionResetProtocol = sessionResetProtocol; - this.sskDatabase = sskDatabase; - this.localAddress = localAddress; - this.certificateValidator = certificateValidator; - } - - public OutgoingPushMessage encrypt(SignalProtocolAddress destination, - Optional unidentifiedAccess, - byte[] unpaddedMessage) - throws UntrustedIdentityException, InvalidKeyException, IOException - { - if (unidentifiedAccess.isPresent() && sskDatabase.isSSKBasedClosedGroup(destination.getName())) { - String userPublicKey = localAddress.getNumber(); - SignalProtocolAddress signalProtocolAddress = new SignalProtocolAddress(userPublicKey, 1); - SealedSessionCipher sessionCipher = new SealedSessionCipher(signalProtocolStore, sessionResetProtocol, signalProtocolAddress); - PushTransportDetails transportDetails = new PushTransportDetails(sessionCipher.getSessionVersion(destination)); - byte[] plaintext = transportDetails.getPaddedMessageBody(unpaddedMessage); - byte[] ciphertext = ClosedGroupUtilities.encrypt(plaintext, destination.getName(), userPublicKey); - String body = Base64.encodeBytes(ciphertext); - int remoteRegistrationId = sessionCipher.getRemoteRegistrationId(destination); - return new OutgoingPushMessage(Type.CLOSED_GROUP_CIPHERTEXT_VALUE, destination.getDeviceId(), remoteRegistrationId, body); - } else if (unidentifiedAccess.isPresent()) { - SealedSessionCipher sessionCipher = new SealedSessionCipher(signalProtocolStore, sessionResetProtocol, new SignalProtocolAddress(localAddress.getNumber(), 1)); - PushTransportDetails transportDetails = new PushTransportDetails(sessionCipher.getSessionVersion(destination)); - byte[] ciphertext = sessionCipher.encrypt(destination, unidentifiedAccess.get().getUnidentifiedCertificate(), transportDetails.getPaddedMessageBody(unpaddedMessage)); - String body = Base64.encodeBytes(ciphertext); - int remoteRegistrationId = sessionCipher.getRemoteRegistrationId(destination); - - return new OutgoingPushMessage(Type.UNIDENTIFIED_SENDER_VALUE, destination.getDeviceId(), remoteRegistrationId, body); - } else { - SessionCipher sessionCipher = new SessionCipher(signalProtocolStore, destination); - PushTransportDetails transportDetails = new PushTransportDetails(sessionCipher.getSessionVersion()); - CiphertextMessage message = sessionCipher.encrypt(transportDetails.getPaddedMessageBody(unpaddedMessage)); - int remoteRegistrationId = sessionCipher.getRemoteRegistrationId(); - String body = Base64.encodeBytes(message.serialize()); - - int type; - - switch (message.getType()) { - case CiphertextMessage.PREKEY_TYPE: type = Type.PREKEY_BUNDLE_VALUE; break; - case CiphertextMessage.WHISPER_TYPE: type = Type.CIPHERTEXT_VALUE; break; - case CiphertextMessage.FALLBACK_MESSAGE_TYPE: type = Type.FALLBACK_MESSAGE_VALUE; break; - case CiphertextMessage.CLOSED_GROUP_CIPHERTEXT: type = Type.CLOSED_GROUP_CIPHERTEXT_VALUE; break; - default: throw new AssertionError("Bad type: " + message.getType()); - } - - return new OutgoingPushMessage(type, destination.getDeviceId(), remoteRegistrationId, body); - } - } - - /** - * Decrypt a received {@link SignalServiceEnvelope} - * - * @param envelope The received SignalServiceEnvelope - * - * @return a decrypted SignalServiceContent - */ - public SignalServiceContent decrypt(SignalServiceEnvelope envelope) - throws InvalidMetadataMessageException, InvalidMetadataVersionException, - ProtocolInvalidKeyIdException, ProtocolLegacyMessageException, - ProtocolUntrustedIdentityException, ProtocolNoSessionException, - ProtocolInvalidVersionException, ProtocolInvalidMessageException, - ProtocolInvalidKeyException, ProtocolDuplicateMessageException, - SelfSendException, IOException - - { - try { - Plaintext plaintext = decrypt(envelope, envelope.getContent()); - Content message = Content.parseFrom(plaintext.getData()); - - PreKeyBundleMessage preKeyBundleMessage = null; - if (message.hasPreKeyBundleMessage()) { - SignalServiceProtos.PreKeyBundleMessage protoPreKeyBundleMessage = message.getPreKeyBundleMessage(); - preKeyBundleMessage = new PreKeyBundleMessage(protoPreKeyBundleMessage.getIdentityKey().toByteArray(), - protoPreKeyBundleMessage.getDeviceId(), - protoPreKeyBundleMessage.getPreKeyId(), - protoPreKeyBundleMessage.getSignedKeyId(), - protoPreKeyBundleMessage.getPreKey().toByteArray(), - protoPreKeyBundleMessage.getSignedKey().toByteArray(), - protoPreKeyBundleMessage.getSignature().toByteArray() - ); - } - - if (message.hasDeviceLinkMessage()) { - SignalServiceProtos.DeviceLinkMessage protoDeviceLinkMessage = message.getDeviceLinkMessage(); - String masterPublicKey = protoDeviceLinkMessage.getPrimaryPublicKey(); - String slavePublicKey = protoDeviceLinkMessage.getSecondaryPublicKey(); - byte[] requestSignature = protoDeviceLinkMessage.hasRequestSignature() ? protoDeviceLinkMessage.getRequestSignature().toByteArray() : null; - byte[] authorizationSignature = protoDeviceLinkMessage.hasAuthorizationSignature() ? protoDeviceLinkMessage.getAuthorizationSignature().toByteArray() : null; - DeviceLink deviceLink = new DeviceLink(masterPublicKey, slavePublicKey, requestSignature, authorizationSignature); - SignalServiceCipher.Metadata metadata = plaintext.getMetadata(); - SignalServiceContent content = new SignalServiceContent(deviceLink, metadata.getSender(), metadata.getSenderDevice(), metadata.getTimestamp()); - - content.setPreKeyBundleMessage(preKeyBundleMessage); - - if (message.hasSyncMessage() && message.getSyncMessage().hasContacts()) { - SignalServiceSyncMessage syncMessage = createSynchronizeMessage(metadata, message.getSyncMessage()); - content.setSyncMessage(syncMessage); - } - - if (message.hasDataMessage()) { - setProfile(message.getDataMessage(), content); - SignalServiceDataMessage signalServiceDataMessage = createSignalServiceMessage(metadata, message.getDataMessage()); - content.setDataMessage(signalServiceDataMessage); - } - - return content; - } else if (message.hasDataMessage()) { - DataMessage dataMessage = message.getDataMessage(); - - SignalServiceDataMessage signalServiceDataMessage = createSignalServiceMessage(plaintext.getMetadata(), dataMessage); - SignalServiceContent content = new SignalServiceContent(signalServiceDataMessage, - plaintext.getMetadata().getSender(), - plaintext.getMetadata().getSenderDevice(), - plaintext.getMetadata().getTimestamp(), - plaintext.getMetadata().isNeedsReceipt(), - signalServiceDataMessage.isDeviceUnlinkingRequest()); - - content.setPreKeyBundleMessage(preKeyBundleMessage); - - setProfile(dataMessage, content); - - return content; - } else if (message.hasSyncMessage()) { - SignalServiceContent content = new SignalServiceContent(createSynchronizeMessage( - plaintext.getMetadata(), - message.getSyncMessage()), - plaintext.getMetadata().getSender(), - plaintext.getMetadata().getSenderDevice(), - plaintext.getMetadata().getTimestamp()); - - if (message.getSyncMessage().hasSent() && message.getSyncMessage().getSent().hasMessage()) { - DataMessage dataMessage = message.getSyncMessage().getSent().getMessage(); - setProfile(dataMessage, content); - } - - return content; - } else if (message.hasCallMessage()) { - return new SignalServiceContent(createCallMessage(message.getCallMessage()), - plaintext.getMetadata().getSender(), - plaintext.getMetadata().getSenderDevice(), - plaintext.getMetadata().getTimestamp()); - } else if (message.hasReceiptMessage()) { - return new SignalServiceContent(createReceiptMessage(plaintext.getMetadata(), message.getReceiptMessage()), - plaintext.getMetadata().getSender(), - plaintext.getMetadata().getSenderDevice(), - plaintext.getMetadata().getTimestamp()); - } else if (message.hasTypingMessage()) { - return new SignalServiceContent(createTypingMessage(plaintext.getMetadata(), message.getTypingMessage()), - plaintext.getMetadata().getSender(), - plaintext.getMetadata().getSenderDevice(), - plaintext.getMetadata().getTimestamp()); - } else if (message.hasNullMessage()) { - SignalServiceContent content = new SignalServiceContent(new SignalServiceNullMessage(), - plaintext.getMetadata().getSender(), - plaintext.getMetadata().getSenderDevice(), - plaintext.getMetadata().getTimestamp()); - - content.setPreKeyBundleMessage(preKeyBundleMessage); - - return content; - } - - return null; - } catch (InvalidProtocolBufferException e) { - throw new InvalidMetadataMessageException(e); - } - } - - private void setProfile(DataMessage message, SignalServiceContent content) { - if (!message.hasProfile()) { return; } - SignalServiceProtos.LokiUserProfile profile = message.getProfile(); - if (profile.hasDisplayName()) { content.setSenderDisplayName(profile.getDisplayName()); } - if (profile.hasProfilePictureURL()) { content.setSenderProfilePictureURL(profile.getProfilePictureURL()); } - } - - protected Plaintext decrypt(SignalServiceEnvelope envelope, byte[] ciphertext) - throws InvalidMetadataMessageException, InvalidMetadataVersionException, - ProtocolDuplicateMessageException, ProtocolUntrustedIdentityException, - ProtocolLegacyMessageException, ProtocolInvalidKeyException, - ProtocolInvalidVersionException, ProtocolInvalidMessageException, - ProtocolInvalidKeyIdException, ProtocolNoSessionException, - SelfSendException, IOException - { - try { - SignalProtocolAddress sourceAddress = new SignalProtocolAddress(envelope.getSource(), envelope.getSourceDevice()); - SessionCipher sessionCipher = new LokiSessionCipher(signalProtocolStore, sessionResetProtocol, sourceAddress); - SealedSessionCipher sealedSessionCipher = new SealedSessionCipher(signalProtocolStore, sessionResetProtocol, new SignalProtocolAddress(localAddress.getNumber(), 1)); - - byte[] paddedMessage; - Metadata metadata; - int sessionVersion; - - if (envelope.isClosedGroupCiphertext()) { - Pair plaintextAndSenderPublicKey = ClosedGroupUtilities.decrypt(envelope); - String senderPublicKey = plaintextAndSenderPublicKey.second(); - if (senderPublicKey.equals(localAddress.getNumber())) { throw new SelfSendException(); } // Will be caught and ignored in PushDecryptJob - paddedMessage = plaintextAndSenderPublicKey.first(); - metadata = new Metadata(senderPublicKey, envelope.getSourceDevice(), envelope.getTimestamp(), false); - sessionVersion = sessionCipher.getSessionVersion(); - } else if (envelope.isPreKeySignalMessage()) { - paddedMessage = sessionCipher.decrypt(new PreKeySignalMessage(ciphertext)); - metadata = new Metadata(envelope.getSource(), envelope.getSourceDevice(), envelope.getTimestamp(), false); - sessionVersion = sessionCipher.getSessionVersion(); - } else if (envelope.isSignalMessage()) { - paddedMessage = sessionCipher.decrypt(new SignalMessage(ciphertext)); - metadata = new Metadata(envelope.getSource(), envelope.getSourceDevice(), envelope.getTimestamp(), false); - sessionVersion = sessionCipher.getSessionVersion(); - } else if (envelope.isUnidentifiedSender()) { - Pair> results = sealedSessionCipher.decrypt(certificateValidator, ciphertext, envelope.getServerTimestamp(), envelope.getSource()); - Pair data = results.second(); - paddedMessage = data.second(); - metadata = new Metadata(results.first().getName(), results.first().getDeviceId(), envelope.getTimestamp(), false); - sessionVersion = sealedSessionCipher.getSessionVersion(new SignalProtocolAddress(metadata.getSender(), metadata.getSenderDevice())); - } else { - throw new InvalidMetadataMessageException("Unknown type: " + envelope.getType()); - } - - PushTransportDetails transportDetails = new PushTransportDetails(sessionVersion); - byte[] data = transportDetails.getStrippedPaddingMessageBody(paddedMessage); - - return new Plaintext(metadata, data); - } catch (DuplicateMessageException e) { - throw new ProtocolDuplicateMessageException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (LegacyMessageException e) { - throw new ProtocolLegacyMessageException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (InvalidMessageException e) { - throw new ProtocolInvalidMessageException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (InvalidKeyIdException e) { - throw new ProtocolInvalidKeyIdException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (InvalidKeyException e) { - throw new ProtocolInvalidKeyException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (UntrustedIdentityException e) { - throw new ProtocolUntrustedIdentityException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (InvalidVersionException e) { - throw new ProtocolInvalidVersionException(e, envelope.getSource(), envelope.getSourceDevice()); - } catch (NoSessionException e) { - throw new ProtocolNoSessionException(e, envelope.getSource(), envelope.getSourceDevice()); - } - } - - private SignalServiceDataMessage createSignalServiceMessage(Metadata metadata, DataMessage content) throws ProtocolInvalidMessageException { - SignalServiceGroup groupInfo = createGroupInfo(content); - List attachments = new LinkedList(); - boolean endSession = ((content.getFlags() & DataMessage.Flags.END_SESSION_VALUE ) != 0); - boolean expirationUpdate = ((content.getFlags() & DataMessage.Flags.EXPIRATION_TIMER_UPDATE_VALUE) != 0); - boolean profileKeyUpdate = ((content.getFlags() & DataMessage.Flags.PROFILE_KEY_UPDATE_VALUE ) != 0); - SignalServiceDataMessage.Quote quote = createQuote(content); - List sharedContacts = createSharedContacts(content); - List previews = createPreviews(content); - Sticker sticker = createSticker(content); - ClosedGroupUpdate closedGroupUpdate = content.getClosedGroupUpdate(); - boolean isDeviceUnlinkingRequest = ((content.getFlags() & DataMessage.Flags.DEVICE_UNLINKING_REQUEST_VALUE) != 0); - - for (AttachmentPointer pointer : content.getAttachmentsList()) { - attachments.add(createAttachmentPointer(pointer)); - } - - if (content.hasTimestamp() && content.getTimestamp() != metadata.getTimestamp()) { - throw new ProtocolInvalidMessageException(new InvalidMessageException("Timestamps don't match: " + content.getTimestamp() + " vs " + metadata.getTimestamp()), - metadata.getSender(), - metadata.getSenderDevice()); - } - - return new SignalServiceDataMessage(metadata.getTimestamp(), - groupInfo, - attachments, - content.getBody(), - endSession, - content.getExpireTimer(), - expirationUpdate, - content.hasProfileKey() ? content.getProfileKey().toByteArray() : null, - profileKeyUpdate, - quote, - sharedContacts, - previews, - sticker, - null, - null, - closedGroupUpdate, - isDeviceUnlinkingRequest); - } - - private SignalServiceSyncMessage createSynchronizeMessage(Metadata metadata, SyncMessage content) - throws ProtocolInvalidMessageException, ProtocolInvalidKeyException - { - if (content.hasSent()) { - SyncMessage.Sent sentContent = content.getSent(); - Map unidentifiedStatuses = new HashMap(); - - for (SyncMessage.Sent.UnidentifiedDeliveryStatus status : sentContent.getUnidentifiedStatusList()) { - unidentifiedStatuses.put(status.getDestination(), status.getUnidentified()); - } - - return SignalServiceSyncMessage.forSentTranscript(new SentTranscriptMessage(sentContent.getDestination(), - sentContent.getTimestamp(), - createSignalServiceMessage(metadata, sentContent.getMessage()), - sentContent.getExpirationStartTimestamp(), - unidentifiedStatuses)); - } - - if (content.hasRequest()) { - return SignalServiceSyncMessage.forRequest(new RequestMessage(content.getRequest())); - } - - if (content.getReadList().size() > 0) { - List readMessages = new LinkedList(); - - for (SyncMessage.Read read : content.getReadList()) { - readMessages.add(new ReadMessage(read.getSender(), read.getTimestamp())); - } - - return SignalServiceSyncMessage.forRead(readMessages); - } - - if (content.hasContacts()) { - SyncMessage.Contacts contacts = content.getContacts(); - ByteString data = contacts.getData(); - if (data != null && !data.isEmpty()) { - byte[] bytes = data.toByteArray(); - SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder() - .withStream(new ByteArrayInputStream(data.toByteArray())) - .withContentType("application/octet-stream") - .withLength(bytes.length) - .build(); - return SignalServiceSyncMessage.forContacts(new ContactsMessage(attachmentStream, contacts.getComplete())); - } - } - - if (content.hasGroups()) { - SyncMessage.Groups groups = content.getGroups(); - ByteString data = groups.getData(); - if (data != null && !data.isEmpty()) { - byte[] bytes = data.toByteArray(); - SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder() - .withStream(new ByteArrayInputStream(data.toByteArray())) - .withContentType("application/octet-stream") - .withLength(bytes.length) - .build(); - return SignalServiceSyncMessage.forGroups(attachmentStream); - } - } - - if (content.hasVerified()) { - try { - Verified verified = content.getVerified(); - String destination = verified.getDestination(); - IdentityKey identityKey = new IdentityKey(verified.getIdentityKey().toByteArray(), 0); - - VerifiedState verifiedState; - - if (verified.getState() == Verified.State.DEFAULT) { - verifiedState = VerifiedState.DEFAULT; - } else if (verified.getState() == Verified.State.VERIFIED) { - verifiedState = VerifiedState.VERIFIED; - } else if (verified.getState() == Verified.State.UNVERIFIED) { - verifiedState = VerifiedState.UNVERIFIED; - } else { - throw new ProtocolInvalidMessageException(new InvalidMessageException("Unknown state: " + verified.getState().getNumber()), - metadata.getSender(), metadata.getSenderDevice()); - } - - return SignalServiceSyncMessage.forVerified(new VerifiedMessage(destination, identityKey, verifiedState, System.currentTimeMillis())); - } catch (InvalidKeyException e) { - throw new ProtocolInvalidKeyException(e, metadata.getSender(), metadata.getSenderDevice()); - } - } - - if (content.getStickerPackOperationList().size() > 0) { - List operations = new LinkedList(); - - for (SyncMessage.StickerPackOperation operation : content.getStickerPackOperationList()) { - byte[] packId = operation.hasPackId() ? operation.getPackId().toByteArray() : null; - byte[] packKey = operation.hasPackKey() ? operation.getPackKey().toByteArray() : null; - StickerPackOperationMessage.Type type = null; - - if (operation.hasType()) { - switch (operation.getType()) { - case INSTALL: type = StickerPackOperationMessage.Type.INSTALL; break; - case REMOVE: type = StickerPackOperationMessage.Type.REMOVE; break; - } - } - operations.add(new StickerPackOperationMessage(packId, packKey, type)); - } - - return SignalServiceSyncMessage.forStickerPackOperations(operations); - } - - List openGroupDetails = content.getOpenGroupsList(); - if (openGroupDetails.size() > 0) { - List openGroups = new LinkedList<>(); - for (SyncMessage.OpenGroupDetails details : content.getOpenGroupsList()) { - openGroups.add(new PublicChat(details.getChannelID(), details.getUrl(), "", true)); - } - return SignalServiceSyncMessage.forOpenGroups(openGroups); - } - - if (content.hasBlocked()) { - SyncMessage.Blocked blocked = content.getBlocked(); - List publicKeys = blocked.getNumbersList(); - return SignalServiceSyncMessage.forBlocked(new BlockedListMessage(publicKeys, new ArrayList())); - } - - return SignalServiceSyncMessage.empty(); - } - - private SignalServiceCallMessage createCallMessage(CallMessage content) { - if (content.hasOffer()) { - CallMessage.Offer offerContent = content.getOffer(); - return SignalServiceCallMessage.forOffer(new OfferMessage(offerContent.getId(), offerContent.getDescription())); - } else if (content.hasAnswer()) { - CallMessage.Answer answerContent = content.getAnswer(); - return SignalServiceCallMessage.forAnswer(new AnswerMessage(answerContent.getId(), answerContent.getDescription())); - } else if (content.getIceUpdateCount() > 0) { - List iceUpdates = new LinkedList(); - - for (CallMessage.IceUpdate iceUpdate : content.getIceUpdateList()) { - iceUpdates.add(new IceUpdateMessage(iceUpdate.getId(), iceUpdate.getSdpMid(), iceUpdate.getSdpMLineIndex(), iceUpdate.getSdp())); - } - - return SignalServiceCallMessage.forIceUpdates(iceUpdates); - } else if (content.hasHangup()) { - CallMessage.Hangup hangup = content.getHangup(); - return SignalServiceCallMessage.forHangup(new HangupMessage(hangup.getId())); - } else if (content.hasBusy()) { - CallMessage.Busy busy = content.getBusy(); - return SignalServiceCallMessage.forBusy(new BusyMessage(busy.getId())); - } - - return SignalServiceCallMessage.empty(); - } - - private SignalServiceReceiptMessage createReceiptMessage(Metadata metadata, ReceiptMessage content) { - SignalServiceReceiptMessage.Type type; - - if (content.getType() == ReceiptMessage.Type.DELIVERY) type = SignalServiceReceiptMessage.Type.DELIVERY; - else if (content.getType() == ReceiptMessage.Type.READ) type = SignalServiceReceiptMessage.Type.READ; - else type = SignalServiceReceiptMessage.Type.UNKNOWN; - - return new SignalServiceReceiptMessage(type, content.getTimestampList(), metadata.getTimestamp()); - } - - private SignalServiceTypingMessage createTypingMessage(Metadata metadata, TypingMessage content) throws ProtocolInvalidMessageException { - SignalServiceTypingMessage.Action action; - - if (content.getAction() == TypingMessage.Action.STARTED) action = SignalServiceTypingMessage.Action.STARTED; - else if (content.getAction() == TypingMessage.Action.STOPPED) action = SignalServiceTypingMessage.Action.STOPPED; - else action = SignalServiceTypingMessage.Action.UNKNOWN; - - if (content.hasTimestamp() && content.getTimestamp() != metadata.getTimestamp()) { - throw new ProtocolInvalidMessageException(new InvalidMessageException("Timestamps don't match: " + content.getTimestamp() + " vs " + metadata.getTimestamp()), - metadata.getSender(), - metadata.getSenderDevice()); - } - - return new SignalServiceTypingMessage(action, content.getTimestamp(), - content.hasGroupId() ? Optional.of(content.getGroupId().toByteArray()) : - Optional.absent()); - } - - private SignalServiceDataMessage.Quote createQuote(DataMessage content) { - if (!content.hasQuote()) return null; - - List attachments = new LinkedList(); - - for (DataMessage.Quote.QuotedAttachment attachment : content.getQuote().getAttachmentsList()) { - attachments.add(new SignalServiceDataMessage.Quote.QuotedAttachment(attachment.getContentType(), - attachment.getFileName(), - attachment.hasThumbnail() ? createAttachmentPointer(attachment.getThumbnail()) : null)); - } - - return new SignalServiceDataMessage.Quote(content.getQuote().getId(), - new SignalServiceAddress(content.getQuote().getAuthor()), - content.getQuote().getText(), - attachments); - } - - private List createPreviews(DataMessage content) { - if (content.getPreviewCount() <= 0) return null; - - List results = new LinkedList(); - - for (DataMessage.Preview preview : content.getPreviewList()) { - SignalServiceAttachment attachment = null; - - if (preview.hasImage()) { - attachment = createAttachmentPointer(preview.getImage()); - } - - results.add(new Preview(preview.getUrl(), - preview.getTitle(), - Optional.fromNullable(attachment))); - } - - return results; - } - - private Sticker createSticker(DataMessage content) { - if (!content.hasSticker() || - !content.getSticker().hasPackId() || - !content.getSticker().hasPackKey() || - !content.getSticker().hasStickerId() || - !content.getSticker().hasData()) - { - return null; - } - - DataMessage.Sticker sticker = content.getSticker(); - - return new Sticker(sticker.getPackId().toByteArray(), - sticker.getPackKey().toByteArray(), - sticker.getStickerId(), - createAttachmentPointer(sticker.getData())); - } - - private List createSharedContacts(DataMessage content) { - if (content.getContactCount() <= 0) return null; - - List results = new LinkedList(); - - for (DataMessage.Contact contact : content.getContactList()) { - SharedContact.Builder builder = SharedContact.newBuilder() - .setName(SharedContact.Name.newBuilder() - .setDisplay(contact.getName().getDisplayName()) - .setFamily(contact.getName().getFamilyName()) - .setGiven(contact.getName().getGivenName()) - .setMiddle(contact.getName().getMiddleName()) - .setPrefix(contact.getName().getPrefix()) - .setSuffix(contact.getName().getSuffix()) - .build()); - - if (contact.getAddressCount() > 0) { - for (DataMessage.Contact.PostalAddress address : contact.getAddressList()) { - SharedContact.PostalAddress.Type type = SharedContact.PostalAddress.Type.HOME; - - switch (address.getType()) { - case WORK: type = SharedContact.PostalAddress.Type.WORK; break; - case HOME: type = SharedContact.PostalAddress.Type.HOME; break; - case CUSTOM: type = SharedContact.PostalAddress.Type.CUSTOM; break; - } - - builder.withAddress(SharedContact.PostalAddress.newBuilder() - .setCity(address.getCity()) - .setCountry(address.getCountry()) - .setLabel(address.getLabel()) - .setNeighborhood(address.getNeighborhood()) - .setPobox(address.getPobox()) - .setPostcode(address.getPostcode()) - .setRegion(address.getRegion()) - .setStreet(address.getStreet()) - .setType(type) - .build()); - } - } - - if (contact.getNumberCount() > 0) { - for (DataMessage.Contact.Phone phone : contact.getNumberList()) { - SharedContact.Phone.Type type = SharedContact.Phone.Type.HOME; - - switch (phone.getType()) { - case HOME: type = SharedContact.Phone.Type.HOME; break; - case WORK: type = SharedContact.Phone.Type.WORK; break; - case MOBILE: type = SharedContact.Phone.Type.MOBILE; break; - case CUSTOM: type = SharedContact.Phone.Type.CUSTOM; break; - } - - builder.withPhone(SharedContact.Phone.newBuilder() - .setLabel(phone.getLabel()) - .setType(type) - .setValue(phone.getValue()) - .build()); - } - } - - if (contact.getEmailCount() > 0) { - for (DataMessage.Contact.Email email : contact.getEmailList()) { - SharedContact.Email.Type type = SharedContact.Email.Type.HOME; - - switch (email.getType()) { - case HOME: type = SharedContact.Email.Type.HOME; break; - case WORK: type = SharedContact.Email.Type.WORK; break; - case MOBILE: type = SharedContact.Email.Type.MOBILE; break; - case CUSTOM: type = SharedContact.Email.Type.CUSTOM; break; - } - - builder.withEmail(SharedContact.Email.newBuilder() - .setLabel(email.getLabel()) - .setType(type) - .setValue(email.getValue()) - .build()); - } - } - - if (contact.hasAvatar()) { - builder.setAvatar(SharedContact.Avatar.newBuilder() - .withAttachment(createAttachmentPointer(contact.getAvatar().getAvatar())) - .withProfileFlag(contact.getAvatar().getIsProfile()) - .build()); - } - - if (contact.hasOrganization()) { - builder.withOrganization(contact.getOrganization()); - } - - results.add(builder.build()); - } - - return results; - } - - private SignalServiceAttachmentPointer createAttachmentPointer(AttachmentPointer pointer) { - return new SignalServiceAttachmentPointer(pointer.getId(), - pointer.getContentType(), - pointer.getKey().toByteArray(), - pointer.hasSize() ? Optional.of(pointer.getSize()) : Optional.absent(), - pointer.hasThumbnail() ? Optional.of(pointer.getThumbnail().toByteArray()): Optional.absent(), - pointer.getWidth(), pointer.getHeight(), - pointer.hasDigest() ? Optional.of(pointer.getDigest().toByteArray()) : Optional.absent(), - pointer.hasFileName() ? Optional.of(pointer.getFileName()) : Optional.absent(), - (pointer.getFlags() & AttachmentPointer.Flags.VOICE_MESSAGE_VALUE) != 0, - pointer.hasCaption() ? Optional.of(pointer.getCaption()) : Optional.absent(), - pointer.getUrl()); - - } - - private SignalServiceGroup createGroupInfo(DataMessage content) { - if (!content.hasGroup()) return null; - - SignalServiceGroup.Type type; - - switch (content.getGroup().getType()) { - case DELIVER: type = SignalServiceGroup.Type.DELIVER; break; - case UPDATE: type = SignalServiceGroup.Type.UPDATE; break; - case QUIT: type = SignalServiceGroup.Type.QUIT; break; - case REQUEST_INFO: type = SignalServiceGroup.Type.REQUEST_INFO; break; - default: type = SignalServiceGroup.Type.UNKNOWN; break; - } - - if (content.getGroup().getType() != DELIVER) { - String name = null; - List members = null; - SignalServiceAttachmentPointer avatar = null; - List admins = null; - - if (content.getGroup().hasName()) { - name = content.getGroup().getName(); - } - - if (content.getGroup().getMembersCount() > 0) { - members = content.getGroup().getMembersList(); - } - - if (content.getGroup().hasAvatar()) { - AttachmentPointer pointer = content.getGroup().getAvatar(); - - avatar = new SignalServiceAttachmentPointer(pointer.getId(), - pointer.getContentType(), - pointer.getKey().toByteArray(), - Optional.of(pointer.getSize()), - Optional.absent(), 0, 0, - Optional.fromNullable(pointer.hasDigest() ? pointer.getDigest().toByteArray() : null), - Optional.absent(), - false, - Optional.absent(), - pointer.getUrl()); - } - - if (content.getGroup().getAdminsCount() > 0) { - admins = content.getGroup().getAdminsList(); - } - - return new SignalServiceGroup(type, content.getGroup().getId().toByteArray(), SignalServiceGroup.GroupType.SIGNAL, name, members, avatar, admins); - } - - return new SignalServiceGroup(content.getGroup().getId().toByteArray(), SignalServiceGroup.GroupType.SIGNAL); - } - - protected static class Metadata { - private final String sender; - private final int senderDevice; - private final long timestamp; - private final boolean needsReceipt; - - public Metadata(String sender, int senderDevice, long timestamp, boolean needsReceipt) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = needsReceipt; - } - - public String getSender() { - return sender; - } - - public int getSenderDevice() { - return senderDevice; - } - - public long getTimestamp() { - return timestamp; - } - - public boolean isNeedsReceipt() { - return needsReceipt; - } - } - - protected static class Plaintext { - private final Metadata metadata; - private final byte[] data; - - public Plaintext(Metadata metadata, byte[] data) { - this.metadata = metadata; - this.data = data; - } - - public Metadata getMetadata() { - return metadata; - } - - public byte[] getData() { - return data; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccess.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccess.java deleted file mode 100644 index 557d3d92f..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccess.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - - -import org.signal.libsignal.metadata.certificate.InvalidCertificateException; -import org.signal.libsignal.metadata.certificate.SenderCertificate; -import org.whispersystems.libsignal.util.ByteUtil; - -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.GCMParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class UnidentifiedAccess { - - private final byte[] unidentifiedAccessKey; - private final SenderCertificate unidentifiedCertificate; - - public UnidentifiedAccess(byte[] unidentifiedAccessKey, byte[] unidentifiedCertificate) - throws InvalidCertificateException - { - this.unidentifiedAccessKey = unidentifiedAccessKey; - this.unidentifiedCertificate = new SenderCertificate(unidentifiedCertificate); - } - - public byte[] getUnidentifiedAccessKey() { - return unidentifiedAccessKey; - } - - public SenderCertificate getUnidentifiedCertificate() { - return unidentifiedCertificate; - } - - public static byte[] deriveAccessKeyFrom(byte[] profileKey) { - try { - byte[] nonce = new byte[12]; - byte[] input = new byte[16]; - - Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); - cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(profileKey, "AES"), new GCMParameterSpec(128, nonce)); - - byte[] ciphertext = cipher.doFinal(input); - - return ByteUtil.trim(ciphertext, 16); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessPair.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessPair.java deleted file mode 100644 index 5e9ae1903..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessPair.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - - -import org.whispersystems.libsignal.util.guava.Optional; - -public class UnidentifiedAccessPair { - - private final Optional targetUnidentifiedAccess; - private final Optional selfUnidentifiedAccess; - - public UnidentifiedAccessPair(UnidentifiedAccess targetUnidentifiedAccess, UnidentifiedAccess selfUnidentifiedAccess) { - this.targetUnidentifiedAccess = Optional.of(targetUnidentifiedAccess); - this.selfUnidentifiedAccess = Optional.of(selfUnidentifiedAccess); - } - - public Optional getTargetUnidentifiedAccess() { - return targetUnidentifiedAccess; - } - - public Optional getSelfUnidentifiedAccess() { - return selfUnidentifiedAccess; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UntrustedIdentityException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UntrustedIdentityException.java deleted file mode 100644 index 75e604c76..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/crypto/UntrustedIdentityException.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.crypto; - -import org.whispersystems.libsignal.IdentityKey; - -public class UntrustedIdentityException extends Exception { - - private final IdentityKey identityKey; - private final String e164number; - - public UntrustedIdentityException(String s, String e164number, IdentityKey identityKey) { - super(s); - this.e164number = e164number; - this.identityKey = identityKey; - } - - public UntrustedIdentityException(UntrustedIdentityException e) { - this(e.getMessage(), e.getE164Number(), e.getIdentityKey()); - } - - public IdentityKey getIdentityKey() { - return identityKey; - } - - public String getE164Number() { - return e164number; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SendMessageResult.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SendMessageResult.java deleted file mode 100644 index c215c21ac..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SendMessageResult.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.whispersystems.signalservice.api.messages; - - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.loki.api.SnodeAPI; - -public class SendMessageResult { - - private final SignalServiceAddress address; - private final Success success; - private final boolean networkFailure; - private final boolean unregisteredFailure; - private final IdentityFailure identityFailure; - private final SnodeAPI.Error lokiAPIError; - - public static SendMessageResult success(SignalServiceAddress address, boolean unidentified, boolean needsSync) { - return new SendMessageResult(address, new Success(unidentified, needsSync), false, false, null, null); - } - - public static SendMessageResult lokiAPIError(SignalServiceAddress address, SnodeAPI.Error lokiAPIError) { - return new SendMessageResult(address, null, false, false, null, lokiAPIError); - } - - public static SendMessageResult networkFailure(SignalServiceAddress address) { - return new SendMessageResult(address, null, true, false, null, null); - } - - public static SendMessageResult unregisteredFailure(SignalServiceAddress address) { - return new SendMessageResult(address, null, false, true, null, null); - } - - public static SendMessageResult identityFailure(SignalServiceAddress address, IdentityKey identityKey) { - return new SendMessageResult(address, null, false, false, new IdentityFailure(identityKey), null); - } - - public SignalServiceAddress getAddress() { - return address; - } - - public Success getSuccess() { - return success; - } - - public boolean isNetworkFailure() { - return networkFailure; - } - - public boolean isUnregisteredFailure() { - return unregisteredFailure; - } - - public IdentityFailure getIdentityFailure() { - return identityFailure; - } - - public SnodeAPI.Error getLokiAPIError() { return lokiAPIError; } - - private SendMessageResult(SignalServiceAddress address, Success success, boolean networkFailure, boolean unregisteredFailure, IdentityFailure identityFailure, SnodeAPI.Error lokiAPIError) { - this.address = address; - this.success = success; - this.networkFailure = networkFailure; - this.unregisteredFailure = unregisteredFailure; - this.identityFailure = identityFailure; - this.lokiAPIError = lokiAPIError; - } - - public static class Success { - private final boolean unidentified; - private final boolean needsSync; - - private Success(boolean unidentified, boolean needsSync) { - this.unidentified = unidentified; - this.needsSync = needsSync; - } - - public boolean isUnidentified() { - return unidentified; - } - - public boolean isNeedsSync() { - return needsSync; - } - } - - public static class IdentityFailure { - private final IdentityKey identityKey; - - private IdentityFailure(IdentityKey identityKey) { - this.identityKey = identityKey; - } - - public IdentityKey getIdentityKey() { - return identityKey; - } - } - - - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachment.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachment.java deleted file mode 100644 index d4ea72c77..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachment.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; - -import java.io.InputStream; - -public abstract class SignalServiceAttachment { - - private final String contentType; - - protected SignalServiceAttachment(String contentType) { - this.contentType = contentType; - } - - public String getContentType() { - return contentType; - } - - public abstract boolean isStream(); - public abstract boolean isPointer(); - - public SignalServiceAttachmentStream asStream() { - return (SignalServiceAttachmentStream)this; - } - - public SignalServiceAttachmentPointer asPointer() { - return (SignalServiceAttachmentPointer)this; - } - - public static Builder newStreamBuilder() { - return new Builder(); - } - - public static class Builder { - - private InputStream inputStream; - private String contentType; - private String fileName; - private long length; - private ProgressListener listener; - private boolean voiceNote; - private int width; - private int height; - private String caption; - - private Builder() {} - - public Builder withStream(InputStream inputStream) { - this.inputStream = inputStream; - return this; - } - - public Builder withContentType(String contentType) { - this.contentType = contentType; - return this; - } - - public Builder withLength(long length) { - this.length = length; - return this; - } - - public Builder withFileName(String fileName) { - this.fileName = fileName; - return this; - } - - public Builder withListener(ProgressListener listener) { - this.listener = listener; - return this; - } - - public Builder withVoiceNote(boolean voiceNote) { - this.voiceNote = voiceNote; - return this; - } - - public Builder withWidth(int width) { - this.width = width; - return this; - } - - public Builder withHeight(int height) { - this.height = height; - return this; - } - - public Builder withCaption(String caption) { - this.caption = caption; - return this; - } - - public SignalServiceAttachmentStream build() { - if (inputStream == null) throw new IllegalArgumentException("Must specify stream!"); - if (contentType == null) throw new IllegalArgumentException("No content type specified!"); - if (length == 0) throw new IllegalArgumentException("No length specified!"); - - return new SignalServiceAttachmentStream(inputStream, contentType, length, Optional.fromNullable(fileName), voiceNote, Optional.absent(), width, height, Optional.fromNullable(caption), listener); - } - } - - /** - * An interface to receive progress information on upload/download of - * an attachment. - */ - public interface ProgressListener { - /** - * Called on a progress change event. - * - * @param total The total amount to transmit/receive in bytes. - * @param progress The amount that has been transmitted/received in bytes thus far - */ - public void onAttachmentProgress(long total, long progress); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentPointer.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentPointer.java deleted file mode 100644 index 82c48031e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentPointer.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2014-2017 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; - -/** - * Represents a received SignalServiceAttachment "handle." This - * is a pointer to the actual attachment content, which needs to be - * retrieved using {@link SignalServiceMessageReceiver#retrieveAttachment(SignalServiceAttachmentPointer, java.io.File, int)} - * - * @author Moxie Marlinspike - */ -public class SignalServiceAttachmentPointer extends SignalServiceAttachment { - - private final long id; - private final byte[] key; - private final Optional size; - private final Optional preview; - private final Optional digest; - private final Optional fileName; - private final boolean voiceNote; - private final int width; - private final int height; - private final Optional caption; - private final String url; - - public SignalServiceAttachmentPointer(long id, String contentType, byte[] key, - Optional size, Optional preview, - int width, int height, - Optional digest, Optional fileName, - boolean voiceNote, Optional caption, String url) - { - super(contentType); - this.id = id; - this.key = key; - this.size = size; - this.preview = preview; - this.width = width; - this.height = height; - this.digest = digest; - this.fileName = fileName; - this.voiceNote = voiceNote; - this.caption = caption; - this.url = url; - } - - public long getId() { - return id; - } - - public byte[] getKey() { - return key; - } - - @Override - public boolean isStream() { - return false; - } - - @Override - public boolean isPointer() { - return true; - } - - public Optional getSize() { - return size; - } - - public Optional getFileName() { - return fileName; - } - - public Optional getPreview() { - return preview; - } - - public Optional getDigest() { - return digest; - } - - public boolean getVoiceNote() { - return voiceNote; - } - - public int getWidth() { - return width; - } - - public int getHeight() { - return height; - } - - public Optional getCaption() { - return caption; - } - - public String getUrl() { return url; } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentStream.java deleted file mode 100644 index cf91a3163..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceAttachmentStream.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; - -import java.io.InputStream; - -/** - * Represents a local SignalServiceAttachment to be sent. - */ -public class SignalServiceAttachmentStream extends SignalServiceAttachment { - - private final InputStream inputStream; - private final long length; - private final Optional fileName; - private final ProgressListener listener; - private final Optional preview; - private final boolean voiceNote; - private final int width; - private final int height; - private final Optional caption; - - public SignalServiceAttachmentStream(InputStream inputStream, String contentType, long length, Optional fileName, boolean voiceNote, ProgressListener listener) { - this(inputStream, contentType, length, fileName, voiceNote, Optional.absent(), 0, 0, Optional.absent(), listener); - } - - public SignalServiceAttachmentStream(InputStream inputStream, String contentType, long length, Optional fileName, boolean voiceNote, Optional preview, int width, int height, Optional caption, ProgressListener listener) { - super(contentType); - this.inputStream = inputStream; - this.length = length; - this.fileName = fileName; - this.listener = listener; - this.voiceNote = voiceNote; - this.preview = preview; - this.width = width; - this.height = height; - this.caption = caption; - } - - @Override - public boolean isStream() { - return true; - } - - @Override - public boolean isPointer() { - return false; - } - - public InputStream getInputStream() { - return inputStream; - } - - public long getLength() { - return length; - } - - public Optional getFileName() { - return fileName; - } - - public ProgressListener getListener() { - return listener; - } - - public Optional getPreview() { - return preview; - } - - public boolean getVoiceNote() { - return voiceNote; - } - - public int getWidth() { - return width; - } - - public int getHeight() { - return height; - } - - public Optional getCaption() { - return caption; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java deleted file mode 100644 index e5dcf5a05..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage; -import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink; -import org.whispersystems.signalservice.loki.protocol.sessionmanagement.PreKeyBundleMessage; - -public class SignalServiceContent { - private final String sender; - private final int senderDevice; - private final long timestamp; - private final boolean needsReceipt; - - // Loki - private final boolean isDeviceUnlinkingRequest; - - private Optional message; - private Optional synchronizeMessage; - private final Optional callMessage; - private final Optional nullMessage; - private final Optional readMessage; - private final Optional typingMessage; - - // Loki - private final Optional deviceLink; - public Optional preKeyBundleMessage = Optional.absent(); - public Optional senderDisplayName = Optional.absent(); - public Optional senderProfilePictureURL = Optional.absent(); - - public SignalServiceContent(SignalServiceDataMessage message, String sender, int senderDevice, long timestamp, boolean needsReceipt, boolean isDeviceUnlinkingRequest) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = needsReceipt; - this.message = Optional.fromNullable(message); - this.synchronizeMessage = Optional.absent(); - this.callMessage = Optional.absent(); - this.nullMessage = Optional.absent(); - this.readMessage = Optional.absent(); - this.typingMessage = Optional.absent(); - this.deviceLink = Optional.absent(); - this.isDeviceUnlinkingRequest = isDeviceUnlinkingRequest; - } - - public SignalServiceContent(SignalServiceSyncMessage synchronizeMessage, String sender, int senderDevice, long timestamp) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = false; - this.message = Optional.absent(); - this.synchronizeMessage = Optional.fromNullable(synchronizeMessage); - this.callMessage = Optional.absent(); - this.nullMessage = Optional.absent(); - this.readMessage = Optional.absent(); - this.typingMessage = Optional.absent(); - this.deviceLink = Optional.absent(); - this.isDeviceUnlinkingRequest = false; - } - - public SignalServiceContent(SignalServiceCallMessage callMessage, String sender, int senderDevice, long timestamp) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = false; - this.message = Optional.absent(); - this.synchronizeMessage = Optional.absent(); - this.callMessage = Optional.of(callMessage); - this.nullMessage = Optional.absent(); - this.readMessage = Optional.absent(); - this.typingMessage = Optional.absent(); - this.deviceLink = Optional.absent(); - this.isDeviceUnlinkingRequest = false; - } - - public SignalServiceContent(SignalServiceReceiptMessage receiptMessage, String sender, int senderDevice, long timestamp) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = false; - this.message = Optional.absent(); - this.synchronizeMessage = Optional.absent(); - this.callMessage = Optional.absent(); - this.nullMessage = Optional.absent(); - this.readMessage = Optional.of(receiptMessage); - this.typingMessage = Optional.absent(); - this.deviceLink = Optional.absent(); - this.isDeviceUnlinkingRequest = false; - } - - public SignalServiceContent(SignalServiceTypingMessage typingMessage, String sender, int senderDevice, long timestamp) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = false; - this.message = Optional.absent(); - this.synchronizeMessage = Optional.absent(); - this.callMessage = Optional.absent(); - this.nullMessage = Optional.absent(); - this.readMessage = Optional.absent(); - this.typingMessage = Optional.of(typingMessage); - this.deviceLink = Optional.absent(); - this.isDeviceUnlinkingRequest = false; - } - - public SignalServiceContent(DeviceLink deviceLink, String sender, int senderDevice, long timestamp) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = false; - this.message = Optional.absent(); - this.synchronizeMessage = Optional.absent(); - this.callMessage = Optional.absent(); - this.nullMessage = Optional.absent(); - this.readMessage = Optional.absent(); - this.typingMessage = Optional.absent(); - this.deviceLink = Optional.fromNullable(deviceLink); - this.isDeviceUnlinkingRequest = false; - } - - public SignalServiceContent(SignalServiceNullMessage nullMessage, String sender, int senderDevice, long timestamp) { - this.sender = sender; - this.senderDevice = senderDevice; - this.timestamp = timestamp; - this.needsReceipt = false; - this.message = Optional.absent(); - this.synchronizeMessage = Optional.absent(); - this.callMessage = Optional.absent(); - this.nullMessage = Optional.of(nullMessage); - this.readMessage = Optional.absent(); - this.typingMessage = Optional.absent(); - this.deviceLink = Optional.absent(); - this.isDeviceUnlinkingRequest = false; - } - - public Optional getDataMessage() { - return message; - } - - public void setDataMessage(SignalServiceDataMessage message) { this.message = Optional.fromNullable(message); } - - public Optional getSyncMessage() { return synchronizeMessage; } - - public void setSyncMessage(SignalServiceSyncMessage message) { this.synchronizeMessage = Optional.fromNullable(message); } - - public Optional getCallMessage() { - return callMessage; - } - - public Optional getReceiptMessage() { - return readMessage; - } - - public Optional getTypingMessage() { - return typingMessage; - } - - public String getSender() { - return sender; - } - - public int getSenderDevice() { - return senderDevice; - } - - public long getTimestamp() { - return timestamp; - } - - public boolean isNeedsReceipt() { - return needsReceipt; - } - - public Optional getNullMessage() { return nullMessage; } - - // Loki - public boolean isDeviceUnlinkingRequest() { return isDeviceUnlinkingRequest; } - - public Optional getDeviceLink() { return deviceLink; } - - public void setPreKeyBundleMessage(PreKeyBundleMessage preKeyBundleMessage) { this.preKeyBundleMessage = Optional.fromNullable(preKeyBundleMessage); } - - public void setSenderDisplayName(String displayName) { senderDisplayName = Optional.fromNullable(displayName); } - - public void setSenderProfilePictureURL(String url) { senderProfilePictureURL = Optional.fromNullable(url); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.java deleted file mode 100644 index 9132f139a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.java +++ /dev/null @@ -1,524 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.state.PreKeyBundle; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.shared.SharedContact; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink; - -import java.util.LinkedList; -import java.util.List; - -/** - * Represents a decrypted Signal Service data message. - */ -public class SignalServiceDataMessage { - private final long timestamp; - private final Optional> attachments; - private final Optional body; - public final Optional group; - private final Optional profileKey; - private final boolean endSession; - private final boolean expirationUpdate; - private final int expiresInSeconds; - private final boolean profileKeyUpdate; - private final Optional quote; - public final Optional> contacts; - private final Optional> previews; - private final Optional sticker; - // Loki - private final Optional preKeyBundle; - private final Optional deviceLink; - private final Optional closedGroupUpdate; - private final boolean isDeviceUnlinkingRequest; - - /** - * Construct a SignalServiceDataMessage with a body and no attachments. - * - * @param timestamp The sent timestamp. - * @param body The message contents. - */ - public SignalServiceDataMessage(long timestamp, String body) { - this(timestamp, body, 0); - } - - /** - * Construct an expiring SignalServiceDataMessage with a body and no attachments. - * - * @param timestamp The sent timestamp. - * @param body The message contents. - * @param expiresInSeconds The number of seconds in which the message should expire after having been seen. - */ - public SignalServiceDataMessage(long timestamp, String body, int expiresInSeconds) { - this(timestamp, (List)null, body, expiresInSeconds); - } - - - public SignalServiceDataMessage(final long timestamp, final SignalServiceAttachment attachment, final String body) { - this(timestamp, new LinkedList() {{add(attachment);}}, body); - } - - /** - * Construct a SignalServiceDataMessage with a body and list of attachments. - * - * @param timestamp The sent timestamp. - * @param attachments The attachments. - * @param body The message contents. - */ - public SignalServiceDataMessage(long timestamp, List attachments, String body) { - this(timestamp, attachments, body, 0); - } - - /** - * Construct an expiring SignalServiceDataMessage with a body and list of attachments. - * - * @param timestamp The sent timestamp. - * @param attachments The attachments. - * @param body The message contents. - * @param expiresInSeconds The number of seconds in which the message should expire after having been seen. - */ - public SignalServiceDataMessage(long timestamp, List attachments, String body, int expiresInSeconds) { - this(timestamp, null, attachments, body, expiresInSeconds); - } - - /** - * Construct a SignalServiceDataMessage group message with attachments and body. - * - * @param timestamp The sent timestamp. - * @param group The group information. - * @param attachments The attachments. - * @param body The message contents. - */ - public SignalServiceDataMessage(long timestamp, SignalServiceGroup group, List attachments, String body) { - this(timestamp, group, attachments, body, 0); - } - - - /** - * Construct an expiring SignalServiceDataMessage group message with attachments and body. - * - * @param timestamp The sent timestamp. - * @param group The group information. - * @param attachments The attachments. - * @param body The message contents. - * @param expiresInSeconds The number of seconds in which a message should disappear after having been seen. - */ - public SignalServiceDataMessage(long timestamp, SignalServiceGroup group, List attachments, String body, int expiresInSeconds) { - this(timestamp, group, attachments, body, false, expiresInSeconds, false, null, false, null, null, null, null); - } - - /** - * Construct a SignalServiceDataMessage. - * - * @param timestamp The sent timestamp. - * @param group The group information (or null if none). - * @param attachments The attachments (or null if none). - * @param body The message contents. - * @param endSession Flag indicating whether this message should close a session. - * @param expiresInSeconds Number of seconds in which the message should disappear after being seen. - */ - public SignalServiceDataMessage(long timestamp, SignalServiceGroup group, - List attachments, - String body, boolean endSession, int expiresInSeconds, - boolean expirationUpdate, byte[] profileKey, boolean profileKeyUpdate, - Quote quote, List sharedContacts, List previews, - Sticker sticker) - { - this(timestamp, group, attachments, body, endSession, expiresInSeconds, expirationUpdate, profileKey, profileKeyUpdate, quote, sharedContacts, previews, sticker, null, null, null, false); - } - - /** - * Construct a SignalServiceDataMessage. - * - * @param timestamp The sent timestamp. - * @param group The group information (or null if none). - * @param attachments The attachments (or null if none). - * @param body The message contents. - * @param endSession Flag indicating whether this message should close a session. - * @param expiresInSeconds Number of seconds in which the message should disappear after being seen. - * @param preKeyBundle The pre key bundle to attach to this message (or null if none). - */ - public SignalServiceDataMessage(long timestamp, SignalServiceGroup group, - List attachments, - String body, boolean endSession, int expiresInSeconds, - boolean expirationUpdate, byte[] profileKey, boolean profileKeyUpdate, - Quote quote, List sharedContacts, List previews, - Sticker sticker, PreKeyBundle preKeyBundle, DeviceLink deviceLink, - ClosedGroupUpdate closedGroupUpdate, boolean isDeviceUnlinkingRequest) - { - this.timestamp = timestamp; - this.body = Optional.fromNullable(body); - this.group = Optional.fromNullable(group); - this.endSession = endSession; - this.expiresInSeconds = expiresInSeconds; - this.expirationUpdate = expirationUpdate; - this.profileKey = Optional.fromNullable(profileKey); - this.profileKeyUpdate = profileKeyUpdate; - this.quote = Optional.fromNullable(quote); - this.sticker = Optional.fromNullable(sticker); - this.preKeyBundle = Optional.fromNullable(preKeyBundle); - this.deviceLink = Optional.fromNullable(deviceLink); - this.closedGroupUpdate = Optional.fromNullable(closedGroupUpdate); - this.isDeviceUnlinkingRequest = isDeviceUnlinkingRequest; - - if (attachments != null && !attachments.isEmpty()) { - this.attachments = Optional.of(attachments); - } else { - this.attachments = Optional.absent(); - } - - if (sharedContacts != null && !sharedContacts.isEmpty()) { - this.contacts = Optional.of(sharedContacts); - } else { - this.contacts = Optional.absent(); - } - - if (previews != null && !previews.isEmpty()) { - this.previews = Optional.of(previews); - } else { - this.previews = Optional.absent(); - } - } - - public static Builder newBuilder() { - return new Builder(); - } - - /** - * @return The message timestamp. - */ - public long getTimestamp() { - return timestamp; - } - - /** - * @return The message attachments (if any). - */ - public Optional> getAttachments() { - return attachments; - } - - /** - * @return The message body (if any). - */ - public Optional getBody() { - return body; - } - - /** - * @return The message group info (if any). - */ - public Optional getGroupInfo() { - return group; - } - - public boolean isEndSession() { - return endSession; - } - - public boolean isExpirationUpdate() { - return expirationUpdate; - } - - public boolean isProfileKeyUpdate() { - return profileKeyUpdate; - } - - public boolean isGroupMessage() { - return group.isPresent(); - } - - public boolean isGroupUpdate() { - return group.isPresent() && group.get().getType() != SignalServiceGroup.Type.DELIVER; - } - - public int getExpiresInSeconds() { return expiresInSeconds; } - - public Optional getProfileKey() { - return profileKey; - } - - public Optional getQuote() { - return quote; - } - - public Optional> getSharedContacts() { - return contacts; - } - - public Optional> getPreviews() { - return previews; - } - - public Optional getSticker() { - return sticker; - } - - // Loki - public boolean isDeviceUnlinkingRequest() { - return isDeviceUnlinkingRequest; - } - - public Optional getClosedGroupUpdate() { return closedGroupUpdate; } - - public Optional getPreKeyBundle() { return preKeyBundle; } - - public Optional getDeviceLink() { return deviceLink; } - - public boolean hasVisibleContent() { - return (body.isPresent() && !body.get().isEmpty()) - || (attachments.isPresent() && !attachments.get().isEmpty()); - } - - public int getTTL() { - if (deviceLink.isPresent()) { return TTLUtilities.getTTL(TTLUtilities.MessageType.DeviceLink); } - else if (isDeviceUnlinkingRequest) { return TTLUtilities.getTTL(TTLUtilities.MessageType.DeviceUnlinkingRequest); } - return TTLUtilities.getTTL(TTLUtilities.MessageType.Regular); - } - - public static class Builder { - private List attachments = new LinkedList(); - private List sharedContacts = new LinkedList(); - private List previews = new LinkedList(); - - private long timestamp; - private SignalServiceGroup group; - private String body; - private boolean endSession; - private int expiresInSeconds; - private boolean expirationUpdate; - private byte[] profileKey; - private boolean profileKeyUpdate; - private Quote quote; - private Sticker sticker; - private PreKeyBundle preKeyBundle; - private DeviceLink deviceLink; - private boolean isDeviceUnlinkingRequest; - - private Builder() {} - - public Builder withTimestamp(long timestamp) { - this.timestamp = timestamp; - return this; - } - - public Builder asGroupMessage(SignalServiceGroup group) { - this.group = group; - return this; - } - - public Builder withAttachment(SignalServiceAttachment attachment) { - this.attachments.add(attachment); - return this; - } - - public Builder withAttachments(List attachments) { - this.attachments.addAll(attachments); - return this; - } - - public Builder withBody(String body) { - this.body = body; - return this; - } - - public Builder asEndSessionMessage() { - return asEndSessionMessage(true); - } - - public Builder asEndSessionMessage(boolean endSession) { - this.endSession = endSession; - return this; - } - - public Builder asExpirationUpdate() { - return asExpirationUpdate(true); - } - - public Builder asExpirationUpdate(boolean expirationUpdate) { - this.expirationUpdate = expirationUpdate; - return this; - } - - public Builder withExpiration(int expiresInSeconds) { - this.expiresInSeconds = expiresInSeconds; - return this; - } - - public Builder withProfileKey(byte[] profileKey) { - this.profileKey = profileKey; - return this; - } - - public Builder asProfileKeyUpdate(boolean profileKeyUpdate) { - this.profileKeyUpdate = profileKeyUpdate; - return this; - } - - public Builder withQuote(Quote quote) { - this.quote = quote; - return this; - } - - public Builder withSharedContact(SharedContact contact) { - this.sharedContacts.add(contact); - return this; - } - - public Builder withSharedContacts(List contacts) { - this.sharedContacts.addAll(contacts); - return this; - } - - public Builder withPreviews(List previews) { - this.previews.addAll(previews); - return this; - } - - public Builder withSticker(Sticker sticker) { - this.sticker = sticker; - return this; - } - - public Builder withPreKeyBundle(PreKeyBundle preKeyBundle) { - this.preKeyBundle = preKeyBundle; - return this; - } - - public Builder withDeviceLink(DeviceLink deviceLink) { - this.deviceLink = deviceLink; - return this; - } - - public Builder asDeviceUnlinkingRequest(boolean isDeviceUnlinkingRequest) { - this.isDeviceUnlinkingRequest = isDeviceUnlinkingRequest; - return this; - } - - public SignalServiceDataMessage build() { - if (timestamp == 0) timestamp = System.currentTimeMillis(); - // closedGroupUpdate is always null because we don't use SignalServiceDataMessage to send them (we use ClosedGroupUpdateMessageSendJob) - return new SignalServiceDataMessage(timestamp, group, attachments, body, endSession, - expiresInSeconds, expirationUpdate, profileKey, - profileKeyUpdate, quote, sharedContacts, previews, - sticker, preKeyBundle, deviceLink, - null, isDeviceUnlinkingRequest); - } - } - - public static class Quote { - private final long id; - private final SignalServiceAddress author; - private final String text; - private final List attachments; - - public Quote(long id, SignalServiceAddress author, String text, List attachments) { - this.id = id; - this.author = author; - this.text = text; - this.attachments = attachments; - } - - public long getId() { - return id; - } - - public SignalServiceAddress getAuthor() { - return author; - } - - public String getText() { - return text; - } - - public List getAttachments() { - return attachments; - } - - public static class QuotedAttachment { - private final String contentType; - private final String fileName; - private final SignalServiceAttachment thumbnail; - - public QuotedAttachment(String contentType, String fileName, SignalServiceAttachment thumbnail) { - this.contentType = contentType; - this.fileName = fileName; - this.thumbnail = thumbnail; - } - - public String getContentType() { - return contentType; - } - - public String getFileName() { - return fileName; - } - - public SignalServiceAttachment getThumbnail() { - return thumbnail; - } - } - } - - public static class Preview { - private final String url; - private final String title; - private final Optional image; - - public Preview(String url, String title, Optional image) { - this.url = url; - this.title = title; - this.image = image; - } - - public String getUrl() { - return url; - } - - public String getTitle() { - return title; - } - - public Optional getImage() { - return image; - } - } - - public static class Sticker { - private final byte[] packId; - private final byte[] packKey; - private final int stickerId; - private final SignalServiceAttachment attachment; - - public Sticker(byte[] packId, byte[] packKey, int stickerId, SignalServiceAttachment attachment) { - this.packId = packId; - this.packKey = packKey; - this.stickerId = stickerId; - this.attachment = attachment; - } - - public byte[] getPackId() { - return packId; - } - - public byte[] getPackKey() { - return packKey; - } - - public int getStickerId() { - return stickerId; - } - - public SignalServiceAttachment getAttachment() { - return attachment; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceEnvelope.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceEnvelope.java deleted file mode 100644 index 97fe85aa4..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceEnvelope.java +++ /dev/null @@ -1,348 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.InvalidVersionException; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.internal.util.Hex; - -import java.io.IOException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.Arrays; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -/** - * This class represents an encrypted Signal Service envelope. - * - * The envelope contains the wrapping information, such as the sender, the - * message timestamp, the encrypted message type, etc. - * - * @author Moxie Marlinspike - */ -public class SignalServiceEnvelope { - - private static final String TAG = SignalServiceEnvelope.class.getSimpleName(); - - private static final int SUPPORTED_VERSION = 1; - private static final int CIPHER_KEY_SIZE = 32; - private static final int MAC_KEY_SIZE = 20; - private static final int MAC_SIZE = 10; - - private static final int VERSION_OFFSET = 0; - private static final int VERSION_LENGTH = 1; - private static final int IV_OFFSET = VERSION_OFFSET + VERSION_LENGTH; - private static final int IV_LENGTH = 16; - private static final int CIPHERTEXT_OFFSET = IV_OFFSET + IV_LENGTH; - - private final Envelope envelope; - - /** - * Construct an envelope from a serialized, Base64 encoded SignalServiceEnvelope, encrypted - * with a signaling key. - * - * @param message The serialized SignalServiceEnvelope, base64 encoded and encrypted. - * @param signalingKey The signaling key. - * @throws IOException - * @throws InvalidVersionException - */ - public SignalServiceEnvelope(String message, String signalingKey, boolean isSignalingKeyEncrypted) - throws IOException, InvalidVersionException - { - this(Base64.decode(message), signalingKey, isSignalingKeyEncrypted); - } - - /** - * Construct an envelope from a serialized SignalServiceEnvelope, encrypted with a signaling key. - * - * @param input The serialized and (optionally) encrypted SignalServiceEnvelope. - * @param signalingKey The signaling key. - * @throws InvalidVersionException - * @throws IOException - */ - public SignalServiceEnvelope(byte[] input, String signalingKey, boolean isSignalingKeyEncrypted) - throws InvalidVersionException, IOException - { - if (!isSignalingKeyEncrypted) { - this.envelope = Envelope.parseFrom(input); - } else { - if (input.length < VERSION_LENGTH || input[VERSION_OFFSET] != SUPPORTED_VERSION) { - throw new InvalidVersionException("Unsupported version!"); - } - - SecretKeySpec cipherKey = getCipherKey(signalingKey); - SecretKeySpec macKey = getMacKey(signalingKey); - - verifyMac(input, macKey); - - this.envelope = Envelope.parseFrom(getPlaintext(input, cipherKey)); - } - } - - public SignalServiceEnvelope(SignalServiceProtos.Envelope proto) { - Envelope.Builder builder = Envelope.newBuilder(); - builder.setType(Envelope.Type.valueOf(proto.getType().getNumber())); - if (proto.getSource() != null) { - builder.setSource(proto.getSource()); - } - if (proto.getSourceDevice() > 0) { - builder.setSourceDevice(proto.getSourceDevice()); - } - builder.setTimestamp(proto.getTimestamp()); - builder.setServerTimestamp(proto.getServerTimestamp()); - if (proto.getServerGuid() != null) { - builder.setServerGuid(proto.getServerGuid()); - } - if (proto.getLegacyMessage() != null) { - builder.setLegacyMessage(ByteString.copyFrom(proto.getLegacyMessage().toByteArray())); - } - if (proto.getContent() != null) { - builder.setContent(ByteString.copyFrom(proto.getContent().toByteArray())); - } - this.envelope = builder.build(); - } - - public SignalServiceEnvelope(int type, String sender, int senderDevice, long timestamp, byte[] legacyMessage, byte[] content, long serverTimestamp, String uuid) { - Envelope.Builder builder = Envelope.newBuilder() - .setType(Envelope.Type.valueOf(type)) - .setSource(sender) - .setSourceDevice(senderDevice) - .setTimestamp(timestamp) - .setServerTimestamp(serverTimestamp); - - if (uuid != null) { - builder.setServerGuid(uuid); - } - - if (legacyMessage != null) builder.setLegacyMessage(ByteString.copyFrom(legacyMessage)); - if (content != null) builder.setContent(ByteString.copyFrom(content)); - - this.envelope = builder.build(); - } - - public SignalServiceEnvelope(int type, long timestamp, byte[] legacyMessage, byte[] content, long serverTimestamp, String uuid) { - Envelope.Builder builder = Envelope.newBuilder() - .setType(Envelope.Type.valueOf(type)) - .setTimestamp(timestamp) - .setServerTimestamp(serverTimestamp); - - if (uuid != null) { - builder.setServerGuid(uuid); - } - - if (legacyMessage != null) builder.setLegacyMessage(ByteString.copyFrom(legacyMessage)); - if (content != null) builder.setContent(ByteString.copyFrom(content)); - - this.envelope = builder.build(); - } - - public String getUuid() { - return envelope.getServerGuid(); - } - - public boolean hasUuid() { - return envelope.hasServerGuid(); - } - - public boolean hasSource() { - return envelope.hasSource() && envelope.getSource().length() > 0; - } - - /** - * @return The envelope's sender. - */ - public String getSource() { - return envelope.getSource(); - } - - public boolean hasSourceDevice() { - return envelope.hasSourceDevice(); - } - - /** - * @return The envelope's sender device ID. - */ - public int getSourceDevice() { - return envelope.getSourceDevice(); - } - - /** - * @return The envelope's sender as a SignalServiceAddress. - */ - public SignalServiceAddress getSourceAddress() { - return new SignalServiceAddress(envelope.getSource()); - } - - /** - * @return The envelope content type. - */ - public int getType() { - return envelope.getType().getNumber(); - } - - /** - * @return The timestamp this envelope was sent. - */ - public long getTimestamp() { - return envelope.getTimestamp(); - } - - public long getServerTimestamp() { - return envelope.getServerTimestamp(); - } - - /** - * @return Whether the envelope contains a SignalServiceDataMessage - */ - public boolean hasLegacyMessage() { - return envelope.hasLegacyMessage(); - } - - /** - * @return The envelope's containing SignalService message. - */ - public byte[] getLegacyMessage() { - return envelope.getLegacyMessage().toByteArray(); - } - - /** - * @return Whether the envelope contains an encrypted SignalServiceContent - */ - public boolean hasContent() { - return envelope.hasContent(); - } - - /** - * @return The envelope's encrypted SignalServiceContent. - */ - public byte[] getContent() { - return envelope.getContent().toByteArray(); - } - - /** - * @return true if the containing message is a {@link org.whispersystems.libsignal.protocol.SignalMessage} - */ - public boolean isSignalMessage() { - return envelope.getType().getNumber() == Envelope.Type.CIPHERTEXT_VALUE; - } - - /** - * @return true if the containing message is a {@link org.whispersystems.libsignal.protocol.PreKeySignalMessage} - */ - public boolean isPreKeySignalMessage() { - return envelope.getType().getNumber() == Envelope.Type.PREKEY_BUNDLE_VALUE; - } - - /** - * @return true if the containing message is a delivery receipt. - */ - public boolean isReceipt() { - return envelope.getType().getNumber() == Envelope.Type.RECEIPT_VALUE; - } - - public boolean isUnidentifiedSender() { - return envelope.getType().getNumber() == Envelope.Type.UNIDENTIFIED_SENDER_VALUE; - } - - public boolean isFallbackMessage() { - return envelope.getType().getNumber() == Envelope.Type.FALLBACK_MESSAGE_VALUE; - } - - public boolean isClosedGroupCiphertext() { - return envelope.getType().getNumber() == Envelope.Type.CLOSED_GROUP_CIPHERTEXT_VALUE; - } - - private byte[] getPlaintext(byte[] ciphertext, SecretKeySpec cipherKey) throws IOException { - try { - byte[] ivBytes = new byte[IV_LENGTH]; - System.arraycopy(ciphertext, IV_OFFSET, ivBytes, 0, ivBytes.length); - IvParameterSpec iv = new IvParameterSpec(ivBytes); - - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.DECRYPT_MODE, cipherKey, iv); - - return cipher.doFinal(ciphertext, CIPHERTEXT_OFFSET, - ciphertext.length - VERSION_LENGTH - IV_LENGTH - MAC_SIZE); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - Log.w(TAG, e); - throw new IOException("Bad padding?"); - } - } - - private void verifyMac(byte[] ciphertext, SecretKeySpec macKey) throws IOException { - try { - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(macKey); - - if (ciphertext.length < MAC_SIZE + 1) - throw new IOException("Invalid MAC!"); - - mac.update(ciphertext, 0, ciphertext.length - MAC_SIZE); - - byte[] ourMacFull = mac.doFinal(); - byte[] ourMacBytes = new byte[MAC_SIZE]; - System.arraycopy(ourMacFull, 0, ourMacBytes, 0, ourMacBytes.length); - - byte[] theirMacBytes = new byte[MAC_SIZE]; - System.arraycopy(ciphertext, ciphertext.length-MAC_SIZE, theirMacBytes, 0, theirMacBytes.length); - - Log.w(TAG, "Our MAC: " + Hex.toString(ourMacBytes)); - Log.w(TAG, "Thr MAC: " + Hex.toString(theirMacBytes)); - - if (!Arrays.equals(ourMacBytes, theirMacBytes)) { - throw new IOException("Invalid MAC compare!"); - } - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - - - private SecretKeySpec getCipherKey(String signalingKey) throws IOException { - byte[] signalingKeyBytes = Base64.decode(signalingKey); - byte[] cipherKey = new byte[CIPHER_KEY_SIZE]; - System.arraycopy(signalingKeyBytes, 0, cipherKey, 0, cipherKey.length); - - return new SecretKeySpec(cipherKey, "AES"); - } - - - private SecretKeySpec getMacKey(String signalingKey) throws IOException { - byte[] signalingKeyBytes = Base64.decode(signalingKey); - byte[] macKey = new byte[MAC_KEY_SIZE]; - System.arraycopy(signalingKeyBytes, CIPHER_KEY_SIZE, macKey, 0, macKey.length); - - return new SecretKeySpec(macKey, "HmacSHA256"); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroup.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroup.java deleted file mode 100644 index ffb614418..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroup.java +++ /dev/null @@ -1,167 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; - -import java.util.List; - -/** - * Group information to include in SignalServiceMessages destined to groups. - * - * This class represents a "context" that is included with Signal Service messages - * to make them group messages. There are three types of context: - * - * 1) Update -- Sent when either creating a group, or updating the properties - * of a group (such as the avatar icon, membership list, or title). - * 2) Deliver -- Sent when a message is to be delivered to an existing group. - * 3) Quit -- Sent when the sender wishes to leave an existing group. - * - * @author Moxie Marlinspike - */ -public class SignalServiceGroup { - - public enum GroupType { - SIGNAL, - PUBLIC_CHAT, - RSS_FEED - } - - public enum Type { - UNKNOWN, - UPDATE, - DELIVER, - QUIT, - REQUEST_INFO - } - - private final byte[] groupId; - private final GroupType groupType; - private final Type type; - private final Optional name; - private final Optional> members; - private final Optional avatar; - private final Optional> admins; - - - /** - * Construct a DELIVER group context. - * @param groupId - */ - public SignalServiceGroup(byte[] groupId, GroupType groupType) { - this(Type.DELIVER, groupId, groupType, null, null, null, null); - } - - /** - * Construct a group context. - * @param type The group message type (update, deliver, quit). - * @param groupId The group ID. - * @param name The group title. - * @param members The group membership list. - * @param avatar The group avatar icon. - */ - public SignalServiceGroup(Type type, byte[] groupId, GroupType groupType, String name, - List members, - SignalServiceAttachment avatar, - List admins) - { - this.type = type; - this.groupId = groupId; - this.groupType = groupType; - this.name = Optional.fromNullable(name); - this.members = Optional.fromNullable(members); - this.avatar = Optional.fromNullable(avatar); - this.admins = Optional.fromNullable(admins); - } - - public byte[] getGroupId() { - return groupId; - } - - public GroupType getGroupType() { return groupType; } - - public Type getType() { - return type; - } - - public Optional getName() { - return name; - } - - public Optional> getMembers() { - return members; - } - - public Optional getAvatar() { - return avatar; - } - - public Optional> getAdmins() { - return admins; - } - - public static Builder newUpdateBuilder() { - return new Builder(Type.UPDATE); - } - - public static Builder newBuilder(Type type) { - return new Builder(type); - } - - public static class Builder { - - private GroupType groupType; - private Type type; - private byte[] id; - private String name; - private List members; - private SignalServiceAttachment avatar; - private List admins; - - private Builder(Type type) { - this.type = type; - } - - public Builder withId(byte[] id, GroupType type) { - this.id = id; - this.groupType = type; - return this; - } - - public Builder withName(String name) { - this.name = name; - return this; - } - - public Builder withMembers(List members) { - this.members = members; - return this; - } - - public Builder withAvatar(SignalServiceAttachment avatar) { - this.avatar = avatar; - return this; - } - - public Builder withAdmins(List admins) { - this.admins = admins; - return this; - } - - public SignalServiceGroup build() { - if (id == null) throw new IllegalArgumentException("No group ID specified!"); - - if (type == Type.UPDATE && name == null && members == null && avatar == null && admins == null) { - throw new IllegalArgumentException("Group update with no updates!"); - } - - return new SignalServiceGroup(type, id, groupType, name, members, avatar, admins); - } - - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceNullMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceNullMessage.java deleted file mode 100644 index adb071460..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceNullMessage.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; - -public class SignalServiceNullMessage { - - public int getTTL() { return TTLUtilities.getTTL(TTLUtilities.MessageType.Ephemeral); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceReceiptMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceReceiptMessage.java deleted file mode 100644 index 2c1a2449a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceReceiptMessage.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.whispersystems.signalservice.api.messages; - - -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; - -import java.util.List; - -public class SignalServiceReceiptMessage { - - public enum Type { - UNKNOWN, DELIVERY, READ - } - - private final Type type; - private final List timestamps; - private final long when; - - public SignalServiceReceiptMessage(Type type, List timestamps, long when) { - this.type = type; - this.timestamps = timestamps; - this.when = when; - } - - public Type getType() { - return type; - } - - public List getTimestamps() { - return timestamps; - } - - public long getWhen() { - return when; - } - - public boolean isDeliveryReceipt() { - return type == Type.DELIVERY; - } - - public boolean isReadReceipt() { - return type == Type.READ; - } - - public int getTTL() { return TTLUtilities.getTTL(TTLUtilities.MessageType.Receipt); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceStickerManifest.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceStickerManifest.java deleted file mode 100644 index e837546b7..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceStickerManifest.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class SignalServiceStickerManifest { - - private final Optional title; - private final Optional author; - private final Optional cover; - private final List stickers; - - public SignalServiceStickerManifest(String title, String author, StickerInfo cover, List stickers) { - this.title = Optional.of(title); - this.author = Optional.of(author); - this.cover = Optional.of(cover); - this.stickers = (stickers == null) ? Collections.emptyList() : new ArrayList(stickers); - } - - public Optional getTitle() { - return title; - } - - public Optional getAuthor() { - return author; - } - - public Optional getCover() { - return cover; - } - - public List getStickers() { - return stickers; - } - - public static final class StickerInfo { - private final int id; - private final String emoji; - - public StickerInfo(int id, String emoji) { - this.id = id; - this.emoji = emoji; - } - - public int getId() { - return id; - } - - public String getEmoji() { - return emoji; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceTypingMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceTypingMessage.java deleted file mode 100644 index ce90e3f14..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceTypingMessage.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.whispersystems.signalservice.api.messages; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; - -public class SignalServiceTypingMessage { - - public enum Action { - UNKNOWN, STARTED, STOPPED - } - - private final Action action; - private final long timestamp; - private final Optional groupId; - - public SignalServiceTypingMessage(Action action, long timestamp, Optional groupId) { - this.action = action; - this.timestamp = timestamp; - this.groupId = groupId; - } - - public Action getAction() { - return action; - } - - public long getTimestamp() { - return timestamp; - } - - public Optional getGroupId() { - return groupId; - } - - public boolean isTypingStarted() { - return action == Action.STARTED; - } - - public boolean isTypingStopped() { - return action == Action.STOPPED; - } - - public int getTTL() { return TTLUtilities.getTTL(TTLUtilities.MessageType.TypingIndicator); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/AnswerMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/AnswerMessage.java deleted file mode 100644 index 0ce68baad..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/AnswerMessage.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - - -public class AnswerMessage { - - private final long id; - private final String description; - - public AnswerMessage(long id, String description) { - this.id = id; - this.description = description; - } - - public String getDescription() { - return description; - } - - public long getId() { - return id; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/BusyMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/BusyMessage.java deleted file mode 100644 index 78de6cab7..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/BusyMessage.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - - -public class BusyMessage { - - private final long id; - - public BusyMessage(long id) { - this.id = id; - } - - public long getId() { - return id; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/HangupMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/HangupMessage.java deleted file mode 100644 index f04ddc288..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/HangupMessage.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - - -public class HangupMessage { - - private final long id; - - public HangupMessage(long id) { - this.id = id; - } - - public long getId() { - return id; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/IceUpdateMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/IceUpdateMessage.java deleted file mode 100644 index 0e53bea89..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/IceUpdateMessage.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - - -public class IceUpdateMessage { - - private final long id; - private final String sdpMid; - private final int sdpMLineIndex; - private final String sdp; - - public IceUpdateMessage(long id, String sdpMid, int sdpMLineIndex, String sdp) { - this.id = id; - this.sdpMid = sdpMid; - this.sdpMLineIndex = sdpMLineIndex; - this.sdp = sdp; - } - - public String getSdpMid() { - return sdpMid; - } - - public int getSdpMLineIndex() { - return sdpMLineIndex; - } - - public String getSdp() { - return sdp; - } - - public long getId() { - return id; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/OfferMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/OfferMessage.java deleted file mode 100644 index 4bdccc448..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/OfferMessage.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - - -public class OfferMessage { - - private final long id; - private final String description; - - public OfferMessage(long id, String description) { - this.id = id; - this.description = description; - } - - public String getDescription() { - return description; - } - - public long getId() { - return id; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/SignalServiceCallMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/SignalServiceCallMessage.java deleted file mode 100644 index 309c44f7a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/SignalServiceCallMessage.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; - -import java.util.LinkedList; -import java.util.List; - -public class SignalServiceCallMessage { - - private final Optional offerMessage; - private final Optional answerMessage; - private final Optional hangupMessage; - private final Optional busyMessage; - private final Optional> iceUpdateMessages; - - private SignalServiceCallMessage(Optional offerMessage, - Optional answerMessage, - Optional> iceUpdateMessages, - Optional hangupMessage, - Optional busyMessage) - { - this.offerMessage = offerMessage; - this.answerMessage = answerMessage; - this.iceUpdateMessages = iceUpdateMessages; - this.hangupMessage = hangupMessage; - this.busyMessage = busyMessage; - } - - public static SignalServiceCallMessage forOffer(OfferMessage offerMessage) { - return new SignalServiceCallMessage(Optional.of(offerMessage), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent()); - } - - public static SignalServiceCallMessage forAnswer(AnswerMessage answerMessage) { - return new SignalServiceCallMessage(Optional.absent(), - Optional.of(answerMessage), - Optional.>absent(), - Optional.absent(), - Optional.absent()); - } - - public static SignalServiceCallMessage forIceUpdates(List iceUpdateMessages) { - return new SignalServiceCallMessage(Optional.absent(), - Optional.absent(), - Optional.of(iceUpdateMessages), - Optional.absent(), - Optional.absent()); - } - - public static SignalServiceCallMessage forIceUpdate(final IceUpdateMessage iceUpdateMessage) { - List iceUpdateMessages = new LinkedList(); - iceUpdateMessages.add(iceUpdateMessage); - - return new SignalServiceCallMessage(Optional.absent(), - Optional.absent(), - Optional.of(iceUpdateMessages), - Optional.absent(), - Optional.absent()); - } - - public static SignalServiceCallMessage forHangup(HangupMessage hangupMessage) { - return new SignalServiceCallMessage(Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.of(hangupMessage), - Optional.absent()); - } - - public static SignalServiceCallMessage forBusy(BusyMessage busyMessage) { - return new SignalServiceCallMessage(Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.of(busyMessage)); - } - - - public static SignalServiceCallMessage empty() { - return new SignalServiceCallMessage(Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent()); - } - - public Optional> getIceUpdateMessages() { - return iceUpdateMessages; - } - - public Optional getAnswerMessage() { - return answerMessage; - } - - public Optional getOfferMessage() { - return offerMessage; - } - - public Optional getHangupMessage() { - return hangupMessage; - } - - public Optional getBusyMessage() { - return busyMessage; - } - - public int getTTL() { return TTLUtilities.getTTL(TTLUtilities.MessageType.Call); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/TurnServerInfo.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/TurnServerInfo.java deleted file mode 100644 index 182caf671..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/calls/TurnServerInfo.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.whispersystems.signalservice.api.messages.calls; - - -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -public class TurnServerInfo { - - @JsonProperty - private String username; - - @JsonProperty - private String password; - - @JsonProperty - private List urls; - - public String getUsername() { - return username; - } - - public String getPassword() { - return password; - } - - public List getUrls() { - return urls; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/BlockedListMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/BlockedListMessage.java deleted file mode 100644 index 4e9eae80f..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/BlockedListMessage.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - -import java.util.List; - -public class BlockedListMessage { - - private final List numbers; - private final List groupIds; - - public BlockedListMessage(List numbers, List groupIds) { - this.numbers = numbers; - this.groupIds = groupIds; - } - - public List getNumbers() { - return numbers; - } - - public List getGroupIds() { - return groupIds; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedInputStream.java deleted file mode 100644 index 8873d909c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedInputStream.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; - -public class ChunkedInputStream { - - protected final InputStream in; - - public ChunkedInputStream(InputStream in) { - this.in = in; - } - - protected int readInt32() throws IOException { - try { - byte[] bytes = new byte[4]; - Util.readFully(in, bytes); - return bytes[0] << 24 | (bytes[1] & 0xFF) << 16 | (bytes[2] & 0xFF) << 8 | (bytes[3] & 0xFF); - } catch (IndexOutOfBoundsException e) { - throw new IOException(e); - } - } - - protected int readRawVarint32() throws IOException { - byte tmp = (byte)in.read(); - if (tmp >= 0) { - return tmp; - } - int result = tmp & 0x7f; - if ((tmp = (byte)in.read()) >= 0) { - result |= tmp << 7; - } else { - result |= (tmp & 0x7f) << 7; - if ((tmp = (byte)in.read()) >= 0) { - result |= tmp << 14; - } else { - result |= (tmp & 0x7f) << 14; - if ((tmp = (byte)in.read()) >= 0) { - result |= tmp << 21; - } else { - result |= (tmp & 0x7f) << 21; - result |= (tmp = (byte)in.read()) << 28; - if (tmp < 0) { - // Discard upper 32 bits. - for (int i = 0; i < 5; i++) { - if ((byte)in.read() >= 0) { - return result; - } - } - - throw new IOException("Malformed varint!"); - } - } - } - } - - return result; - } - - protected static final class LimitedInputStream extends FilterInputStream { - - private long left; - private long mark = -1; - - LimitedInputStream(InputStream in, long limit) { - super(in); - left = limit; - } - - @Override public int available() throws IOException { - return (int) Math.min(in.available(), left); - } - - // it's okay to mark even if mark isn't supported, as reset won't work - @Override public synchronized void mark(int readLimit) { - in.mark(readLimit); - mark = left; - } - - @Override public int read() throws IOException { - if (left == 0) { - return -1; - } - - int result = in.read(); - if (result != -1) { - --left; - } - return result; - } - - @Override public int read(byte[] b, int off, int len) throws IOException { - if (left == 0) { - return -1; - } - - len = (int) Math.min(len, left); - int result = in.read(b, off, len); - if (result != -1) { - left -= result; - } - return result; - } - - @Override public synchronized void reset() throws IOException { - if (!in.markSupported()) { - throw new IOException("Mark not supported"); - } - if (mark == -1) { - throw new IOException("Mark not set"); - } - - in.reset(); - left = mark; - } - - @Override public long skip(long n) throws IOException { - n = Math.min(n, left); - long skipped = in.skip(n); - left -= skipped; - return skipped; - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedOutputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedOutputStream.java deleted file mode 100644 index 020d39ab1..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ChunkedOutputStream.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -public class ChunkedOutputStream { - - protected final OutputStream out; - - public ChunkedOutputStream(OutputStream out) { - this.out = out; - } - - protected void writeVarint32(int value) throws IOException { - while (true) { - if ((value & ~0x7F) == 0) { - out.write(value); - return; - } else { - out.write((value & 0x7F) | 0x80); - value >>>= 7; - } - } - } - - protected void writeStream(InputStream in) throws IOException { - byte[] buffer = new byte[4096]; - int read; - - while ((read = in.read(buffer)) != -1) { - out.write(buffer, 0, read); - } - - in.close(); - } - - protected byte[] toByteArray(int value) { - return new byte[] { (byte)(value >> 24), (byte)(value >> 16), (byte)(value >> 8), (byte)value }; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ConfigurationMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ConfigurationMessage.java deleted file mode 100644 index 338f23441..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ConfigurationMessage.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - - -import org.whispersystems.libsignal.util.guava.Optional; - -public class ConfigurationMessage { - - private final Optional readReceipts; - private final Optional unidentifiedDeliveryIndicators; - private final Optional typingIndicators; - private final Optional linkPreviews; - - public ConfigurationMessage(Optional readReceipts, - Optional unidentifiedDeliveryIndicators, - Optional typingIndicators, - Optional linkPreviews) - { - this.readReceipts = readReceipts; - this.unidentifiedDeliveryIndicators = unidentifiedDeliveryIndicators; - this.typingIndicators = typingIndicators; - this.linkPreviews = linkPreviews; - } - - public Optional getReadReceipts() { - return readReceipts; - } - - public Optional getUnidentifiedDeliveryIndicators() { - return unidentifiedDeliveryIndicators; - } - - public Optional getTypingIndicators() { - return typingIndicators; - } - - public Optional getLinkPreviews() { - return linkPreviews; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ContactsMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ContactsMessage.java deleted file mode 100644 index 7aaf141c4..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ContactsMessage.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - - -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; - -public class ContactsMessage { - - private final SignalServiceAttachment contacts; - private final boolean complete; - - public ContactsMessage(SignalServiceAttachment contacts, boolean complete) { - this.contacts = contacts; - this.complete = complete; - } - - public SignalServiceAttachment getContactsStream() { - return contacts; - } - - public boolean isComplete() { - return complete; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContact.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContact.java deleted file mode 100644 index b102a1131..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContact.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; - -public class DeviceContact { - - private final String number; - private final Optional name; - private final Optional avatar; - private final Optional color; - private final Optional verified; - private final Optional profileKey; - private final boolean blocked; - private final Optional expirationTimer; - - public DeviceContact(String number, Optional name, - Optional avatar, - Optional color, - Optional verified, - Optional profileKey, - boolean blocked, - Optional expirationTimer) - { - this.number = number; - this.name = name; - this.avatar = avatar; - this.color = color; - this.verified = verified; - this.profileKey = profileKey; - this.blocked = blocked; - this.expirationTimer = expirationTimer; - } - - public Optional getAvatar() { - return avatar; - } - - public Optional getName() { - return name; - } - - public String getNumber() { - return number; - } - - public Optional getColor() { - return color; - } - - public Optional getVerified() { - return verified; - } - - public Optional getProfileKey() { - return profileKey; - } - - public boolean isBlocked() { - return blocked; - } - - public Optional getExpirationTimer() { - return expirationTimer; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsInputStream.java deleted file mode 100644 index 9e71932b1..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsInputStream.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2014-2018 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -public class DeviceContactsInputStream extends ChunkedInputStream { - - private static final String TAG = DeviceContactsInputStream.class.getSimpleName(); - - public DeviceContactsInputStream(InputStream in) { - super(in); - } - - public DeviceContact read() throws Exception { - try { - long detailsLength = readInt32(); - byte[] detailsSerialized = new byte[(int) detailsLength]; - Util.readFully(in, detailsSerialized); - - SignalServiceProtos.ContactDetails details = SignalServiceProtos.ContactDetails.parseFrom(detailsSerialized); - String number = details.getNumber(); - Optional name = Optional.fromNullable(details.getName()); - Optional avatar = Optional.absent(); - Optional color = details.hasColor() ? Optional.of(details.getColor()) : Optional.absent(); - Optional verified = Optional.absent(); - Optional profileKey = Optional.absent(); - boolean blocked = false; - Optional expireTimer = Optional.absent(); - - if (details.hasAvatar()) { - long avatarLength = details.getAvatar().getLength(); - InputStream avatarStream = new LimitedInputStream(in, avatarLength); - String avatarContentType = details.getAvatar().getContentType(); - - avatar = Optional.of(new SignalServiceAttachmentStream(avatarStream, avatarContentType, avatarLength, Optional.absent(), false, null)); - } - - if (details.hasVerified()) { - try { - String destination = details.getVerified().getDestination(); - IdentityKey identityKey = new IdentityKey(details.getVerified().getIdentityKey().toByteArray(), 0); - - VerifiedMessage.VerifiedState state; - - switch (details.getVerified().getState()) { - case VERIFIED: - state = VerifiedMessage.VerifiedState.VERIFIED; - break; - case UNVERIFIED: - state = VerifiedMessage.VerifiedState.UNVERIFIED; - break; - case DEFAULT: - state = VerifiedMessage.VerifiedState.DEFAULT; - break; - default: - throw new InvalidMessageException("Unknown state: " + details.getVerified().getState()); - } - - verified = Optional.of(new VerifiedMessage(destination, identityKey, state, System.currentTimeMillis())); - } catch (InvalidKeyException e) { - Log.w(TAG, e); - verified = Optional.absent(); - } catch (InvalidMessageException e) { - Log.w(TAG, e); - verified = Optional.absent(); - } - } - - if (details.hasProfileKey()) { - profileKey = Optional.fromNullable(details.getProfileKey().toByteArray()); - } - - if (details.hasExpireTimer() && details.getExpireTimer() > 0) { - expireTimer = Optional.of(details.getExpireTimer()); - } - - blocked = details.getBlocked(); - - return new DeviceContact(number, name, avatar, color, verified, profileKey, blocked, expireTimer); - } catch (IOException e) { - return null; - } - } - - /** - * Read all device contacts. - * - * This will also close the input stream upon reading. - */ - public List readAll() throws Exception { - ArrayList devices = new ArrayList(); - try { - DeviceContact deviceContact = read(); - while (deviceContact != null) { - devices.add(deviceContact); - // Read the next contact - deviceContact = read(); - } - return devices; - } finally { - in.close(); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsOutputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsOutputStream.java deleted file mode 100644 index 5738c2670..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceContactsOutputStream.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2014-2018 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import com.google.protobuf.ByteString; - -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; - -import java.io.IOException; -import java.io.OutputStream; - -public class DeviceContactsOutputStream extends ChunkedOutputStream { - - public DeviceContactsOutputStream(OutputStream out) { - super(out); - } - - public void write(DeviceContact contact) throws IOException { - writeContactDetails(contact); - writeAvatarImage(contact); - } - - public void close() throws IOException { - out.close(); - } - - private void writeAvatarImage(DeviceContact contact) throws IOException { - if (contact.getAvatar().isPresent()) { - writeStream(contact.getAvatar().get().getInputStream()); - } - } - - private void writeContactDetails(DeviceContact contact) throws IOException { - SignalServiceProtos.ContactDetails.Builder contactDetails = SignalServiceProtos.ContactDetails.newBuilder(); - contactDetails.setNumber(contact.getNumber()); - - if (contact.getName().isPresent()) { - contactDetails.setName(contact.getName().get()); - } - - if (contact.getAvatar().isPresent()) { - SignalServiceProtos.ContactDetails.Avatar.Builder avatarBuilder = SignalServiceProtos.ContactDetails.Avatar.newBuilder(); - avatarBuilder.setContentType(contact.getAvatar().get().getContentType()); - avatarBuilder.setLength((int)contact.getAvatar().get().getLength()); - contactDetails.setAvatar(avatarBuilder); - } - - if (contact.getColor().isPresent()) { - contactDetails.setColor(contact.getColor().get()); - } - - if (contact.getVerified().isPresent()) { - SignalServiceProtos.Verified.State state; - - switch (contact.getVerified().get().getVerified()) { - case VERIFIED: state = SignalServiceProtos.Verified.State.VERIFIED; break; - case UNVERIFIED: state = SignalServiceProtos.Verified.State.UNVERIFIED; break; - default: state = SignalServiceProtos.Verified.State.DEFAULT; break; - } - - contactDetails.setVerified(SignalServiceProtos.Verified.newBuilder() - .setDestination(contact.getVerified().get().getDestination()) - .setIdentityKey(ByteString.copyFrom(contact.getVerified().get().getIdentityKey().serialize())) - .setState(state)); - } - - if (contact.getProfileKey().isPresent()) { - contactDetails.setProfileKey(ByteString.copyFrom(contact.getProfileKey().get())); - } - - if (contact.getExpirationTimer().isPresent()) { - contactDetails.setExpireTimer(contact.getExpirationTimer().get()); - } - - contactDetails.setBlocked(contact.isBlocked()); - - byte[] serializedContactDetails = contactDetails.build().toByteArray(); - - // Loki - Since iOS has trouble parsing variable length integers, just write a fixed length one - out.write(toByteArray(serializedContactDetails.length)); - out.write(serializedContactDetails); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroup.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroup.java deleted file mode 100644 index 822b2836b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroup.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; - -import java.util.List; - -public class DeviceGroup { - - private final byte[] id; - private final Optional name; - private final List members; - private final List admins; - private final Optional avatar; - private final boolean active; - private final Optional expirationTimer; - private final Optional color; - private final boolean blocked; - - public DeviceGroup(byte[] id, Optional name, List members, - List admins, - Optional avatar, - boolean active, Optional expirationTimer, - Optional color, boolean blocked) - { - this.id = id; - this.name = name; - this.members = members; - this.admins = admins; - this.avatar = avatar; - this.active = active; - this.expirationTimer = expirationTimer; - this.color = color; - this.blocked = blocked; - } - - public Optional getAvatar() { - return avatar; - } - - public Optional getName() { - return name; - } - - public byte[] getId() { - return id; - } - - public List getMembers() { - return members; - } - - public List getAdmins() { return admins; } - - public boolean isActive() { - return active; - } - - public Optional getExpirationTimer() { - return expirationTimer; - } - - public Optional getColor() { - return color; - } - - public boolean isBlocked() { - return blocked; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsInputStream.java deleted file mode 100644 index c4ac9217c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsInputStream.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2014-2018 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -public class DeviceGroupsInputStream extends ChunkedInputStream{ - - public DeviceGroupsInputStream(InputStream in) { - super(in); - } - - public DeviceGroup read() throws IOException { - try { - long detailsLength = readInt32(); - byte[] detailsSerialized = new byte[(int) detailsLength]; - Util.readFully(in, detailsSerialized); - - SignalServiceProtos.GroupDetails details = SignalServiceProtos.GroupDetails.parseFrom(detailsSerialized); - - if (!details.hasId()) { - throw new IOException("ID missing on group record!"); - } - - byte[] id = details.getId().toByteArray(); - Optional name = Optional.fromNullable(details.getName()); - List members = details.getMembersList(); - List admins = details.getAdminsList(); - Optional avatar = Optional.absent(); - boolean active = details.getActive(); - Optional expirationTimer = Optional.absent(); - Optional color = Optional.fromNullable(details.getColor()); - boolean blocked = details.getBlocked(); - - if (details.hasAvatar()) { - long avatarLength = details.getAvatar().getLength(); - InputStream avatarStream = new ChunkedInputStream.LimitedInputStream(in, avatarLength); - String avatarContentType = details.getAvatar().getContentType(); - - avatar = Optional.of(new SignalServiceAttachmentStream(avatarStream, avatarContentType, avatarLength, Optional.absent(), false, null)); - } - - if (details.hasExpireTimer() && details.getExpireTimer() > 0) { - expirationTimer = Optional.of(details.getExpireTimer()); - } - - return new DeviceGroup(id, name, members, admins, avatar, active, expirationTimer, color, blocked); - } catch (IOException e) { - return null; - } - } - - /** - * Read all device contacts. - * - * This will also close the input stream upon reading. - */ - public List readAll() throws Exception { - ArrayList devices = new ArrayList<>(); - try { - DeviceGroup deviceGroup = read(); - while (deviceGroup != null) { - devices.add(deviceGroup); - // Read the next contact - deviceGroup = read(); - } - return devices; - } finally { - in.close(); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsOutputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsOutputStream.java deleted file mode 100644 index baaf5961e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceGroupsOutputStream.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import com.google.protobuf.ByteString; - -import org.whispersystems.signalservice.internal.push.SignalServiceProtos; - -import java.io.IOException; -import java.io.OutputStream; - -public class DeviceGroupsOutputStream extends ChunkedOutputStream { - - public DeviceGroupsOutputStream(OutputStream out) { - super(out); - } - - public void write(DeviceGroup group) throws IOException { - writeGroupDetails(group); - writeAvatarImage(group); - } - - public void close() throws IOException { - out.close(); - } - - private void writeAvatarImage(DeviceGroup contact) throws IOException { - // Loki - Temporarily disable this - /* - if (contact.getAvatar().isPresent()) { - writeStream(contact.getAvatar().get().getInputStream()); - } - */ - } - - private void writeGroupDetails(DeviceGroup group) throws IOException { - SignalServiceProtos.GroupDetails.Builder groupDetails = SignalServiceProtos.GroupDetails.newBuilder(); - groupDetails.setId(ByteString.copyFrom(group.getId())); - - if (group.getName().isPresent()) { - groupDetails.setName(group.getName().get()); - } - - if (group.getAvatar().isPresent()) { - SignalServiceProtos.GroupDetails.Avatar.Builder avatarBuilder = SignalServiceProtos.GroupDetails.Avatar.newBuilder(); - avatarBuilder.setContentType(group.getAvatar().get().getContentType()); - avatarBuilder.setLength((int)group.getAvatar().get().getLength()); - groupDetails.setAvatar(avatarBuilder); - } - - if (group.getExpirationTimer().isPresent()) { - groupDetails.setExpireTimer(group.getExpirationTimer().get()); - } - - if (group.getColor().isPresent()) { - groupDetails.setColor(group.getColor().get()); - } - - groupDetails.addAllMembers(group.getMembers()); - groupDetails.addAllAdmins(group.getAdmins()); - groupDetails.setActive(group.isActive()); - groupDetails.setBlocked(group.isBlocked()); - - byte[] serializedContactDetails = groupDetails.build().toByteArray(); - - // Loki - Since iOS has trouble parsing variable length integers, just write a fixed length one - out.write(toByteArray(serializedContactDetails.length)); - out.write(serializedContactDetails); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceInfo.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceInfo.java deleted file mode 100644 index 3fedaec13..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/DeviceInfo.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class DeviceInfo { - - @JsonProperty - private long id; - - @JsonProperty - private String name; - - @JsonProperty - private long created; - - @JsonProperty - private long lastSeen; - - public DeviceInfo() {} - - public long getId() { - return id; - } - - public String getName() { - return name; - } - - public long getCreated() { - return created; - } - - public long getLastSeen() { - return lastSeen; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ReadMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ReadMessage.java deleted file mode 100644 index eb4eb45de..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/ReadMessage.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import java.util.LinkedList; -import java.util.List; - -public class ReadMessage { - - private final String sender; - private final long timestamp; - - public ReadMessage(String sender, long timestamp) { - this.sender = sender; - this.timestamp = timestamp; - } - - public long getTimestamp() { - return timestamp; - } - - public String getSender() { - return sender; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/RequestMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/RequestMessage.java deleted file mode 100644 index 823d00cbd..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/RequestMessage.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request; - -public class RequestMessage { - - private final Request request; - - public RequestMessage(Request request) { - this.request = request; - } - - public boolean isContactsRequest() { - return request.getType() == Request.Type.CONTACTS; - } - - public boolean isGroupsRequest() { - return request.getType() == Request.Type.GROUPS; - } - - public boolean isBlockedListRequest() { - return request.getType() == Request.Type.BLOCKED; - } - - public boolean isConfigurationRequest() { - return request.getType() == Request.Type.CONFIGURATION; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SentTranscriptMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SentTranscriptMessage.java deleted file mode 100644 index a00d0d974..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SentTranscriptMessage.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -public class SentTranscriptMessage { - - private final Optional destination; - private final long timestamp; - private final long expirationStartTimestamp; - private final SignalServiceDataMessage message; - private final Map unidentifiedStatus; - - // Loki - Open groups - public long messageServerID = -1; - - public SentTranscriptMessage(String destination, long timestamp, SignalServiceDataMessage message, - long expirationStartTimestamp, Map unidentifiedStatus) - { - this.destination = Optional.of(destination); - this.timestamp = timestamp; - this.message = message; - this.expirationStartTimestamp = expirationStartTimestamp; - this.unidentifiedStatus = new HashMap(unidentifiedStatus); - } - - public SentTranscriptMessage(long timestamp, SignalServiceDataMessage message) { - this.destination = Optional.absent(); - this.timestamp = timestamp; - this.message = message; - this.expirationStartTimestamp = 0; - this.unidentifiedStatus = Collections.emptyMap(); - } - - public Optional getDestination() { - return destination; - } - - public long getTimestamp() { - return timestamp; - } - - public long getExpirationStartTimestamp() { - return expirationStartTimestamp; - } - - public SignalServiceDataMessage getMessage() { - return message; - } - - public boolean isUnidentified(String destination) { - if (unidentifiedStatus.containsKey(destination)) { - return unidentifiedStatus.get(destination); - } - return false; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SignalServiceSyncMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SignalServiceSyncMessage.java deleted file mode 100644 index d7de193fb..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/SignalServiceSyncMessage.java +++ /dev/null @@ -1,249 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; - -import java.util.LinkedList; -import java.util.List; - -public class SignalServiceSyncMessage { - - private final Optional sent; - private final Optional contacts; - private final Optional groups; - private final Optional> openGroups; - private final Optional blockedList; - private final Optional request; - private final Optional> reads; - private final Optional verified; - private final Optional configuration; - private final Optional> stickerPackOperations; - - private SignalServiceSyncMessage(Optional sent, - Optional contacts, - Optional groups, - Optional blockedList, - Optional request, - Optional> reads, - Optional verified, - Optional configuration, - Optional> stickerPackOperations, - Optional> openGroups) - { - this.sent = sent; - this.contacts = contacts; - this.groups = groups; - this.blockedList = blockedList; - this.request = request; - this.reads = reads; - this.verified = verified; - this.configuration = configuration; - this.stickerPackOperations = stickerPackOperations; - this.openGroups = openGroups; - } - - public static SignalServiceSyncMessage forSentTranscript(SentTranscriptMessage sent) { - return new SignalServiceSyncMessage(Optional.of(sent), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forContacts(ContactsMessage contacts) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.of(contacts), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forGroups(SignalServiceAttachment groups) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.of(groups), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forRequest(RequestMessage request) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.of(request), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forRead(List reads) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.of(reads), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forRead(ReadMessage read) { - List reads = new LinkedList(); - reads.add(read); - - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.of(reads), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forVerified(VerifiedMessage verifiedMessage) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.of(verifiedMessage), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forBlocked(BlockedListMessage blocked) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.of(blocked), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forConfiguration(ConfigurationMessage configuration) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.of(configuration), - Optional.>absent(), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forStickerPackOperations(List stickerPackOperations) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.of(stickerPackOperations), - Optional.>absent()); - } - - public static SignalServiceSyncMessage forOpenGroups(List openGroups) { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.of(openGroups)); - } - - public static SignalServiceSyncMessage empty() { - return new SignalServiceSyncMessage(Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.absent(), - Optional.absent(), - Optional.>absent(), - Optional.>absent()); - } - - public Optional getSent() { - return sent; - } - - public Optional getGroups() { - return groups; - } - - public Optional getContacts() { - return contacts; - } - - public Optional getRequest() { - return request; - } - - public Optional> getRead() { - return reads; - } - - public Optional getBlockedList() { - return blockedList; - } - - public Optional getVerified() { - return verified; - } - - public Optional getConfiguration() { - return configuration; - } - - public Optional> getStickerPackOperations() { return stickerPackOperations; } - - public Optional> getOpenGroups() { return openGroups; } - - public int getTTL() { return TTLUtilities.getTTL(TTLUtilities.MessageType.Sync); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/StickerPackOperationMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/StickerPackOperationMessage.java deleted file mode 100644 index 8e257f5ff..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/StickerPackOperationMessage.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - -import org.whispersystems.libsignal.util.guava.Optional; - -public class StickerPackOperationMessage { - - private final Optional packId; - private final Optional packKey; - private final Optional type; - - public StickerPackOperationMessage(byte[] packId, byte[] packKey, Type type) { - this.packId = Optional.fromNullable(packId); - this.packKey = Optional.fromNullable(packKey); - this.type = Optional.fromNullable(type); - } - - public Optional getPackId() { - return packId; - } - - public Optional getPackKey() { - return packKey; - } - - public Optional getType() { - return type; - } - - public enum Type { - INSTALL, REMOVE - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/VerifiedMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/VerifiedMessage.java deleted file mode 100644 index 7daab7ac0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/multidevice/VerifiedMessage.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.whispersystems.signalservice.api.messages.multidevice; - - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities; - -public class VerifiedMessage { - - public enum VerifiedState { - DEFAULT, VERIFIED, UNVERIFIED - } - - private final String destination; - private final IdentityKey identityKey; - private final VerifiedState verified; - private final long timestamp; - - public VerifiedMessage(String destination, IdentityKey identityKey, VerifiedState verified, long timestamp) { - this.destination = destination; - this.identityKey = identityKey; - this.verified = verified; - this.timestamp = timestamp; - } - - public String getDestination() { - return destination; - } - - public IdentityKey getIdentityKey() { - return identityKey; - } - - public VerifiedState getVerified() { - return verified; - } - - public long getTimestamp() { - return timestamp; - } - - public int getTTL() { return TTLUtilities.getTTL(TTLUtilities.MessageType.Verified); } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/shared/SharedContact.java b/service/java/src/main/java/org/whispersystems/signalservice/api/messages/shared/SharedContact.java deleted file mode 100644 index 46d616b46..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/messages/shared/SharedContact.java +++ /dev/null @@ -1,513 +0,0 @@ -package org.whispersystems.signalservice.api.messages.shared; - - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; - -import java.util.LinkedList; -import java.util.List; - -public class SharedContact { - - private final Name name; - private final Optional avatar; - private final Optional> phone; - private final Optional> email; - private final Optional> address; - private final Optional organization; - - public SharedContact(Name name, - Optional avatar, - Optional> phone, - Optional> email, - Optional> address, - Optional organization) - { - this.name = name; - this.avatar = avatar; - this.phone = phone; - this.email = email; - this.address = address; - this.organization = organization; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public Name getName() { - return name; - } - - public Optional getAvatar() { - return avatar; - } - - public Optional> getPhone() { - return phone; - } - - public Optional> getEmail() { - return email; - } - - public Optional> getAddress() { - return address; - } - - public Optional getOrganization() { - return organization; - } - - public static class Avatar { - private final SignalServiceAttachment attachment; - private final boolean isProfile; - - public Avatar(SignalServiceAttachment attachment, boolean isProfile) { - this.attachment = attachment; - this.isProfile = isProfile; - } - - public SignalServiceAttachment getAttachment() { - return attachment; - } - - public boolean isProfile() { - return isProfile; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - private SignalServiceAttachment attachment; - private boolean isProfile; - - public Builder withAttachment(SignalServiceAttachment attachment) { - this.attachment = attachment; - return this; - } - - public Builder withProfileFlag(boolean isProfile) { - this.isProfile = isProfile; - return this; - } - - public Avatar build() { - return new Avatar(attachment, isProfile); - } - } - } - - public static class Name { - - private final Optional display; - private final Optional given; - private final Optional family; - private final Optional prefix; - private final Optional suffix; - private final Optional middle; - - public Name(Optional display, Optional given, Optional family, Optional prefix, Optional suffix, Optional middle) { - this.display = display; - this.given = given; - this.family = family; - this.prefix = prefix; - this.suffix = suffix; - this.middle = middle; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public Optional getDisplay() { - return display; - } - - public Optional getGiven() { - return given; - } - - public Optional getFamily() { - return family; - } - - public Optional getPrefix() { - return prefix; - } - - public Optional getSuffix() { - return suffix; - } - - public Optional getMiddle() { - return middle; - } - - public static class Builder { - private String display; - private String given; - private String family; - private String prefix; - private String suffix; - private String middle; - - public Builder setDisplay(String display) { - this.display = display; - return this; - } - - public Builder setGiven(String given) { - this.given = given; - return this; - } - - public Builder setFamily(String family) { - this.family = family; - return this; - } - - public Builder setPrefix(String prefix) { - this.prefix = prefix; - return this; - } - - public Builder setSuffix(String suffix) { - this.suffix = suffix; - return this; - } - - public Builder setMiddle(String middle) { - this.middle = middle; - return this; - } - - public Name build() { - return new Name(Optional.fromNullable(display), - Optional.fromNullable(given), - Optional.fromNullable(family), - Optional.fromNullable(prefix), - Optional.fromNullable(suffix), - Optional.fromNullable(middle)); - } - } - } - - public static class Phone { - - public enum Type { - HOME, WORK, MOBILE, CUSTOM - } - - private final String value; - private final Type type; - private final Optional label; - - public Phone(String value, Type type, Optional label) { - this.value = value; - this.type = type; - this.label = label; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public String getValue() { - return value; - } - - public Type getType() { - return type; - } - - public Optional getLabel() { - return label; - } - - public static class Builder { - private String value; - private Type type; - private String label; - - public Builder setValue(String value) { - this.value = value; - return this; - } - - public Builder setType(Type type) { - this.type = type; - return this; - } - - public Builder setLabel(String label) { - this.label = label; - return this; - } - - public Phone build() { - return new Phone(value, type, Optional.fromNullable(label)); - } - } - } - - public static class Email { - - public enum Type { - HOME, WORK, MOBILE, CUSTOM - } - - private final String value; - private final Type type; - private final Optional label; - - public Email(String value, Type type, Optional label) { - this.value = value; - this.type = type; - this.label = label; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public String getValue() { - return value; - } - - public Type getType() { - return type; - } - - public Optional getLabel() { - return label; - } - - public static class Builder { - private String value; - private Type type; - private String label; - - public Builder setValue(String value) { - this.value = value; - return this; - } - - public Builder setType(Type type) { - this.type = type; - return this; - } - - public Builder setLabel(String label) { - this.label = label; - return this; - } - - public Email build() { - return new Email(value, type, Optional.fromNullable(label)); - } - } - } - - public static class PostalAddress { - - public enum Type { - HOME, WORK, CUSTOM - } - - private final Type type; - private final Optional label; - private final Optional street; - private final Optional pobox; - private final Optional neighborhood; - private final Optional city; - private final Optional region; - private final Optional postcode; - private final Optional country; - - public PostalAddress(Type type, Optional label, Optional street, - Optional pobox, Optional neighborhood, - Optional city, Optional region, - Optional postcode, Optional country) - { - this.type = type; - this.label = label; - this.street = street; - this.pobox = pobox; - this.neighborhood = neighborhood; - this.city = city; - this.region = region; - this.postcode = postcode; - this.country = country; - } - - public static Builder newBuilder() { - return new Builder(); - } - - public Type getType() { - return type; - } - - public Optional getLabel() { - return label; - } - - public Optional getStreet() { - return street; - } - - public Optional getPobox() { - return pobox; - } - - public Optional getNeighborhood() { - return neighborhood; - } - - public Optional getCity() { - return city; - } - - public Optional getRegion() { - return region; - } - - public Optional getPostcode() { - return postcode; - } - - public Optional getCountry() { - return country; - } - - public static class Builder { - private Type type; - private String label; - private String street; - private String pobox; - private String neighborhood; - private String city; - private String region; - private String postcode; - private String country; - - public Builder setType(Type type) { - this.type = type; - return this; - } - - public Builder setLabel(String label) { - this.label = label; - return this; - } - - public Builder setStreet(String street) { - this.street = street; - return this; - } - - public Builder setPobox(String pobox) { - this.pobox = pobox; - return this; - } - - public Builder setNeighborhood(String neighborhood) { - this.neighborhood = neighborhood; - return this; - } - - public Builder setCity(String city) { - this.city = city; - return this; - } - - public Builder setRegion(String region) { - this.region = region; - return this; - } - - public Builder setPostcode(String postcode) { - this.postcode = postcode; - return this; - } - - public Builder setCountry(String country) { - this.country = country; - return this; - } - - public PostalAddress build() { - return new PostalAddress(type, Optional.fromNullable(label), Optional.fromNullable(street), - Optional.fromNullable(pobox), Optional.fromNullable(neighborhood), - Optional.fromNullable(city), Optional.fromNullable(region), - Optional.fromNullable(postcode), Optional.fromNullable(country)); - } - } - } - - public static class Builder { - private Name name; - private Avatar avatar; - private String organization; - - private List phone = new LinkedList(); - private List email = new LinkedList(); - private List address = new LinkedList(); - - public Builder setName(Name name) { - this.name = name; - return this; - } - - public Builder withOrganization(String organization) { - this.organization = organization; - return this; - } - - public Builder setAvatar(Avatar avatar) { - this.avatar = avatar; - return this; - } - - public Builder withPhone(Phone phone) { - this.phone.add(phone); - return this; - } - - public Builder withPhones(List phones) { - this.phone.addAll(phones); - return this; - } - - public Builder withEmail(Email email) { - this.email.add(email); - return this; - } - - public Builder withEmails(List emails) { - this.email.addAll(emails); - return this; - } - - public Builder withAddress(PostalAddress address) { - this.address.add(address); - return this; - } - - public Builder withAddresses(List addresses) { - this.address.addAll(addresses); - return this; - } - - public SharedContact build() { - return new SharedContact(name, Optional.fromNullable(avatar), - phone.isEmpty() ? Optional.>absent() : Optional.of(phone), - email.isEmpty() ? Optional.>absent() : Optional.of(email), - address.isEmpty() ? Optional.>absent() : Optional.of(address), - Optional.fromNullable(organization)); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java b/service/java/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java deleted file mode 100644 index 94d4aacb2..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.whispersystems.signalservice.api.profiles; - - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class SignalServiceProfile { - - @JsonProperty - private String identityKey; - - @JsonProperty - private String name; - - @JsonProperty - private String avatar; - - @JsonProperty - private String unidentifiedAccess; - - @JsonProperty - private boolean unrestrictedUnidentifiedAccess; - - public SignalServiceProfile() {} - - public String getIdentityKey() { - return identityKey; - } - - public String getName() { - return name; - } - - public String getAvatar() { - return avatar; - } - - public String getUnidentifiedAccess() { - return unidentifiedAccess; - } - - public boolean isUnrestrictedUnidentifiedAccess() { - return unrestrictedUnidentifiedAccess; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/ContactTokenDetails.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/ContactTokenDetails.java deleted file mode 100644 index 8b6859f0c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/ContactTokenDetails.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * A class that represents a contact's registration state. - */ -public class ContactTokenDetails { - - @JsonProperty - private String token; - - @JsonProperty - private String relay; - - @JsonProperty - private String number; - - @JsonProperty - private boolean voice; - - @JsonProperty - private boolean video; - - public ContactTokenDetails() {} - - /** - * @return The "anonymized" token (truncated hash) that's transmitted to the server. - */ - public String getToken() { - return token; - } - - /** - * @return The federated server this contact is registered with, or null if on your server. - */ - public String getRelay() { - return relay; - } - - /** - * @return Whether this contact supports secure voice calls. - */ - public boolean isVoice() { - return voice; - } - - public boolean isVideo() { - return video; - } - - public void setNumber(String number) { - this.number = number; - } - - /** - * @return This contact's username (e164 formatted number). - */ - public String getNumber() { - return number; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/SignalServiceAddress.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/SignalServiceAddress.java deleted file mode 100644 index b7e92d487..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/SignalServiceAddress.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push; - -import org.whispersystems.libsignal.util.guava.Optional; - -/** - * A class representing a message destination or origin. - */ -public class SignalServiceAddress { - - public static final int DEFAULT_DEVICE_ID = 1; - - private final String e164number; - private final Optional relay; - - /** - * Construct a PushAddress. - * - * @param e164number The Signal Service username of this destination (eg e164 representation of a phone number). - * @param relay The Signal SErvicefederated server this user is registered with (if not your own server). - */ - public SignalServiceAddress(String e164number, Optional relay) { - this.e164number = e164number; - this.relay = relay; - } - - public SignalServiceAddress(String e164number) { - this(e164number, Optional.absent()); - } - - public String getNumber() { - return e164number; - } - - public Optional getRelay() { - return relay; - } - - @Override - public boolean equals(Object other) { - if (other == null || !(other instanceof SignalServiceAddress)) return false; - - SignalServiceAddress that = (SignalServiceAddress)other; - - return equals(this.e164number, that.e164number) && - equals(this.relay, that.relay); - } - - @Override - public int hashCode() { - int hashCode = 0; - - if (this.e164number != null) hashCode ^= this.e164number.hashCode(); - if (this.relay.isPresent()) hashCode ^= this.relay.get().hashCode(); - - return hashCode; - } - - private boolean equals(String one, String two) { - if (one == null) return two == null; - return one.equals(two); - } - - private boolean equals(Optional one, Optional two) { - if (one.isPresent()) return two.isPresent() && one.get().equals(two.get()); - else return !two.isPresent(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/SignedPreKeyEntity.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/SignedPreKeyEntity.java deleted file mode 100644 index 75eda1a62..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/SignedPreKeyEntity.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.signalservice.internal.push.PreKeyEntity; -import org.whispersystems.signalservice.internal.util.Base64; - -import java.io.IOException; - -public class SignedPreKeyEntity extends PreKeyEntity { - - @JsonProperty - @JsonSerialize(using = ByteArraySerializer.class) - @JsonDeserialize(using = ByteArrayDeserializer.class) - private byte[] signature; - - public SignedPreKeyEntity() {} - - public SignedPreKeyEntity(int keyId, ECPublicKey publicKey, byte[] signature) { - super(keyId, publicKey); - this.signature = signature; - } - - public byte[] getSignature() { - return signature; - } - - private static class ByteArraySerializer extends JsonSerializer { - @Override - public void serialize(byte[] value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - gen.writeString(Base64.encodeBytesWithoutPadding(value)); - } - } - - private static class ByteArrayDeserializer extends JsonDeserializer { - - @Override - public byte[] deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { - return Base64.decodeWithoutPadding(p.getValueAsString()); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/TrustStore.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/TrustStore.java deleted file mode 100644 index 5df0d13e5..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/TrustStore.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push; - -import java.io.InputStream; - -/** - * A class that represents a Java {@link java.security.KeyStore} and - * its associated password. - */ -public interface TrustStore { - public InputStream getKeyStoreInputStream(); - public String getKeyStorePassword(); -} - diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/AuthorizationFailedException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/AuthorizationFailedException.java deleted file mode 100644 index d1daad144..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/AuthorizationFailedException.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -public class AuthorizationFailedException extends NonSuccessfulResponseCodeException { - public AuthorizationFailedException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/CaptchaRequiredException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/CaptchaRequiredException.java deleted file mode 100644 index 999ca3bce..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/CaptchaRequiredException.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.whispersystems.signalservice.api.push.exceptions; - -public class CaptchaRequiredException extends NonSuccessfulResponseCodeException { -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/EncapsulatedExceptions.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/EncapsulatedExceptions.java deleted file mode 100644 index 2cbd1af11..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/EncapsulatedExceptions.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.signalservice.api.push.exceptions; - -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; - -import java.util.LinkedList; -import java.util.List; - -public class EncapsulatedExceptions extends Throwable { - - private final List untrustedIdentityExceptions; - private final List unregisteredUserExceptions; - private final List networkExceptions; - - public EncapsulatedExceptions(List untrustedIdentities, - List unregisteredUsers, - List networkExceptions) - { - this.untrustedIdentityExceptions = untrustedIdentities; - this.unregisteredUserExceptions = unregisteredUsers; - this.networkExceptions = networkExceptions; - } - - public EncapsulatedExceptions(UntrustedIdentityException e) { - this.untrustedIdentityExceptions = new LinkedList(); - this.unregisteredUserExceptions = new LinkedList(); - this.networkExceptions = new LinkedList(); - - this.untrustedIdentityExceptions.add(e); - } - - public List getUntrustedIdentityExceptions() { - return untrustedIdentityExceptions; - } - - public List getUnregisteredUserExceptions() { - return unregisteredUserExceptions; - } - - public List getNetworkExceptions() { - return networkExceptions; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/ExpectationFailedException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/ExpectationFailedException.java deleted file mode 100644 index 1b3b76d7b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/ExpectationFailedException.java +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ -package org.whispersystems.signalservice.api.push.exceptions; - -public class ExpectationFailedException extends NonSuccessfulResponseCodeException { -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NetworkFailureException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NetworkFailureException.java deleted file mode 100644 index a35072909..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NetworkFailureException.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -public class NetworkFailureException extends Exception { - - private final String e164number; - - public NetworkFailureException(String e164number, Exception nested) { - super(nested); - this.e164number = e164number; - } - - public String getE164number() { - return e164number; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NonSuccessfulResponseCodeException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NonSuccessfulResponseCodeException.java deleted file mode 100644 index 47bfde75c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NonSuccessfulResponseCodeException.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -import java.io.IOException; - -public class NonSuccessfulResponseCodeException extends IOException { - - public NonSuccessfulResponseCodeException() { - super(); - } - - public NonSuccessfulResponseCodeException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NotFoundException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NotFoundException.java deleted file mode 100644 index 97cd6bd17..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/NotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -public class NotFoundException extends NonSuccessfulResponseCodeException { - public NotFoundException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/PushNetworkException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/PushNetworkException.java deleted file mode 100644 index 22f9a6589..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/PushNetworkException.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -import java.io.IOException; - -public class PushNetworkException extends IOException { - - public PushNetworkException(Exception exception) { - super(exception); - } - - public PushNetworkException(String s) { - super(s); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RateLimitException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RateLimitException.java deleted file mode 100644 index d5888a039..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RateLimitException.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -public class RateLimitException extends NonSuccessfulResponseCodeException { - public RateLimitException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RemoteAttestationResponseExpiredException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RemoteAttestationResponseExpiredException.java deleted file mode 100644 index a51dbec22..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/RemoteAttestationResponseExpiredException.java +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (C) 2019 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -public class RemoteAttestationResponseExpiredException extends NonSuccessfulResponseCodeException { - public RemoteAttestationResponseExpiredException(String message) { - super(message); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/UnregisteredUserException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/UnregisteredUserException.java deleted file mode 100644 index 433365de8..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/push/exceptions/UnregisteredUserException.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.push.exceptions; - -import java.io.IOException; - -public class UnregisteredUserException extends IOException { - - private final String e164number; - - public UnregisteredUserException(String e164number, Exception exception) { - super(exception); - this.e164number = e164number; - } - - public String getE164Number() { - return e164number; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/CredentialsProvider.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/CredentialsProvider.java deleted file mode 100644 index e522637a9..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/CredentialsProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.util; - -public interface CredentialsProvider { - public String getUser(); - public String getPassword(); - public String getSignalingKey(); -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/InvalidNumberException.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/InvalidNumberException.java deleted file mode 100644 index a2a4cbb67..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/InvalidNumberException.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.util; - -public class InvalidNumberException extends Throwable { - public InvalidNumberException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/PhoneNumberFormatter.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/PhoneNumberFormatter.java deleted file mode 100644 index adcb94b26..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/PhoneNumberFormatter.java +++ /dev/null @@ -1,158 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.api.util; - -import com.google.i18n.phonenumbers.NumberParseException; -import com.google.i18n.phonenumbers.PhoneNumberUtil; -import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat; -import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; - -import org.whispersystems.libsignal.logging.Log; - -import java.util.Locale; -import java.util.regex.Pattern; - -/** - * Phone number formats are a pain. - * - * @author Moxie Marlinspike - * - */ -public class PhoneNumberFormatter { - - private static final String TAG = PhoneNumberFormatter.class.getSimpleName(); - - private static final String COUNTRY_CODE_BR = "55"; - private static final String COUNTRY_CODE_US = "1"; - - public static boolean isValidNumber(String e164Number, String countryCode) { - if (!PhoneNumberUtil.getInstance().isPossibleNumber(e164Number, countryCode)) { - Log.w(TAG, "Failed isPossibleNumber()"); - return false; - } - - if (COUNTRY_CODE_US.equals(countryCode) && !Pattern.matches("^\\+1\\d{10}$", e164Number)) { - Log.w(TAG, "Failed US number format check"); - return false; - } - - if (COUNTRY_CODE_BR.equals(countryCode) && !Pattern.matches("^\\+55\\d{2}9?\\d{8}$", e164Number)) { - Log.w(TAG, "Failed Brazil number format check"); - return false; - } - - return e164Number.matches("^\\+[0-9]{10,}") || - e164Number.matches("^\\+685[0-9]{5}") || - e164Number.matches("^\\+376[0-9]{6}") || - e164Number.matches("^\\+299[0-9]{6}") || - e164Number.matches("^\\+597[0-9]{6}") || - e164Number.matches("^\\+298[0-9]{6}") || - e164Number.matches("^\\+240[0-9]{6}") || - e164Number.matches("^\\+687[0-9]{6}") || - e164Number.matches("^\\+689[0-9]{6}"); - } - - private static String impreciseFormatNumber(String number, String localNumber) - throws InvalidNumberException - { - number = number.replaceAll("[^0-9+]", ""); - - if (number.charAt(0) == '+') - return number; - - if (localNumber.charAt(0) == '+') - localNumber = localNumber.substring(1); - - if (localNumber.length() == number.length() || number.length() > localNumber.length()) - return "+" + number; - - int difference = localNumber.length() - number.length(); - - return "+" + localNumber.substring(0, difference) + number; - } - - public static String formatNumberInternational(String number) { - try { - PhoneNumberUtil util = PhoneNumberUtil.getInstance(); - PhoneNumber parsedNumber = util.parse(number, null); - return util.format(parsedNumber, PhoneNumberFormat.INTERNATIONAL); - } catch (NumberParseException e) { - Log.w(TAG, e); - return number; - } - } - - public static String formatNumber(String number, String localNumber) - throws InvalidNumberException - { - if (number == null) { - throw new InvalidNumberException("Null String passed as number."); - } - - if (number.contains("@")) { - throw new InvalidNumberException("Possible attempt to use email address."); - } - - number = number.replaceAll("[^0-9+]", ""); - - if (number.length() == 0) { - throw new InvalidNumberException("No valid characters found."); - } - -// if (number.charAt(0) == '+') -// return number; - - try { - PhoneNumberUtil util = PhoneNumberUtil.getInstance(); - PhoneNumber localNumberObject = util.parse(localNumber, null); - - String localCountryCode = util.getRegionCodeForNumber(localNumberObject); - Log.w(TAG, "Got local CC: " + localCountryCode); - - PhoneNumber numberObject = util.parse(number, localCountryCode); - return util.format(numberObject, PhoneNumberFormat.E164); - } catch (NumberParseException e) { - Log.w(TAG, e); - return impreciseFormatNumber(number, localNumber); - } - } - - public static String getRegionDisplayName(String regionCode) { - return (regionCode == null || regionCode.equals("ZZ") || regionCode.equals(PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY)) - ? "Unknown country" : new Locale("", regionCode).getDisplayCountry(Locale.getDefault()); - } - - public static String formatE164(String countryCode, String number) { - try { - PhoneNumberUtil util = PhoneNumberUtil.getInstance(); - int parsedCountryCode = Integer.parseInt(countryCode); - PhoneNumber parsedNumber = util.parse(number, - util.getRegionCodeForCountryCode(parsedCountryCode)); - - return util.format(parsedNumber, PhoneNumberUtil.PhoneNumberFormat.E164); - } catch (NumberParseException e) { - Log.w(TAG, e); - } catch (NumberFormatException e) { - Log.w(TAG, e); - } - - return "+" + - countryCode.replaceAll("[^0-9]", "").replaceAll("^0*", "") + - number.replaceAll("[^0-9]", ""); - } - - public static String getInternationalFormatFromE164(String e164number) { - try { - PhoneNumberUtil util = PhoneNumberUtil.getInstance(); - PhoneNumber parsedNumber = util.parse(e164number, null); - return util.format(parsedNumber, PhoneNumberFormat.INTERNATIONAL); - } catch (NumberParseException e) { - Log.w(TAG, e); - return e164number; - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/SleepTimer.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/SleepTimer.java deleted file mode 100644 index e8a6ab8dc..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/SleepTimer.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.whispersystems.signalservice.api.util; - -public interface SleepTimer { - public void sleep(long millis) throws InterruptedException; -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/StreamDetails.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/StreamDetails.java deleted file mode 100644 index 89f16d83b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/StreamDetails.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.whispersystems.signalservice.api.util; - - -import java.io.InputStream; - -public class StreamDetails { - - private final InputStream stream; - private final String contentType; - private final long length; - - public StreamDetails(InputStream stream, String contentType, long length) { - this.stream = stream; - this.contentType = contentType; - this.length = length; - } - - public InputStream getStream() { - return stream; - } - - public String getContentType() { - return contentType; - } - - public long getLength() { - return length; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/Tls12SocketFactory.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/Tls12SocketFactory.java deleted file mode 100644 index 1ec1f326e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/Tls12SocketFactory.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.whispersystems.signalservice.api.util; - -import java.io.IOException; -import java.net.InetAddress; -import java.net.Socket; -import java.net.UnknownHostException; - -import javax.net.ssl.SSLSocket; -import javax.net.ssl.SSLSocketFactory; - -/** - * Enables TLS v1.2 when creating SSLSockets. - *

- * For some reason, android supports TLS v1.2 from API 16, but enables it by - * default only from API 20. - * @link https://developer.android.com/reference/javax/net/ssl/SSLSocket.html - * @see SSLSocketFactory - */ -public class Tls12SocketFactory extends SSLSocketFactory { - private static final String[] TLS_V12_V13_ONLY = {"TLSv1.3", "TLSv1.2"}; - - final SSLSocketFactory delegate; - - public Tls12SocketFactory(SSLSocketFactory base) { - this.delegate = base; - } - - @Override - public String[] getDefaultCipherSuites() { - return delegate.getDefaultCipherSuites(); - } - - @Override - public String[] getSupportedCipherSuites() { - return delegate.getSupportedCipherSuites(); - } - - @Override - public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException { - return patch(delegate.createSocket(s, host, port, autoClose)); - } - - @Override - public Socket createSocket(String host, int port) throws IOException, UnknownHostException { - return patch(delegate.createSocket(host, port)); - } - - @Override - public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException, UnknownHostException { - return patch(delegate.createSocket(host, port, localHost, localPort)); - } - - @Override - public Socket createSocket(InetAddress host, int port) throws IOException { - return patch(delegate.createSocket(host, port)); - } - - @Override - public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException { - return patch(delegate.createSocket(address, port, localAddress, localPort)); - } - - private Socket patch(Socket s) { - if (s instanceof SSLSocket) { - ((SSLSocket) s).setEnabledProtocols(TLS_V12_V13_ONLY); - } - return s; - } -} \ No newline at end of file diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/util/UptimeSleepTimer.java b/service/java/src/main/java/org/whispersystems/signalservice/api/util/UptimeSleepTimer.java deleted file mode 100644 index 3988db7e0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/util/UptimeSleepTimer.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.whispersystems.signalservice.api.util; - -import org.whispersystems.signalservice.api.util.SleepTimer; - -/** - * A simle sleep timer. Since Thread.sleep is based on uptime - * this will not work properly in low-power sleep modes, when - * the CPU is suspended and uptime does not elapse. - * - */ -public class UptimeSleepTimer implements SleepTimer { - @Override - public void sleep(long millis) throws InterruptedException { - Thread.sleep(millis); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/api/websocket/ConnectivityListener.java b/service/java/src/main/java/org/whispersystems/signalservice/api/websocket/ConnectivityListener.java deleted file mode 100644 index 0f06de8b0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/api/websocket/ConnectivityListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.whispersystems.signalservice.api.websocket; - - -public interface ConnectivityListener { - void onConnected(); - void onConnecting(); - void onDisconnected(); - void onAuthenticationFailure(); -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalCdnUrl.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalCdnUrl.java deleted file mode 100644 index 4d30ec40d..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalCdnUrl.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.whispersystems.signalservice.internal.configuration; - - -import org.whispersystems.signalservice.api.push.TrustStore; - -import okhttp3.ConnectionSpec; - -public class SignalCdnUrl extends SignalUrl { - public SignalCdnUrl(String url, TrustStore trustStore) { - super(url, trustStore); - } - - public SignalCdnUrl(String url, String hostHeader, TrustStore trustStore, ConnectionSpec connectionSpec) { - super(url, hostHeader, trustStore, connectionSpec); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalContactDiscoveryUrl.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalContactDiscoveryUrl.java deleted file mode 100644 index 8851c8cd0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalContactDiscoveryUrl.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.whispersystems.signalservice.internal.configuration; - - -import org.whispersystems.signalservice.api.push.TrustStore; - -import okhttp3.ConnectionSpec; - -public class SignalContactDiscoveryUrl extends SignalUrl { - - public SignalContactDiscoveryUrl(String url, TrustStore trustStore) { - super(url, trustStore); - } - - public SignalContactDiscoveryUrl(String url, String hostHeader, TrustStore trustStore, ConnectionSpec connectionSpec) { - super(url, hostHeader, trustStore, connectionSpec); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceConfiguration.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceConfiguration.java deleted file mode 100644 index 86806cd0c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceConfiguration.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.whispersystems.signalservice.internal.configuration; - - -public class SignalServiceConfiguration { - - private final SignalServiceUrl[] signalServiceUrls; - private final SignalCdnUrl[] signalCdnUrls; - private final SignalContactDiscoveryUrl[] signalContactDiscoveryUrls; - - public SignalServiceConfiguration(SignalServiceUrl[] signalServiceUrls, SignalCdnUrl[] signalCdnUrls, SignalContactDiscoveryUrl[] signalContactDiscoveryUrls) { - this.signalServiceUrls = signalServiceUrls; - this.signalCdnUrls = signalCdnUrls; - this.signalContactDiscoveryUrls = signalContactDiscoveryUrls; - } - - public SignalServiceUrl[] getSignalServiceUrls() { - return signalServiceUrls; - } - - public SignalCdnUrl[] getSignalCdnUrls() { - return signalCdnUrls; - } - - public SignalContactDiscoveryUrl[] getSignalContactDiscoveryUrls() { - return signalContactDiscoveryUrls; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceUrl.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceUrl.java deleted file mode 100644 index ac96bc6c0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalServiceUrl.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.whispersystems.signalservice.internal.configuration; - - -import org.whispersystems.signalservice.api.push.TrustStore; - -import okhttp3.ConnectionSpec; - -public class SignalServiceUrl extends SignalUrl { - - public SignalServiceUrl(String url, TrustStore trustStore) { - super(url, trustStore); - } - - public SignalServiceUrl(String url, String hostHeader, TrustStore trustStore, ConnectionSpec connectionSpec) { - super(url, hostHeader, trustStore, connectionSpec); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalUrl.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalUrl.java deleted file mode 100644 index 86434d9e0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/configuration/SignalUrl.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.whispersystems.signalservice.internal.configuration; - - -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.push.TrustStore; -import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager; - -import java.util.Collections; -import java.util.List; - -import javax.net.ssl.TrustManager; - -import okhttp3.ConnectionSpec; - -public class SignalUrl { - - private final String url; - private final Optional hostHeader; - private final Optional connectionSpec; - private TrustStore trustStore; - - public SignalUrl(String url, TrustStore trustStore) { - this(url, null, trustStore, null); - } - - public SignalUrl(String url, String hostHeader, - TrustStore trustStore, - ConnectionSpec connectionSpec) - { - this.url = url; - this.hostHeader = Optional.fromNullable(hostHeader); - this.trustStore = trustStore; - this.connectionSpec = Optional.fromNullable(connectionSpec); - } - - - public Optional getHostHeader() { - return hostHeader; - } - - public String getUrl() { - return url; - } - - public TrustStore getTrustStore() { - return trustStore; - } - - public Optional> getConnectionSpecs() { - return connectionSpec.isPresent() ? Optional.of(Collections.singletonList(connectionSpec.get())) : Optional.>absent(); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/ContactDiscoveryCipher.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/ContactDiscoveryCipher.java deleted file mode 100644 index 993536bcf..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/ContactDiscoveryCipher.java +++ /dev/null @@ -1,172 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - - -import org.threeten.bp.Instant; -import org.threeten.bp.LocalDateTime; -import org.threeten.bp.Period; -import org.threeten.bp.ZoneId; -import org.threeten.bp.ZonedDateTime; -import org.threeten.bp.format.DateTimeFormatter; -import org.whispersystems.libsignal.util.ByteUtil; -import org.whispersystems.signalservice.api.crypto.InvalidCiphertextException; -import org.whispersystems.signalservice.internal.contacts.entities.DiscoveryRequest; -import org.whispersystems.signalservice.internal.contacts.entities.DiscoveryResponse; -import org.whispersystems.signalservice.internal.contacts.entities.RemoteAttestationResponse; -import org.whispersystems.signalservice.internal.util.Hex; -import org.whispersystems.signalservice.internal.util.JsonUtil; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.KeyStore; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.SignatureException; -import java.security.cert.CertPathValidatorException; -import java.security.cert.CertificateException; -import java.util.List; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.GCMParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -public class ContactDiscoveryCipher { - - private static final int TAG_LENGTH_BYTES = 16; - private static final int TAG_LENGTH_BITS = TAG_LENGTH_BYTES * 8; - private static final long SIGNATURE_BODY_VERSION = 3L; - - public DiscoveryRequest createDiscoveryRequest(List addressBook, RemoteAttestation remoteAttestation) { - try { - ByteArrayOutputStream requestDataStream = new ByteArrayOutputStream(); - - for (String address : addressBook) { - requestDataStream.write(ByteUtil.longToByteArray(Long.parseLong(address))); - } - - byte[] requestData = requestDataStream.toByteArray(); - byte[] nonce = Util.getSecretBytes(12); - Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); - - cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(remoteAttestation.getKeys().getClientKey(), "AES"), new GCMParameterSpec(TAG_LENGTH_BITS, nonce)); - cipher.updateAAD(remoteAttestation.getRequestId()); - - byte[] cipherText = cipher.doFinal(requestData); - byte[][] parts = ByteUtil.split(cipherText, cipherText.length - TAG_LENGTH_BYTES, TAG_LENGTH_BYTES); - - return new DiscoveryRequest(addressBook.size(), remoteAttestation.getRequestId(), nonce, parts[0], parts[1]); - } catch (IOException e) { - throw new AssertionError(e); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } - } - - public byte[] getDiscoveryResponseData(DiscoveryResponse response, RemoteAttestation remoteAttestation) throws InvalidCiphertextException { - return decrypt(remoteAttestation.getKeys().getServerKey(), response.getIv(), response.getData(), response.getMac()); - } - - public byte[] getRequestId(RemoteAttestationKeys keys, RemoteAttestationResponse response) throws InvalidCiphertextException { - return decrypt(keys.getServerKey(), response.getIv(), response.getCiphertext(), response.getTag()); - } - - public void verifyServerQuote(Quote quote, byte[] serverPublicStatic, String mrenclave) - throws UnauthenticatedQuoteException - { - try { - byte[] theirServerPublicStatic = new byte[serverPublicStatic.length]; - System.arraycopy(quote.getReportData(), 0, theirServerPublicStatic, 0, theirServerPublicStatic.length); - - if (!MessageDigest.isEqual(theirServerPublicStatic, serverPublicStatic)) { - throw new UnauthenticatedQuoteException("Response quote has unauthenticated report data!"); - } - - if (!MessageDigest.isEqual(Hex.fromStringCondensed(mrenclave), quote.getMrenclave())) { - throw new UnauthenticatedQuoteException("The response quote has the wrong mrenclave value in it: " + Hex.toStringCondensed(quote.getMrenclave())); - } - - if (quote.isDebugQuote()) { - throw new UnauthenticatedQuoteException("Received quote for debuggable enclave"); - } - } catch (IOException e) { - throw new UnauthenticatedQuoteException(e); - } - } - - public void verifyIasSignature(KeyStore trustStore, String certificates, String signatureBody, String signature, Quote quote) - throws SignatureException - { - if (certificates == null || certificates.isEmpty()) { - throw new SignatureException("No certificates."); - } - - try { - SigningCertificate signingCertificate = new SigningCertificate(certificates, trustStore); - signingCertificate.verifySignature(signatureBody, signature); - - SignatureBodyEntity signatureBodyEntity = JsonUtil.fromJson(signatureBody, SignatureBodyEntity.class); - - if (signatureBodyEntity.getVersion() != SIGNATURE_BODY_VERSION) { - throw new SignatureException("Unexpected signed quote version " + signatureBodyEntity.getVersion()); - } - - if (!MessageDigest.isEqual(ByteUtil.trim(signatureBodyEntity.getIsvEnclaveQuoteBody(), 432), ByteUtil.trim(quote.getQuoteBytes(), 432))) { - throw new SignatureException("Signed quote is not the same as RA quote: " + Hex.toStringCondensed(signatureBodyEntity.getIsvEnclaveQuoteBody()) + " vs " + Hex.toStringCondensed(quote.getQuoteBytes())); - } - - if (!"OK".equals(signatureBodyEntity.getIsvEnclaveQuoteStatus())) { - throw new SignatureException("Quote status is: " + signatureBodyEntity.getIsvEnclaveQuoteStatus()); - } - - if (Instant.from(ZonedDateTime.of(LocalDateTime.from(DateTimeFormatter.ofPattern("yyy-MM-dd'T'HH:mm:ss.SSSSSS").parse(signatureBodyEntity.getTimestamp())), ZoneId.of("UTC"))) - .plus(Period.ofDays(1)) - .isBefore(Instant.now())) - { - throw new SignatureException("Signature is expired"); - } - - } catch (CertificateException e) { - throw new SignatureException(e); - } catch (CertPathValidatorException e) { - throw new SignatureException(e); - } catch (IOException e) { - throw new SignatureException(e); - } - } - - private byte[] decrypt(byte[] key, byte[] iv, byte[] ciphertext, byte[] tag) throws InvalidCiphertextException { - try { - Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); - cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, "AES"), new GCMParameterSpec(128, iv)); - - return cipher.doFinal(ByteUtil.combine(ciphertext, tag)); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch(InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new InvalidCiphertextException(e); - } catch (BadPaddingException e) { - throw new InvalidCiphertextException(e); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/Quote.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/Quote.java deleted file mode 100644 index e95536960..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/Quote.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; - -public class Quote { - - private static final long SGX_FLAGS_INITTED = 0x0000000000000001L; - private static final long SGX_FLAGS_DEBUG = 0x0000000000000002L; - private static final long SGX_FLAGS_MODE64BIT = 0x0000000000000004L; - private static final long SGX_FLAGS_PROVISION_KEY = 0x0000000000000004L; - private static final long SGX_FLAGS_EINITTOKEN_KEY = 0x0000000000000004L; - private static final long SGX_FLAGS_RESERVED = 0xFFFFFFFFFFFFFFC8L; - private static final long SGX_XFRM_LEGACY = 0x0000000000000003L; - private static final long SGX_XFRM_AVX = 0x0000000000000006L; - private static final long SGX_XFRM_RESERVED = 0xFFFFFFFFFFFFFFF8L; - - private final int version; - private final boolean isSigLinkable; - private final long gid; - private final int qeSvn; - private final int pceSvn; - private final byte[] basename = new byte[32]; - private final byte[] cpuSvn = new byte[16]; - private final long flags; - private final long xfrm; - private final byte[] mrenclave = new byte[32]; - private final byte[] mrsigner = new byte[32]; - private final int isvProdId; - private final int isvSvn; - private final byte[] reportData = new byte[64]; - private final byte[] signature; - private final byte[] quoteBytes; - - public Quote(byte[] quoteBytes) throws InvalidQuoteFormatException { - this.quoteBytes = quoteBytes; - - ByteBuffer quoteBuf = ByteBuffer.wrap(quoteBytes); - quoteBuf.order(ByteOrder.LITTLE_ENDIAN); - - this.version = quoteBuf.getShort(0) & 0xFFFF; - if (!(version >= 1 && version <= 2)) { - throw new InvalidQuoteFormatException("unknown_quote_version "+version); - } - - int sign_type = quoteBuf.getShort(2) & 0xFFFF; - if ((sign_type & ~1) != 0) { - throw new InvalidQuoteFormatException("unknown_quote_sign_type "+sign_type); - } - - this.isSigLinkable = sign_type == 1; - this.gid = quoteBuf.getInt(4) & 0xFFFFFFFF; - this.qeSvn = quoteBuf.getShort(8) & 0xFFFF; - - if (version > 1) { - this.pceSvn = quoteBuf.getShort(10) & 0xFFFF; - } else { - readZero(quoteBuf, 10, 2); - this.pceSvn = 0; - } - - readZero(quoteBuf, 12, 4); // xeid (reserved) - read(quoteBuf, 16, basename); - - // - // report_body - // - - read(quoteBuf, 48, cpuSvn); - readZero(quoteBuf, 64, 4); // misc_select (reserved) - readZero(quoteBuf, 68, 28); // reserved1 - this.flags = quoteBuf.getLong(96); - if ((flags & SGX_FLAGS_RESERVED ) != 0 || - (flags & SGX_FLAGS_INITTED ) == 0 || - (flags & SGX_FLAGS_MODE64BIT) == 0) { - throw new InvalidQuoteFormatException("bad_quote_flags "+flags); - } - this.xfrm = quoteBuf.getLong(104); - if ((xfrm & SGX_XFRM_RESERVED) != 0) { - throw new InvalidQuoteFormatException("bad_quote_xfrm "+xfrm); - } - read(quoteBuf, 112, mrenclave); - readZero(quoteBuf, 144, 32); // reserved2 - read(quoteBuf, 176, mrsigner); - readZero(quoteBuf, 208, 96); // reserved3 - this.isvProdId = quoteBuf.getShort(304) & 0xFFFF; - this.isvSvn = quoteBuf.getShort(306) & 0xFFFF; - readZero(quoteBuf, 308, 60); // reserved4 - read(quoteBuf, 368, reportData); - - // quote signature - int sig_len = quoteBuf.getInt(432) & 0xFFFFFFFF; - if (sig_len != quoteBytes.length - 436) { - throw new InvalidQuoteFormatException("bad_quote_sig_len "+sig_len); - } - this.signature = new byte[sig_len]; - read(quoteBuf, 436, signature); - } - - public byte[] getReportData() { - return reportData; - } - - private void read(ByteBuffer quoteBuf, int pos, byte[] buf) { - quoteBuf.position(pos); - quoteBuf.get(buf); - } - - private void readZero(ByteBuffer quoteBuf, int pos, int count) { - byte[] zeroBuf = new byte[count]; - read(quoteBuf, pos, zeroBuf); - for (int zeroBufIdx = 0; zeroBufIdx < count; zeroBufIdx++) { - if (zeroBuf[zeroBufIdx] != 0) { - throw new IllegalArgumentException("quote_reserved_mismatch "+pos); - } - } - } - - public byte[] getQuoteBytes() { - return quoteBytes; - } - - public byte[] getMrenclave() { - return mrenclave; - } - - public boolean isDebugQuote() { - return (flags & SGX_FLAGS_DEBUG) != 0; - } - - public static class InvalidQuoteFormatException extends Exception { - public InvalidQuoteFormatException(String value) { - super(value); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestation.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestation.java deleted file mode 100644 index 7e0c7e953..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestation.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - -public class RemoteAttestation { - - private final byte[] requestId; - private final RemoteAttestationKeys keys; - - public RemoteAttestation(byte[] requestId, RemoteAttestationKeys keys) { - this.requestId = requestId; - this.keys = keys; - } - - public byte[] getRequestId() { - return requestId; - } - - public RemoteAttestationKeys getKeys() { - return keys; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java deleted file mode 100644 index a9d2a7d30..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - - -import org.whispersystems.curve25519.Curve25519; -import org.whispersystems.curve25519.Curve25519KeyPair; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.libsignal.util.ByteUtil; - -public class RemoteAttestationKeys { - - private final byte[] clientKey = new byte[32]; - private final byte[] serverKey = new byte[32]; - - public RemoteAttestationKeys(Curve25519KeyPair keyPair, byte[] serverPublicEphemeral, byte[] serverPublicStatic) { - byte[] ephemeralToEphemeral = Curve25519.getInstance(Curve25519.BEST).calculateAgreement(serverPublicEphemeral, keyPair.getPrivateKey()); - byte[] ephemeralToStatic = Curve25519.getInstance(Curve25519.BEST).calculateAgreement(serverPublicStatic, keyPair.getPrivateKey()); - - byte[] masterSecret = ByteUtil.combine(ephemeralToEphemeral, ephemeralToStatic ); - byte[] publicKeys = ByteUtil.combine(keyPair.getPublicKey(), serverPublicEphemeral, serverPublicStatic); - - HKDFv3 generator = new HKDFv3(); - byte[] keys = generator.deriveSecrets(masterSecret, publicKeys, null, clientKey.length + serverKey.length); - - System.arraycopy(keys, 0, clientKey, 0, clientKey.length); - System.arraycopy(keys, clientKey.length, serverKey, 0, serverKey.length); - } - - public byte[] getClientKey() { - return clientKey; - } - - public byte[] getServerKey() { - return serverKey; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SignatureBodyEntity.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SignatureBodyEntity.java deleted file mode 100644 index 2a1424391..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SignatureBodyEntity.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class SignatureBodyEntity { - - @JsonProperty - private byte[] isvEnclaveQuoteBody; - - @JsonProperty - private String isvEnclaveQuoteStatus; - - @JsonProperty - private Long version; - - @JsonProperty - private String timestamp; - - public byte[] getIsvEnclaveQuoteBody() { - return isvEnclaveQuoteBody; - } - - public String getIsvEnclaveQuoteStatus() { - return isvEnclaveQuoteStatus; - } - - public Long getVersion() { - return version; - } - - public String getTimestamp() { - return timestamp; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SigningCertificate.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SigningCertificate.java deleted file mode 100644 index 2902aa39a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/SigningCertificate.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - -import org.whispersystems.signalservice.internal.util.Base64; - -import java.io.ByteArrayInputStream; -import java.net.URLDecoder; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.Signature; -import java.security.SignatureException; -import java.security.cert.CertPath; -import java.security.cert.CertPathValidator; -import java.security.cert.CertPathValidatorException; -import java.security.cert.CertificateException; -import java.security.cert.CertificateFactory; -import java.security.cert.PKIXParameters; -import java.security.cert.X509Certificate; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; - -public class SigningCertificate { - - private final CertPath path; - - public SigningCertificate(String certificateChain, KeyStore trustStore) - throws CertificateException, CertPathValidatorException - { - try { - CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); - Collection certificatesCollection = (Collection) certificateFactory.generateCertificates(new ByteArrayInputStream(URLDecoder.decode(certificateChain).getBytes())); - List certificates = new LinkedList(certificatesCollection); - PKIXParameters pkixParameters = new PKIXParameters(trustStore); - CertPathValidator validator = CertPathValidator.getInstance("PKIX"); - - this.path = certificateFactory.generateCertPath(certificates); - - pkixParameters.setRevocationEnabled(false); - validator.validate(path, pkixParameters); - verifyDistinguishedName(path); - } catch (KeyStoreException e) { - throw new AssertionError(e); - } catch (InvalidAlgorithmParameterException e) { - throw new AssertionError(e); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - public void verifySignature(String body, String encodedSignature) - throws SignatureException - { - try { - Signature signature = Signature.getInstance("SHA256withRSA"); - signature.initVerify(path.getCertificates().get(0)); - signature.update(body.getBytes()); - if (!signature.verify(Base64.decode(encodedSignature.getBytes()))) { - throw new SignatureException("Signature verification failed."); - } - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (InvalidKeyException e) { - throw new AssertionError(e); - } - } - - private void verifyDistinguishedName(CertPath path) throws CertificateException { - X509Certificate leaf = (X509Certificate) path.getCertificates().get(0); - String distinguishedName = leaf.getSubjectX500Principal().getName(); - - if (!"CN=Intel SGX Attestation Report Signing,O=Intel Corporation,L=Santa Clara,ST=CA,C=US".equals(distinguishedName)) { - throw new CertificateException("Bad DN: " + distinguishedName); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedQuoteException.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedQuoteException.java deleted file mode 100644 index f0aceb643..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedQuoteException.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - - -public class UnauthenticatedQuoteException extends Exception { - public UnauthenticatedQuoteException(String s) { - super(s); - } - - public UnauthenticatedQuoteException(Exception nested) { - super(nested); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedResponseException.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedResponseException.java deleted file mode 100644 index ca36b460b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/UnauthenticatedResponseException.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.whispersystems.signalservice.internal.contacts.crypto; - - -public class UnauthenticatedResponseException extends Exception { - public UnauthenticatedResponseException(Exception e) { - super(e); - } - public UnauthenticatedResponseException(String s) { - super(s); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryRequest.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryRequest.java deleted file mode 100644 index e10cb9be2..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryRequest.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2017 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.whispersystems.signalservice.internal.contacts.entities; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import org.whispersystems.signalservice.internal.util.Hex; - - -public class DiscoveryRequest { - - @JsonProperty - private int addressCount; - - @JsonProperty - private byte[] requestId; - - @JsonProperty - private byte[] iv; - - @JsonProperty - private byte[] data; - - @JsonProperty - private byte[] mac; - - public DiscoveryRequest() { - - } - - public DiscoveryRequest(int addressCount, byte[] requestId, byte[] iv, byte[] data, byte[] mac) { - this.addressCount = addressCount; - this.requestId = requestId; - this.iv = iv; - this.data = data; - this. mac = mac; - } - - public byte[] getRequestId() { - return requestId; - } - - public byte[] getIv() { - return iv; - } - - public byte[] getData() { - return data; - } - - public byte[] getMac() { - return mac; - } - - public int getAddressCount() { - return addressCount; - } - - public String toString() { - return "{ addressCount: " + addressCount + ", ticket: " + Hex.toString(requestId) + ", iv: " + Hex.toString(iv) + ", data: " + Hex.toString(data) + ", mac: " + Hex.toString(mac) + "}"; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryResponse.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryResponse.java deleted file mode 100644 index e3ff43b2e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/DiscoveryResponse.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2017 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.whispersystems.signalservice.internal.contacts.entities; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import org.whispersystems.signalservice.internal.util.Hex; - -public class DiscoveryResponse { - - @JsonProperty - private byte[] iv; - - @JsonProperty - private byte[] data; - - @JsonProperty - private byte[] mac; - - public DiscoveryResponse() {} - - public DiscoveryResponse(byte[] iv, byte[] data, byte[] mac) { - this.iv = iv; - this.data = data; - this.mac = mac; - } - - public byte[] getIv() { - return iv; - } - - public byte[] getData() { - return data; - } - - public byte[] getMac() { - return mac; - } - - public String toString() { - return "{iv: " + (iv == null ? null : Hex.toString(iv)) + ", data: " + (data == null ? null: Hex.toString(data)) + ", mac: " + (mac == null ? null : Hex.toString(mac)) + "}"; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationRequest.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationRequest.java deleted file mode 100644 index 7b84d1d09..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationRequest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2017 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.whispersystems.signalservice.internal.contacts.entities; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class RemoteAttestationRequest { - - @JsonProperty - private byte[] clientPublic; - - public RemoteAttestationRequest() {} - - public RemoteAttestationRequest(byte[] clientPublic) { - this.clientPublic = clientPublic; - } - - public byte[] getClientPublic() { - return clientPublic; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationResponse.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationResponse.java deleted file mode 100644 index 229a549d3..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/contacts/entities/RemoteAttestationResponse.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2017 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.whispersystems.signalservice.internal.contacts.entities; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class RemoteAttestationResponse { - - @JsonProperty - private byte[] serverEphemeralPublic; - - @JsonProperty - private byte[] serverStaticPublic; - - @JsonProperty - private byte[] quote; - - @JsonProperty - private byte[] iv; - - @JsonProperty - private byte[] ciphertext; - - @JsonProperty - private byte[] tag; - - @JsonProperty - private String signature; - - @JsonProperty - private String certificates; - - @JsonProperty - private String signatureBody; - - public RemoteAttestationResponse(byte[] serverEphemeralPublic, byte[] serverStaticPublic, - byte[] iv, byte[] ciphertext, byte[] tag, - byte[] quote, String signature, String certificates, String signatureBody) - { - this.serverEphemeralPublic = serverEphemeralPublic; - this.serverStaticPublic = serverStaticPublic; - this.iv = iv; - this.ciphertext = ciphertext; - this.tag = tag; - this.quote = quote; - this.signature = signature; - this.certificates = certificates; - this.signatureBody = signatureBody; - } - - public RemoteAttestationResponse() {} - - public byte[] getServerEphemeralPublic() { - return serverEphemeralPublic; - } - - public byte[] getServerStaticPublic() { - return serverStaticPublic; - } - - public byte[] getQuote() { - return quote; - } - - public byte[] getIv() { - return iv; - } - - public byte[] getCiphertext() { - return ciphertext; - } - - public byte[] getTag() { - return tag; - } - - public String getSignature() { - return signature; - } - - public String getCertificates() { - return certificates; - } - - public String getSignatureBody() { - return signatureBody; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/PaddingInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/PaddingInputStream.java deleted file mode 100644 index 2833bca3e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/PaddingInputStream.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.whispersystems.signalservice.internal.crypto; - - -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; - -public class PaddingInputStream extends FilterInputStream { - - private long paddingRemaining; - - public PaddingInputStream(InputStream inputStream, long plaintextLength) { - super(inputStream); - this.paddingRemaining = getPaddedSize(plaintextLength) - plaintextLength; - } - - @Override - public int read() throws IOException { - int result = super.read(); - if (result != -1) return result; - - if (paddingRemaining > 0) { - paddingRemaining--; - return 0x00; - } - - return -1; - } - - @Override - public int read(byte[] buffer, int offset, int length) throws IOException { - int result = super.read(buffer, offset, length); - if (result != -1) return result; - - if (paddingRemaining > 0) { - length = Math.min(length, Util.toIntExact(paddingRemaining)); - paddingRemaining -= length; - return length; - } - - return -1; - } - - @Override - public int read(byte[] buffer) throws IOException { - return read(buffer, 0, buffer.length); - } - - @Override - public int available() throws IOException { - return super.available() + Util.toIntExact(paddingRemaining); - } - - public static long getPaddedSize(long size) { - return (int) Math.max(541, Math.floor(Math.pow(1.05, Math.ceil(Math.log(size) / Math.log(1.05))))); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/ProvisioningCipher.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/ProvisioningCipher.java deleted file mode 100644 index d7b54badb..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/crypto/ProvisioningCipher.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.crypto; - -import com.google.protobuf.ByteString; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECKeyPair; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.signalservice.internal.util.Util; - -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.SecretKeySpec; - -import static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope; -import static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage; - - -public class ProvisioningCipher { - - private static final String TAG = ProvisioningCipher.class.getSimpleName(); - - private final ECPublicKey theirPublicKey; - - public ProvisioningCipher(ECPublicKey theirPublicKey) { - this.theirPublicKey = theirPublicKey; - } - - public byte[] encrypt(ProvisionMessage message) throws InvalidKeyException { - ECKeyPair ourKeyPair = Curve.generateKeyPair(); - byte[] sharedSecret = Curve.calculateAgreement(theirPublicKey, ourKeyPair.getPrivateKey()); - byte[] derivedSecret = new HKDFv3().deriveSecrets(sharedSecret, "TextSecure Provisioning Message".getBytes(), 64); - byte[][] parts = Util.split(derivedSecret, 32, 32); - - byte[] version = {0x01}; - byte[] ciphertext = getCiphertext(parts[0], message.toByteArray()); - byte[] mac = getMac(parts[1], Util.join(version, ciphertext)); - byte[] body = Util.join(version, ciphertext, mac); - - return ProvisionEnvelope.newBuilder() - .setPublicKey(ByteString.copyFrom(ourKeyPair.getPublicKey().serialize())) - .setBody(ByteString.copyFrom(body)) - .build() - .toByteArray(); - } - - private byte[] getCiphertext(byte[] key, byte[] message) { - try { - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES")); - - return Util.join(cipher.getIV(), cipher.doFinal(message)); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (NoSuchPaddingException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } catch (IllegalBlockSizeException e) { - throw new AssertionError(e); - } catch (BadPaddingException e) { - throw new AssertionError(e); - } - } - - private byte[] getMac(byte[] key, byte[] message) { - try { - Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(key, "HmacSHA256")); - - return mac.doFinal(message); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (java.security.InvalidKeyException e) { - throw new AssertionError(e); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/AccountAttributes.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/AccountAttributes.java deleted file mode 100644 index c46141c99..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/AccountAttributes.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class AccountAttributes { - - @JsonProperty - private String signalingKey; - - @JsonProperty - private int registrationId; - - @JsonProperty - private boolean voice; - - @JsonProperty - private boolean video; - - @JsonProperty - private boolean fetchesMessages; - - @JsonProperty - private String pin; - - @JsonProperty - private byte[] unidentifiedAccessKey; - - @JsonProperty - private boolean unrestrictedUnidentifiedAccess; - - public AccountAttributes(String signalingKey, int registrationId, boolean fetchesMessages, String pin, byte[] unidentifiedAccessKey, boolean unrestrictedUnidentifiedAccess) { - this.signalingKey = signalingKey; - this.registrationId = registrationId; - this.voice = true; - this.video = true; - this.fetchesMessages = fetchesMessages; - this.pin = pin; - this.unidentifiedAccessKey = unidentifiedAccessKey; - this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess; - } - - public AccountAttributes() {} - - public String getSignalingKey() { - return signalingKey; - } - - public int getRegistrationId() { - return registrationId; - } - - public boolean isVoice() { - return voice; - } - - public boolean isVideo() { - return video; - } - - public boolean isFetchesMessages() { - return fetchesMessages; - } - - public String getPin() { - return pin; - } - - public byte[] getUnidentifiedAccessKey() { - return unidentifiedAccessKey; - } - - public boolean isUnrestrictedUnidentifiedAccess() { - return unrestrictedUnidentifiedAccess; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/AttachmentUploadAttributes.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/AttachmentUploadAttributes.java deleted file mode 100644 index 46eadd264..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/AttachmentUploadAttributes.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class AttachmentUploadAttributes { - @JsonProperty - private String url; - - @JsonProperty - private String key; - - @JsonProperty - private String credential; - - @JsonProperty - private String acl; - - @JsonProperty - private String algorithm; - - @JsonProperty - private String date; - - @JsonProperty - private String policy; - - @JsonProperty - private String signature; - - @JsonProperty - private String attachmentId; - - @JsonProperty - private String attachmentIdString; - - public AttachmentUploadAttributes() {} - - public String getUrl() { - return url; - } - - public String getKey() { - return key; - } - - public String getCredential() { - return credential; - } - - public String getAcl() { - return acl; - } - - public String getAlgorithm() { - return algorithm; - } - - public String getDate() { - return date; - } - - public String getPolicy() { - return policy; - } - - public String getSignature() { - return signature; - } - - public String getAttachmentId() { - return attachmentId; - } - - public String getAttachmentIdString() { - return attachmentIdString; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryCredentials.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryCredentials.java deleted file mode 100644 index 35e0d9902..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryCredentials.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class ContactDiscoveryCredentials { - - @JsonProperty - private String username; - - @JsonProperty - private String password; - - public void setUsername(String username) { - this.username = username; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getUsername() { - return username; - } - - public String getPassword() { - return password; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryFailureReason.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryFailureReason.java deleted file mode 100644 index 05dfb02ba..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactDiscoveryFailureReason.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class ContactDiscoveryFailureReason { - - @JsonProperty - private final String reason; - - public ContactDiscoveryFailureReason(String reason) { - this.reason = reason == null ? "" : reason; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenDetailsList.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenDetailsList.java deleted file mode 100644 index a9f314e12..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenDetailsList.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import org.whispersystems.signalservice.api.push.ContactTokenDetails; - -import java.util.List; - -public class ContactTokenDetailsList { - - @JsonProperty - private List contacts; - - public ContactTokenDetailsList() {} - - public List getContacts() { - return contacts; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenList.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenList.java deleted file mode 100644 index 8a50c49dc..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ContactTokenList.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import java.util.List; - -public class ContactTokenList { - - private List contacts; - - public ContactTokenList(List contacts) { - this.contacts = contacts; - } - - public ContactTokenList() {} - - public List getContacts() { - return contacts; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceCode.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceCode.java deleted file mode 100644 index 6f1f06482..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceCode.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class DeviceCode { - - @JsonProperty - private String verificationCode; - - public String getVerificationCode() { - return verificationCode; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceInfoList.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceInfoList.java deleted file mode 100644 index 2ee522d84..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceInfoList.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import org.whispersystems.signalservice.api.messages.multidevice.DeviceInfo; - -import java.util.List; - -public class DeviceInfoList { - - @JsonProperty - private List devices; - - public DeviceInfoList() {} - - public List getDevices() { - return devices; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimit.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimit.java deleted file mode 100644 index 233eed58b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimit.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class DeviceLimit { - - @JsonProperty - private int current; - - @JsonProperty - private int max; - - public int getCurrent() { - return current; - } - - public int getMax() { - return max; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimitExceededException.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimitExceededException.java deleted file mode 100644 index ccb03bca6..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/DeviceLimitExceededException.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; - -public class DeviceLimitExceededException extends NonSuccessfulResponseCodeException { - - private final DeviceLimit deviceLimit; - - public DeviceLimitExceededException(DeviceLimit deviceLimit) { - this.deviceLimit = deviceLimit; - } - - public int getCurrent() { - return deviceLimit.getCurrent(); - } - - public int getMax() { - return deviceLimit.getMax(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/LockedException.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/LockedException.java deleted file mode 100644 index bc4850942..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/LockedException.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - - -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; - -public class LockedException extends NonSuccessfulResponseCodeException { - - private int length; - private long timeRemaining; - - LockedException(int length, long timeRemaining) { - this.length = length; - this.timeRemaining = timeRemaining; - } - - public int getLength() { - return length; - } - - public long getTimeRemaining() { - return timeRemaining; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/MismatchedDevices.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/MismatchedDevices.java deleted file mode 100644 index 3d4dfefa0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/MismatchedDevices.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -public class MismatchedDevices { - @JsonProperty - private List missingDevices; - - @JsonProperty - private List extraDevices; - - public List getMissingDevices() { - return missingDevices; - } - - public List getExtraDevices() { - return extraDevices; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessage.java deleted file mode 100644 index ea2734bad..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessage.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class OutgoingPushMessage { - - @JsonProperty - public int type; - @JsonProperty - private int destinationDeviceId; - @JsonProperty - private int destinationRegistrationId; - @JsonProperty - public String content; - - public OutgoingPushMessage(int type, - int destinationDeviceId, - int destinationRegistrationId, - String content) - { - this.type = type; - this.destinationDeviceId = destinationDeviceId; - this.destinationRegistrationId = destinationRegistrationId; - this.content = content; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessageList.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessageList.java deleted file mode 100644 index 50965212c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/OutgoingPushMessageList.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -public class OutgoingPushMessageList { - - @JsonProperty - private String destination; - - @JsonProperty - private long timestamp; - - @JsonProperty - private List messages; - - @JsonProperty - private boolean online; - - public OutgoingPushMessageList(String destination, - long timestamp, - List messages, - boolean online) - { - this.timestamp = timestamp; - this.destination = destination; - this.messages = messages; - this.online = online; - } - - public String getDestination() { - return destination; - } - - public List getMessages() { - return messages; - } - - public long getTimestamp() { - return timestamp; - } - - public boolean isOnline() { - return online; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyEntity.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyEntity.java deleted file mode 100644 index f0efa5a50..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyEntity.java +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.ecc.Curve; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.signalservice.internal.util.Base64; - -import java.io.IOException; - -public class PreKeyEntity { - - @JsonProperty - private int keyId; - - @JsonProperty - @JsonSerialize(using = ECPublicKeySerializer.class) - @JsonDeserialize(using = ECPublicKeyDeserializer.class) - private ECPublicKey publicKey; - - public PreKeyEntity() {} - - public PreKeyEntity(int keyId, ECPublicKey publicKey) { - this.keyId = keyId; - this.publicKey = publicKey; - } - - public int getKeyId() { - return keyId; - } - - public ECPublicKey getPublicKey() { - return publicKey; - } - - private static class ECPublicKeySerializer extends JsonSerializer { - @Override - public void serialize(ECPublicKey value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - gen.writeString(Base64.encodeBytesWithoutPadding(value.serialize())); - } - } - - private static class ECPublicKeyDeserializer extends JsonDeserializer { - @Override - public ECPublicKey deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { - try { - return Curve.decodePoint(Base64.decodeWithoutPadding(p.getValueAsString()), 0); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponse.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponse.java deleted file mode 100644 index 9811c9a81..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponse.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.internal.util.JsonUtil; - -import java.io.IOException; -import java.util.List; - -public class PreKeyResponse { - - @JsonProperty - @JsonSerialize(using = JsonUtil.IdentityKeySerializer.class) - @JsonDeserialize(using = JsonUtil.IdentityKeyDeserializer.class) - private IdentityKey identityKey; - - @JsonProperty - private List devices; - - public IdentityKey getIdentityKey() { - return identityKey; - } - - public List getDevices() { - return devices; - } - - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponseItem.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponseItem.java deleted file mode 100644 index 2f2641519..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyResponseItem.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import org.whispersystems.signalservice.api.push.SignedPreKeyEntity; - -public class PreKeyResponseItem { - - @JsonProperty - private int deviceId; - - @JsonProperty - private int registrationId; - - @JsonProperty - private SignedPreKeyEntity signedPreKey; - - @JsonProperty - private PreKeyEntity preKey; - - public int getDeviceId() { - return deviceId; - } - - public int getRegistrationId() { - return registrationId; - } - - public SignedPreKeyEntity getSignedPreKey() { - return signedPreKey; - } - - public PreKeyEntity getPreKey() { - return preKey; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyState.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyState.java deleted file mode 100644 index 2e710b804..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyState.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.signalservice.api.push.SignedPreKeyEntity; -import org.whispersystems.signalservice.internal.util.JsonUtil; - -import java.util.List; - -public class PreKeyState { - - @JsonProperty - @JsonSerialize(using = JsonUtil.IdentityKeySerializer.class) - @JsonDeserialize(using = JsonUtil.IdentityKeyDeserializer.class) - private IdentityKey identityKey; - - @JsonProperty - private List preKeys; - - @JsonProperty - private SignedPreKeyEntity signedPreKey; - - - public PreKeyState(List preKeys, SignedPreKeyEntity signedPreKey, IdentityKey identityKey) { - this.preKeys = preKeys; - this.signedPreKey = signedPreKey; - this.identityKey = identityKey; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyStatus.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyStatus.java deleted file mode 100644 index d4723448d..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PreKeyStatus.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class PreKeyStatus { - - @JsonProperty - private int count; - - public PreKeyStatus() {} - - public int getCount() { - return count; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarData.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarData.java deleted file mode 100644 index 1044135ba..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarData.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - - -import org.whispersystems.signalservice.internal.push.http.OutputStreamFactory; - -import java.io.InputStream; - -public class ProfileAvatarData { - - private final InputStream data; - private final long dataLength; - private final String contentType; - private final OutputStreamFactory outputStreamFactory; - - public ProfileAvatarData(InputStream data, long dataLength, String contentType, OutputStreamFactory outputStreamFactory) { - this.data = data; - this.dataLength = dataLength; - this.contentType = contentType; - this.outputStreamFactory = outputStreamFactory; - } - - public InputStream getData() { - return data; - } - - public long getDataLength() { - return dataLength; - } - - public OutputStreamFactory getOutputStreamFactory() { - return outputStreamFactory; - } - - public String getContentType() { - return contentType; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarUploadAttributes.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarUploadAttributes.java deleted file mode 100644 index b5f52f831..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProfileAvatarUploadAttributes.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class ProfileAvatarUploadAttributes { - @JsonProperty - private String url; - - @JsonProperty - private String key; - - @JsonProperty - private String credential; - - @JsonProperty - private String acl; - - @JsonProperty - private String algorithm; - - @JsonProperty - private String date; - - @JsonProperty - private String policy; - - @JsonProperty - private String signature; - - public ProfileAvatarUploadAttributes() {} - - public String getUrl() { - return url; - } - - public String getKey() { - return key; - } - - public String getCredential() { - return credential; - } - - public String getAcl() { - return acl; - } - - public String getAlgorithm() { - return algorithm; - } - - public String getDate() { - return date; - } - - public String getPolicy() { - return policy; - } - - public String getSignature() { - return signature; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningMessage.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningMessage.java deleted file mode 100644 index 2475bdbe9..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningMessage.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class ProvisioningMessage { - - @JsonProperty - private String body; - - public ProvisioningMessage(String body) { - this.body = body; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningProtos.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningProtos.java deleted file mode 100644 index 637f0c3dd..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/ProvisioningProtos.java +++ /dev/null @@ -1,1698 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: Provisioning.proto - -package org.whispersystems.signalservice.internal.push; - -public final class ProvisioningProtos { - private ProvisioningProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface ProvisionEnvelopeOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes publicKey = 1; - /** - * optional bytes publicKey = 1; - */ - boolean hasPublicKey(); - /** - * optional bytes publicKey = 1; - */ - com.google.protobuf.ByteString getPublicKey(); - - // optional bytes body = 2; - /** - * optional bytes body = 2; - * - *

-     * Encrypted ProvisionMessage
-     * 
- */ - boolean hasBody(); - /** - * optional bytes body = 2; - * - *
-     * Encrypted ProvisionMessage
-     * 
- */ - com.google.protobuf.ByteString getBody(); - } - /** - * Protobuf type {@code signalservice.ProvisionEnvelope} - */ - public static final class ProvisionEnvelope extends - com.google.protobuf.GeneratedMessage - implements ProvisionEnvelopeOrBuilder { - // Use ProvisionEnvelope.newBuilder() to construct. - private ProvisionEnvelope(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ProvisionEnvelope(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ProvisionEnvelope defaultInstance; - public static ProvisionEnvelope getDefaultInstance() { - return defaultInstance; - } - - public ProvisionEnvelope getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ProvisionEnvelope( - 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; - body_ = 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.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionEnvelope_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionEnvelope_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.class, org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ProvisionEnvelope parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ProvisionEnvelope(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes publicKey = 1; - public static final int PUBLICKEY_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString publicKey_; - /** - * optional bytes publicKey = 1; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes publicKey = 1; - */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - - // optional bytes body = 2; - public static final int BODY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString body_; - /** - * optional bytes body = 2; - * - *
-     * Encrypted ProvisionMessage
-     * 
- */ - public boolean hasBody() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes body = 2; - * - *
-     * Encrypted ProvisionMessage
-     * 
- */ - public com.google.protobuf.ByteString getBody() { - return body_; - } - - private void initFields() { - publicKey_ = com.google.protobuf.ByteString.EMPTY; - body_ = 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, body_); - } - 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, body_); - } - 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.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope 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.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope 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.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope 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 signalservice.ProvisionEnvelope} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelopeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionEnvelope_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionEnvelope_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.class, org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.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); - body_ = 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.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionEnvelope_descriptor; - } - - public org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope build() { - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope buildPartial() { - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope result = new org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope(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.body_ = body_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope) { - return mergeFrom((org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope other) { - if (other == org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope.getDefaultInstance()) return this; - if (other.hasPublicKey()) { - setPublicKey(other.getPublicKey()); - } - if (other.hasBody()) { - setBody(other.getBody()); - } - 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.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionEnvelope) 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; - /** - * optional bytes publicKey = 1; - */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes publicKey = 1; - */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - /** - * optional bytes publicKey = 1; - */ - public Builder setPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - publicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes publicKey = 1; - */ - public Builder clearPublicKey() { - bitField0_ = (bitField0_ & ~0x00000001); - publicKey_ = getDefaultInstance().getPublicKey(); - onChanged(); - return this; - } - - // optional bytes body = 2; - private com.google.protobuf.ByteString body_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes body = 2; - * - *
-       * Encrypted ProvisionMessage
-       * 
- */ - public boolean hasBody() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes body = 2; - * - *
-       * Encrypted ProvisionMessage
-       * 
- */ - public com.google.protobuf.ByteString getBody() { - return body_; - } - /** - * optional bytes body = 2; - * - *
-       * Encrypted ProvisionMessage
-       * 
- */ - public Builder setBody(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - body_ = value; - onChanged(); - return this; - } - /** - * optional bytes body = 2; - * - *
-       * Encrypted ProvisionMessage
-       * 
- */ - public Builder clearBody() { - bitField0_ = (bitField0_ & ~0x00000002); - body_ = getDefaultInstance().getBody(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ProvisionEnvelope) - } - - static { - defaultInstance = new ProvisionEnvelope(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ProvisionEnvelope) - } - - public interface ProvisionMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes identityKeyPublic = 1; - /** - * optional bytes identityKeyPublic = 1; - */ - boolean hasIdentityKeyPublic(); - /** - * optional bytes identityKeyPublic = 1; - */ - com.google.protobuf.ByteString getIdentityKeyPublic(); - - // optional bytes identityKeyPrivate = 2; - /** - * optional bytes identityKeyPrivate = 2; - */ - boolean hasIdentityKeyPrivate(); - /** - * optional bytes identityKeyPrivate = 2; - */ - com.google.protobuf.ByteString getIdentityKeyPrivate(); - - // optional string number = 3; - /** - * optional string number = 3; - */ - boolean hasNumber(); - /** - * optional string number = 3; - */ - java.lang.String getNumber(); - /** - * optional string number = 3; - */ - com.google.protobuf.ByteString - getNumberBytes(); - - // optional string provisioningCode = 4; - /** - * optional string provisioningCode = 4; - */ - boolean hasProvisioningCode(); - /** - * optional string provisioningCode = 4; - */ - java.lang.String getProvisioningCode(); - /** - * optional string provisioningCode = 4; - */ - com.google.protobuf.ByteString - getProvisioningCodeBytes(); - - // optional string userAgent = 5; - /** - * optional string userAgent = 5; - */ - boolean hasUserAgent(); - /** - * optional string userAgent = 5; - */ - java.lang.String getUserAgent(); - /** - * optional string userAgent = 5; - */ - com.google.protobuf.ByteString - getUserAgentBytes(); - - // optional bytes profileKey = 6; - /** - * optional bytes profileKey = 6; - */ - boolean hasProfileKey(); - /** - * optional bytes profileKey = 6; - */ - com.google.protobuf.ByteString getProfileKey(); - - // optional bool readReceipts = 7; - /** - * optional bool readReceipts = 7; - */ - boolean hasReadReceipts(); - /** - * optional bool readReceipts = 7; - */ - boolean getReadReceipts(); - } - /** - * Protobuf type {@code signalservice.ProvisionMessage} - */ - public static final class ProvisionMessage extends - com.google.protobuf.GeneratedMessage - implements ProvisionMessageOrBuilder { - // Use ProvisionMessage.newBuilder() to construct. - private ProvisionMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ProvisionMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ProvisionMessage defaultInstance; - public static ProvisionMessage getDefaultInstance() { - return defaultInstance; - } - - public ProvisionMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ProvisionMessage( - 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; - identityKeyPublic_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - identityKeyPrivate_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - number_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - provisioningCode_ = input.readBytes(); - break; - } - case 42: { - bitField0_ |= 0x00000010; - userAgent_ = input.readBytes(); - break; - } - case 50: { - bitField0_ |= 0x00000020; - profileKey_ = input.readBytes(); - break; - } - case 56: { - bitField0_ |= 0x00000040; - readReceipts_ = input.readBool(); - 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.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.class, org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ProvisionMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ProvisionMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes identityKeyPublic = 1; - public static final int IDENTITYKEYPUBLIC_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString identityKeyPublic_; - /** - * optional bytes identityKeyPublic = 1; - */ - public boolean hasIdentityKeyPublic() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes identityKeyPublic = 1; - */ - public com.google.protobuf.ByteString getIdentityKeyPublic() { - return identityKeyPublic_; - } - - // optional bytes identityKeyPrivate = 2; - public static final int IDENTITYKEYPRIVATE_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString identityKeyPrivate_; - /** - * optional bytes identityKeyPrivate = 2; - */ - public boolean hasIdentityKeyPrivate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes identityKeyPrivate = 2; - */ - public com.google.protobuf.ByteString getIdentityKeyPrivate() { - return identityKeyPrivate_; - } - - // optional string number = 3; - public static final int NUMBER_FIELD_NUMBER = 3; - private java.lang.Object number_; - /** - * optional string number = 3; - */ - public boolean hasNumber() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string number = 3; - */ - public java.lang.String getNumber() { - java.lang.Object ref = number_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - number_ = s; - } - return s; - } - } - /** - * optional string number = 3; - */ - public com.google.protobuf.ByteString - getNumberBytes() { - java.lang.Object ref = number_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - number_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string provisioningCode = 4; - public static final int PROVISIONINGCODE_FIELD_NUMBER = 4; - private java.lang.Object provisioningCode_; - /** - * optional string provisioningCode = 4; - */ - public boolean hasProvisioningCode() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string provisioningCode = 4; - */ - public java.lang.String getProvisioningCode() { - java.lang.Object ref = provisioningCode_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - provisioningCode_ = s; - } - return s; - } - } - /** - * optional string provisioningCode = 4; - */ - public com.google.protobuf.ByteString - getProvisioningCodeBytes() { - java.lang.Object ref = provisioningCode_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - provisioningCode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string userAgent = 5; - public static final int USERAGENT_FIELD_NUMBER = 5; - private java.lang.Object userAgent_; - /** - * optional string userAgent = 5; - */ - public boolean hasUserAgent() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional string userAgent = 5; - */ - public java.lang.String getUserAgent() { - java.lang.Object ref = userAgent_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - userAgent_ = s; - } - return s; - } - } - /** - * optional string userAgent = 5; - */ - public com.google.protobuf.ByteString - getUserAgentBytes() { - java.lang.Object ref = userAgent_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userAgent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bytes profileKey = 6; - public static final int PROFILEKEY_FIELD_NUMBER = 6; - private com.google.protobuf.ByteString profileKey_; - /** - * optional bytes profileKey = 6; - */ - public boolean hasProfileKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes profileKey = 6; - */ - public com.google.protobuf.ByteString getProfileKey() { - return profileKey_; - } - - // optional bool readReceipts = 7; - public static final int READRECEIPTS_FIELD_NUMBER = 7; - private boolean readReceipts_; - /** - * optional bool readReceipts = 7; - */ - public boolean hasReadReceipts() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bool readReceipts = 7; - */ - public boolean getReadReceipts() { - return readReceipts_; - } - - private void initFields() { - identityKeyPublic_ = com.google.protobuf.ByteString.EMPTY; - identityKeyPrivate_ = com.google.protobuf.ByteString.EMPTY; - number_ = ""; - provisioningCode_ = ""; - userAgent_ = ""; - profileKey_ = com.google.protobuf.ByteString.EMPTY; - readReceipts_ = false; - } - 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, identityKeyPublic_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, identityKeyPrivate_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getNumberBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getProvisioningCodeBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, getUserAgentBytes()); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, profileKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBool(7, readReceipts_); - } - 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, identityKeyPublic_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, identityKeyPrivate_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getNumberBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, getProvisioningCodeBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, getUserAgentBytes()); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, profileKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(7, readReceipts_); - } - 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.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage 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.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage 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.signalservice.internal.push.ProvisioningProtos.ProvisionMessage 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 signalservice.ProvisionMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.class, org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.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(); - identityKeyPublic_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - identityKeyPrivate_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - number_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - provisioningCode_ = ""; - bitField0_ = (bitField0_ & ~0x00000008); - userAgent_ = ""; - bitField0_ = (bitField0_ & ~0x00000010); - profileKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - readReceipts_ = false; - bitField0_ = (bitField0_ & ~0x00000040); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.internal_static_signalservice_ProvisionMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage build() { - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage buildPartial() { - org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage result = new org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.identityKeyPublic_ = identityKeyPublic_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.identityKeyPrivate_ = identityKeyPrivate_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.number_ = number_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.provisioningCode_ = provisioningCode_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.userAgent_ = userAgent_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.profileKey_ = profileKey_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - result.readReceipts_ = readReceipts_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage other) { - if (other == org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage.getDefaultInstance()) return this; - if (other.hasIdentityKeyPublic()) { - setIdentityKeyPublic(other.getIdentityKeyPublic()); - } - if (other.hasIdentityKeyPrivate()) { - setIdentityKeyPrivate(other.getIdentityKeyPrivate()); - } - if (other.hasNumber()) { - bitField0_ |= 0x00000004; - number_ = other.number_; - onChanged(); - } - if (other.hasProvisioningCode()) { - bitField0_ |= 0x00000008; - provisioningCode_ = other.provisioningCode_; - onChanged(); - } - if (other.hasUserAgent()) { - bitField0_ |= 0x00000010; - userAgent_ = other.userAgent_; - onChanged(); - } - if (other.hasProfileKey()) { - setProfileKey(other.getProfileKey()); - } - if (other.hasReadReceipts()) { - setReadReceipts(other.getReadReceipts()); - } - 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.signalservice.internal.push.ProvisioningProtos.ProvisionMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.ProvisioningProtos.ProvisionMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes identityKeyPublic = 1; - private com.google.protobuf.ByteString identityKeyPublic_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes identityKeyPublic = 1; - */ - public boolean hasIdentityKeyPublic() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes identityKeyPublic = 1; - */ - public com.google.protobuf.ByteString getIdentityKeyPublic() { - return identityKeyPublic_; - } - /** - * optional bytes identityKeyPublic = 1; - */ - public Builder setIdentityKeyPublic(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - identityKeyPublic_ = value; - onChanged(); - return this; - } - /** - * optional bytes identityKeyPublic = 1; - */ - public Builder clearIdentityKeyPublic() { - bitField0_ = (bitField0_ & ~0x00000001); - identityKeyPublic_ = getDefaultInstance().getIdentityKeyPublic(); - onChanged(); - return this; - } - - // optional bytes identityKeyPrivate = 2; - private com.google.protobuf.ByteString identityKeyPrivate_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes identityKeyPrivate = 2; - */ - public boolean hasIdentityKeyPrivate() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes identityKeyPrivate = 2; - */ - public com.google.protobuf.ByteString getIdentityKeyPrivate() { - return identityKeyPrivate_; - } - /** - * optional bytes identityKeyPrivate = 2; - */ - public Builder setIdentityKeyPrivate(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - identityKeyPrivate_ = value; - onChanged(); - return this; - } - /** - * optional bytes identityKeyPrivate = 2; - */ - public Builder clearIdentityKeyPrivate() { - bitField0_ = (bitField0_ & ~0x00000002); - identityKeyPrivate_ = getDefaultInstance().getIdentityKeyPrivate(); - onChanged(); - return this; - } - - // optional string number = 3; - private java.lang.Object number_ = ""; - /** - * optional string number = 3; - */ - public boolean hasNumber() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string number = 3; - */ - public java.lang.String getNumber() { - java.lang.Object ref = number_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - number_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string number = 3; - */ - public com.google.protobuf.ByteString - getNumberBytes() { - java.lang.Object ref = number_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - number_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string number = 3; - */ - public Builder setNumber( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - number_ = value; - onChanged(); - return this; - } - /** - * optional string number = 3; - */ - public Builder clearNumber() { - bitField0_ = (bitField0_ & ~0x00000004); - number_ = getDefaultInstance().getNumber(); - onChanged(); - return this; - } - /** - * optional string number = 3; - */ - public Builder setNumberBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - number_ = value; - onChanged(); - return this; - } - - // optional string provisioningCode = 4; - private java.lang.Object provisioningCode_ = ""; - /** - * optional string provisioningCode = 4; - */ - public boolean hasProvisioningCode() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string provisioningCode = 4; - */ - public java.lang.String getProvisioningCode() { - java.lang.Object ref = provisioningCode_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - provisioningCode_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string provisioningCode = 4; - */ - public com.google.protobuf.ByteString - getProvisioningCodeBytes() { - java.lang.Object ref = provisioningCode_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - provisioningCode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string provisioningCode = 4; - */ - public Builder setProvisioningCode( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - provisioningCode_ = value; - onChanged(); - return this; - } - /** - * optional string provisioningCode = 4; - */ - public Builder clearProvisioningCode() { - bitField0_ = (bitField0_ & ~0x00000008); - provisioningCode_ = getDefaultInstance().getProvisioningCode(); - onChanged(); - return this; - } - /** - * optional string provisioningCode = 4; - */ - public Builder setProvisioningCodeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - provisioningCode_ = value; - onChanged(); - return this; - } - - // optional string userAgent = 5; - private java.lang.Object userAgent_ = ""; - /** - * optional string userAgent = 5; - */ - public boolean hasUserAgent() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional string userAgent = 5; - */ - public java.lang.String getUserAgent() { - java.lang.Object ref = userAgent_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - userAgent_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string userAgent = 5; - */ - public com.google.protobuf.ByteString - getUserAgentBytes() { - java.lang.Object ref = userAgent_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userAgent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string userAgent = 5; - */ - public Builder setUserAgent( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - userAgent_ = value; - onChanged(); - return this; - } - /** - * optional string userAgent = 5; - */ - public Builder clearUserAgent() { - bitField0_ = (bitField0_ & ~0x00000010); - userAgent_ = getDefaultInstance().getUserAgent(); - onChanged(); - return this; - } - /** - * optional string userAgent = 5; - */ - public Builder setUserAgentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - userAgent_ = value; - onChanged(); - return this; - } - - // optional bytes profileKey = 6; - private com.google.protobuf.ByteString profileKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes profileKey = 6; - */ - public boolean hasProfileKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes profileKey = 6; - */ - public com.google.protobuf.ByteString getProfileKey() { - return profileKey_; - } - /** - * optional bytes profileKey = 6; - */ - public Builder setProfileKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - profileKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes profileKey = 6; - */ - public Builder clearProfileKey() { - bitField0_ = (bitField0_ & ~0x00000020); - profileKey_ = getDefaultInstance().getProfileKey(); - onChanged(); - return this; - } - - // optional bool readReceipts = 7; - private boolean readReceipts_ ; - /** - * optional bool readReceipts = 7; - */ - public boolean hasReadReceipts() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bool readReceipts = 7; - */ - public boolean getReadReceipts() { - return readReceipts_; - } - /** - * optional bool readReceipts = 7; - */ - public Builder setReadReceipts(boolean value) { - bitField0_ |= 0x00000040; - readReceipts_ = value; - onChanged(); - return this; - } - /** - * optional bool readReceipts = 7; - */ - public Builder clearReadReceipts() { - bitField0_ = (bitField0_ & ~0x00000040); - readReceipts_ = false; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ProvisionMessage) - } - - static { - defaultInstance = new ProvisionMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ProvisionMessage) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ProvisionEnvelope_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ProvisionEnvelope_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ProvisionMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ProvisionMessage_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\022Provisioning.proto\022\rsignalservice\"4\n\021P" + - "rovisionEnvelope\022\021\n\tpublicKey\030\001 \001(\014\022\014\n\004b" + - "ody\030\002 \001(\014\"\260\001\n\020ProvisionMessage\022\031\n\021identi" + - "tyKeyPublic\030\001 \001(\014\022\032\n\022identityKeyPrivate\030" + - "\002 \001(\014\022\016\n\006number\030\003 \001(\t\022\030\n\020provisioningCod" + - "e\030\004 \001(\t\022\021\n\tuserAgent\030\005 \001(\t\022\022\n\nprofileKey" + - "\030\006 \001(\014\022\024\n\014readReceipts\030\007 \001(\010BD\n.org.whis" + - "persystems.signalservice.internal.pushB\022" + - "ProvisioningProtos" - }; - 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_signalservice_ProvisionEnvelope_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_signalservice_ProvisionEnvelope_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ProvisionEnvelope_descriptor, - new java.lang.String[] { "PublicKey", "Body", }); - internal_static_signalservice_ProvisionMessage_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_signalservice_ProvisionMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ProvisionMessage_descriptor, - new java.lang.String[] { "IdentityKeyPublic", "IdentityKeyPrivate", "Number", "ProvisioningCode", "UserAgent", "ProfileKey", "ReadReceipts", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushAttachmentData.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushAttachmentData.java deleted file mode 100644 index d4368f536..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushAttachmentData.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment.ProgressListener; -import org.whispersystems.signalservice.internal.push.http.OutputStreamFactory; - -import java.io.InputStream; - -public class PushAttachmentData { - - private final String contentType; - private final InputStream data; - private final long dataSize; - private final OutputStreamFactory outputStreamFactory; - private final ProgressListener listener; - - public PushAttachmentData(String contentType, InputStream data, long dataSize, - OutputStreamFactory outputStreamFactory, ProgressListener listener) - { - this.contentType = contentType; - this.data = data; - this.dataSize = dataSize; - this.outputStreamFactory = outputStreamFactory; - this.listener = listener; - } - - public String getContentType() { - return contentType; - } - - public InputStream getData() { - return data; - } - - public long getDataSize() { - return dataSize; - } - - public OutputStreamFactory getOutputStreamFactory() { - return outputStreamFactory; - } - - public ProgressListener getListener() { - return listener; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java deleted file mode 100644 index 1aa216d7f..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java +++ /dev/null @@ -1,1162 +0,0 @@ -/* - * Copyright (C) 2014-2017 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.ecc.ECPublicKey; -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.state.PreKeyBundle; -import org.whispersystems.libsignal.state.PreKeyRecord; -import org.whispersystems.libsignal.state.SignedPreKeyRecord; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment.ProgressListener; -import org.whispersystems.signalservice.api.messages.calls.TurnServerInfo; -import org.whispersystems.signalservice.api.messages.multidevice.DeviceInfo; -import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; -import org.whispersystems.signalservice.api.push.ContactTokenDetails; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.api.push.SignedPreKeyEntity; -import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException; -import org.whispersystems.signalservice.api.push.exceptions.CaptchaRequiredException; -import org.whispersystems.signalservice.api.push.exceptions.ExpectationFailedException; -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.api.push.exceptions.NotFoundException; -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException; -import org.whispersystems.signalservice.api.push.exceptions.RateLimitException; -import org.whispersystems.signalservice.api.push.exceptions.RemoteAttestationResponseExpiredException; -import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.api.util.Tls12SocketFactory; -import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; -import org.whispersystems.signalservice.internal.configuration.SignalUrl; -import org.whispersystems.signalservice.internal.contacts.entities.DiscoveryRequest; -import org.whispersystems.signalservice.internal.contacts.entities.DiscoveryResponse; -import org.whispersystems.signalservice.internal.contacts.entities.RemoteAttestationRequest; -import org.whispersystems.signalservice.internal.contacts.entities.RemoteAttestationResponse; -import org.whispersystems.signalservice.internal.push.exceptions.MismatchedDevicesException; -import org.whispersystems.signalservice.internal.push.exceptions.StaleDevicesException; -import org.whispersystems.signalservice.internal.push.http.DigestingRequestBody; -import org.whispersystems.signalservice.internal.push.http.OutputStreamFactory; -import org.whispersystems.signalservice.internal.util.Base64; -import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager; -import org.whispersystems.signalservice.internal.util.Hex; -import org.whispersystems.signalservice.internal.util.JsonUtil; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; -import javax.net.ssl.X509TrustManager; - -import okhttp3.Call; -import okhttp3.ConnectionSpec; -import okhttp3.Credentials; -import okhttp3.MediaType; -import okhttp3.MultipartBody; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; -import okhttp3.ResponseBody; - -/** - * @author Moxie Marlinspike - */ -public class PushServiceSocket { - - private static final String TAG = PushServiceSocket.class.getSimpleName(); - - private static final String CREATE_ACCOUNT_SMS_PATH = "/v1/accounts/sms/code/%s?client=%s"; - private static final String CREATE_ACCOUNT_VOICE_PATH = "/v1/accounts/voice/code/%s"; - private static final String VERIFY_ACCOUNT_CODE_PATH = "/v1/accounts/code/%s"; - private static final String REGISTER_GCM_PATH = "/v1/accounts/gcm/"; - private static final String TURN_SERVER_INFO = "/v1/accounts/turn"; - private static final String SET_ACCOUNT_ATTRIBUTES = "/v1/accounts/attributes/"; - private static final String PIN_PATH = "/v1/accounts/pin/"; - - private static final String PREKEY_METADATA_PATH = "/v2/keys/"; - private static final String PREKEY_PATH = "/v2/keys/%s"; - private static final String PREKEY_DEVICE_PATH = "/v2/keys/%s/%s"; - private static final String SIGNED_PREKEY_PATH = "/v2/keys/signed"; - - private static final String PROVISIONING_CODE_PATH = "/v1/devices/provisioning/code"; - private static final String PROVISIONING_MESSAGE_PATH = "/v1/provisioning/%s"; - private static final String DEVICE_PATH = "/v1/devices/%s"; - - private static final String DIRECTORY_TOKENS_PATH = "/v1/directory/tokens"; - private static final String DIRECTORY_VERIFY_PATH = "/v1/directory/%s"; - private static final String DIRECTORY_AUTH_PATH = "/v1/directory/auth"; - private static final String DIRECTORY_FEEDBACK_PATH = "/v1/directory/feedback-v3/%s"; - private static final String MESSAGE_PATH = "/v1/messages/%s"; - private static final String SENDER_ACK_MESSAGE_PATH = "/v1/messages/%s/%d"; - private static final String UUID_ACK_MESSAGE_PATH = "/v1/messages/uuid/%s"; - private static final String ATTACHMENT_PATH = "/v2/attachments/form/upload"; - - private static final String PROFILE_PATH = "/v1/profile/%s"; - - private static final String SENDER_CERTIFICATE_PATH = "/v1/certificate/delivery"; - - private static final String ATTACHMENT_DOWNLOAD_PATH = "attachments/%d"; - private static final String ATTACHMENT_UPLOAD_PATH = "attachments/"; - - private static final String STICKER_MANIFEST_PATH = "stickers/%s/manifest.proto"; - private static final String STICKER_PATH = "stickers/%s/full/%d"; - - private static final Map NO_HEADERS = Collections.emptyMap(); - private static final ResponseCodeHandler NO_HANDLER = new EmptyResponseCodeHandler(); - - private long soTimeoutMillis = TimeUnit.SECONDS.toMillis(30); - private final Set connections = new HashSet(); - - private final ServiceConnectionHolder[] serviceClients; - private final ConnectionHolder[] cdnClients; - private final ConnectionHolder[] contactDiscoveryClients; - private final OkHttpClient attachmentClient; - - private final CredentialsProvider credentialsProvider; - private final String userAgent; - private final SecureRandom random; - - public PushServiceSocket(SignalServiceConfiguration signalServiceConfiguration, CredentialsProvider credentialsProvider, String userAgent) { - this.credentialsProvider = credentialsProvider; - this.userAgent = userAgent; - this.serviceClients = createServiceConnectionHolders(signalServiceConfiguration.getSignalServiceUrls()); - this.cdnClients = createConnectionHolders(signalServiceConfiguration.getSignalCdnUrls()); - this.contactDiscoveryClients = createConnectionHolders(signalServiceConfiguration.getSignalContactDiscoveryUrls()); - this.attachmentClient = createAttachmentClient(); - this.random = new SecureRandom(); - } - - public void requestSmsVerificationCode(boolean androidSmsRetriever, Optional captchaToken) throws IOException { - String path = String.format(CREATE_ACCOUNT_SMS_PATH, credentialsProvider.getUser(), androidSmsRetriever ? "android-ng" : "android"); - - if (captchaToken.isPresent()) { - path += "&captcha=" + captchaToken.get(); - } - - makeServiceRequest(path, "GET", null, NO_HEADERS, new ResponseCodeHandler() { - @Override - public void handle(int responseCode) throws NonSuccessfulResponseCodeException { - if (responseCode == 402) { - throw new CaptchaRequiredException(); - } - } - }); - } - - public void requestVoiceVerificationCode(Locale locale, Optional captchaToken) throws IOException { - Map headers = locale != null ? Collections.singletonMap("Accept-Language", locale.getLanguage() + "-" + locale.getCountry()) : NO_HEADERS; - String path = String.format(CREATE_ACCOUNT_VOICE_PATH, credentialsProvider.getUser()); - - if (captchaToken.isPresent()) { - path += "?captcha=" + captchaToken.get(); - } - - makeServiceRequest(path, "GET", null, headers, new ResponseCodeHandler() { - @Override - public void handle(int responseCode) throws NonSuccessfulResponseCodeException { - if (responseCode == 402) { - throw new CaptchaRequiredException(); - } - } - }); - } - - public void verifyAccountCode(String verificationCode, String signalingKey, int registrationId, boolean fetchesMessages, String pin, - byte[] unidentifiedAccessKey, boolean unrestrictedUnidentifiedAccess) - throws IOException - { - AccountAttributes signalingKeyEntity = new AccountAttributes(signalingKey, registrationId, fetchesMessages, pin, - unidentifiedAccessKey, unrestrictedUnidentifiedAccess); - makeServiceRequest(String.format(VERIFY_ACCOUNT_CODE_PATH, verificationCode), - "PUT", JsonUtil.toJson(signalingKeyEntity)); - } - - public void setAccountAttributes(String signalingKey, int registrationId, boolean fetchesMessages, String pin, - byte[] unidentifiedAccessKey, boolean unrestrictedUnidentifiedAccess) - throws IOException - { - AccountAttributes accountAttributes = new AccountAttributes(signalingKey, registrationId, fetchesMessages, pin, - unidentifiedAccessKey, unrestrictedUnidentifiedAccess); - makeServiceRequest(SET_ACCOUNT_ATTRIBUTES, "PUT", JsonUtil.toJson(accountAttributes)); - } - - public String getNewDeviceVerificationCode() throws IOException { - String responseText = makeServiceRequest(PROVISIONING_CODE_PATH, "GET", null); - return JsonUtil.fromJson(responseText, DeviceCode.class).getVerificationCode(); - } - - public List getDevices() throws IOException { - String responseText = makeServiceRequest(String.format(DEVICE_PATH, ""), "GET", null); - return JsonUtil.fromJson(responseText, DeviceInfoList.class).getDevices(); - } - - public void removeDevice(long deviceId) throws IOException { - makeServiceRequest(String.format(DEVICE_PATH, String.valueOf(deviceId)), "DELETE", null); - } - - public void sendProvisioningMessage(String destination, byte[] body) throws IOException { - makeServiceRequest(String.format(PROVISIONING_MESSAGE_PATH, destination), "PUT", - JsonUtil.toJson(new ProvisioningMessage(Base64.encodeBytes(body)))); - } - - public void registerGcmId(String gcmRegistrationId) throws IOException { - GcmRegistrationId registration = new GcmRegistrationId(gcmRegistrationId, true); - makeServiceRequest(REGISTER_GCM_PATH, "PUT", JsonUtil.toJson(registration)); - } - - public void unregisterGcmId() throws IOException { - makeServiceRequest(REGISTER_GCM_PATH, "DELETE", null); - } - - public void setPin(String pin) throws IOException { - RegistrationLock accountLock = new RegistrationLock(pin); - makeServiceRequest(PIN_PATH, "PUT", JsonUtil.toJson(accountLock)); - } - - public void removePin() throws IOException { - makeServiceRequest(PIN_PATH, "DELETE", null); - } - - public byte[] getSenderCertificate() throws IOException { - String responseText = makeServiceRequest(SENDER_CERTIFICATE_PATH, "GET", null); - return JsonUtil.fromJson(responseText, SenderCertificate.class).getCertificate(); - } - - public SendMessageResponse sendMessage(OutgoingPushMessageList bundle, Optional unidentifiedAccess) - throws IOException - { - try { - String responseText = makeServiceRequest(String.format(MESSAGE_PATH, bundle.getDestination()), "PUT", JsonUtil.toJson(bundle), NO_HEADERS, unidentifiedAccess); - - if (responseText == null) return new SendMessageResponse(false); - else return JsonUtil.fromJson(responseText, SendMessageResponse.class); - } catch (NotFoundException nfe) { - throw new UnregisteredUserException(bundle.getDestination(), nfe); - } - } - - public List getMessages() throws IOException { - String responseText = makeServiceRequest(String.format(MESSAGE_PATH, ""), "GET", null); - return JsonUtil.fromJson(responseText, SignalServiceEnvelopeEntityList.class).getMessages(); - } - - public void acknowledgeMessage(String sender, long timestamp) throws IOException { - makeServiceRequest(String.format(SENDER_ACK_MESSAGE_PATH, sender, timestamp), "DELETE", null); - } - - public void acknowledgeMessage(String uuid) throws IOException { - makeServiceRequest(String.format(UUID_ACK_MESSAGE_PATH, uuid), "DELETE", null); - } - - public void registerPreKeys(IdentityKey identityKey, - SignedPreKeyRecord signedPreKey, - List records) - throws IOException - { - List entities = new LinkedList(); - - for (PreKeyRecord record : records) { - PreKeyEntity entity = new PreKeyEntity(record.getId(), - record.getKeyPair().getPublicKey()); - - entities.add(entity); - } - - SignedPreKeyEntity signedPreKeyEntity = new SignedPreKeyEntity(signedPreKey.getId(), - signedPreKey.getKeyPair().getPublicKey(), - signedPreKey.getSignature()); - - makeServiceRequest(String.format(PREKEY_PATH, ""), "PUT", - JsonUtil.toJson(new PreKeyState(entities, signedPreKeyEntity, identityKey))); - } - - public int getAvailablePreKeys() throws IOException { - String responseText = makeServiceRequest(PREKEY_METADATA_PATH, "GET", null); - PreKeyStatus preKeyStatus = JsonUtil.fromJson(responseText, PreKeyStatus.class); - - return preKeyStatus.getCount(); - } - - public List getPreKeys(SignalServiceAddress destination, - Optional unidentifiedAccess, - int deviceIdInteger) - throws IOException - { - try { - String deviceId = String.valueOf(deviceIdInteger); - - if (deviceId.equals("1")) - deviceId = "*"; - - String path = String.format(PREKEY_DEVICE_PATH, destination.getNumber(), deviceId); - - if (destination.getRelay().isPresent()) { - path = path + "?relay=" + destination.getRelay().get(); - } - - String responseText = makeServiceRequest(path, "GET", null, NO_HEADERS, unidentifiedAccess); - PreKeyResponse response = JsonUtil.fromJson(responseText, PreKeyResponse.class); - List bundles = new LinkedList(); - - for (PreKeyResponseItem device : response.getDevices()) { - ECPublicKey preKey = null; - ECPublicKey signedPreKey = null; - byte[] signedPreKeySignature = null; - int preKeyId = -1; - int signedPreKeyId = -1; - - if (device.getSignedPreKey() != null) { - signedPreKey = device.getSignedPreKey().getPublicKey(); - signedPreKeyId = device.getSignedPreKey().getKeyId(); - signedPreKeySignature = device.getSignedPreKey().getSignature(); - } - - if (device.getPreKey() != null) { - preKeyId = device.getPreKey().getKeyId(); - preKey = device.getPreKey().getPublicKey(); - } - - bundles.add(new PreKeyBundle(device.getRegistrationId(), device.getDeviceId(), preKeyId, - preKey, signedPreKeyId, signedPreKey, signedPreKeySignature, - response.getIdentityKey())); - } - - return bundles; - } catch (NotFoundException nfe) { - throw new UnregisteredUserException(destination.getNumber(), nfe); - } - } - - public PreKeyBundle getPreKey(SignalServiceAddress destination, int deviceId) throws IOException { - try { - String path = String.format(PREKEY_DEVICE_PATH, destination.getNumber(), - String.valueOf(deviceId)); - - if (destination.getRelay().isPresent()) { - path = path + "?relay=" + destination.getRelay().get(); - } - - String responseText = makeServiceRequest(path, "GET", null); - PreKeyResponse response = JsonUtil.fromJson(responseText, PreKeyResponse.class); - - if (response.getDevices() == null || response.getDevices().size() < 1) - throw new IOException("Empty prekey list"); - - PreKeyResponseItem device = response.getDevices().get(0); - ECPublicKey preKey = null; - ECPublicKey signedPreKey = null; - byte[] signedPreKeySignature = null; - int preKeyId = -1; - int signedPreKeyId = -1; - - if (device.getPreKey() != null) { - preKeyId = device.getPreKey().getKeyId(); - preKey = device.getPreKey().getPublicKey(); - } - - if (device.getSignedPreKey() != null) { - signedPreKeyId = device.getSignedPreKey().getKeyId(); - signedPreKey = device.getSignedPreKey().getPublicKey(); - signedPreKeySignature = device.getSignedPreKey().getSignature(); - } - - return new PreKeyBundle(device.getRegistrationId(), device.getDeviceId(), preKeyId, preKey, - signedPreKeyId, signedPreKey, signedPreKeySignature, response.getIdentityKey()); - } catch (NotFoundException nfe) { - throw new UnregisteredUserException(destination.getNumber(), nfe); - } - } - - public SignedPreKeyEntity getCurrentSignedPreKey() throws IOException { - try { - String responseText = makeServiceRequest(SIGNED_PREKEY_PATH, "GET", null); - return JsonUtil.fromJson(responseText, SignedPreKeyEntity.class); - } catch (NotFoundException e) { - Log.w(TAG, e); - return null; - } - } - - public void setCurrentSignedPreKey(SignedPreKeyRecord signedPreKey) throws IOException { - SignedPreKeyEntity signedPreKeyEntity = new SignedPreKeyEntity(signedPreKey.getId(), - signedPreKey.getKeyPair().getPublicKey(), - signedPreKey.getSignature()); - makeServiceRequest(SIGNED_PREKEY_PATH, "PUT", JsonUtil.toJson(signedPreKeyEntity)); - } - - public void retrieveAttachment(long attachmentId, File destination, int maxSizeBytes, ProgressListener listener) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - downloadFromCdn(destination, String.format(ATTACHMENT_DOWNLOAD_PATH, attachmentId), maxSizeBytes, listener); - } - - public void retrieveSticker(File destination, byte[] packId, int stickerId) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - String hexPackId = Hex.toStringCondensed(packId); - downloadFromCdn(destination, String.format(STICKER_PATH, hexPackId, stickerId), 1024 * 1024, null); - } - - public byte[] retrieveSticker(byte[] packId, int stickerId) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - String hexPackId = Hex.toStringCondensed(packId); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - - downloadFromCdn(output, String.format(STICKER_PATH, hexPackId, stickerId), 1024 * 1024, null); - - return output.toByteArray(); - } - - public byte[] retrieveStickerManifest(byte[] packId) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - String hexPackId = Hex.toStringCondensed(packId); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - - downloadFromCdn(output, String.format(STICKER_MANIFEST_PATH, hexPackId), 1024 * 1024, null); - - return output.toByteArray(); - } - - public SignalServiceProfile retrieveProfile(SignalServiceAddress target, Optional unidentifiedAccess) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - try { - String response = makeServiceRequest(String.format(PROFILE_PATH, target.getNumber()), "GET", null, NO_HEADERS, unidentifiedAccess); - return JsonUtil.fromJson(response, SignalServiceProfile.class); - } catch (IOException e) { - Log.w(TAG, e); - throw new NonSuccessfulResponseCodeException("Unable to parse entity"); - } - } - - public void retrieveProfileAvatar(String path, File destination, int maxSizeBytes) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - downloadFromCdn(destination, path, maxSizeBytes, null); - } - - public void setProfileName(String name) throws NonSuccessfulResponseCodeException, PushNetworkException { - makeServiceRequest(String.format(PROFILE_PATH, "name/" + (name == null ? "" : URLEncoder.encode(name))), "PUT", ""); - } - - public void setProfileAvatar(ProfileAvatarData profileAvatar) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - String response = makeServiceRequest(String.format(PROFILE_PATH, "form/avatar"), "GET", null); - ProfileAvatarUploadAttributes formAttributes; - - try { - formAttributes = JsonUtil.fromJson(response, ProfileAvatarUploadAttributes.class); - } catch (IOException e) { - Log.w(TAG, e); - throw new NonSuccessfulResponseCodeException("Unable to parse entity"); - } - - if (profileAvatar != null) { - uploadToCdn("", formAttributes.getAcl(), formAttributes.getKey(), - formAttributes.getPolicy(), formAttributes.getAlgorithm(), - formAttributes.getCredential(), formAttributes.getDate(), - formAttributes.getSignature(), profileAvatar.getData(), - profileAvatar.getContentType(), profileAvatar.getDataLength(), - profileAvatar.getOutputStreamFactory(), null); - } - } - - public List retrieveDirectory(Set contactTokens) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - try { - ContactTokenList contactTokenList = new ContactTokenList(new LinkedList(contactTokens)); - String response = makeServiceRequest(DIRECTORY_TOKENS_PATH, "PUT", JsonUtil.toJson(contactTokenList)); - ContactTokenDetailsList activeTokens = JsonUtil.fromJson(response, ContactTokenDetailsList.class); - - return activeTokens.getContacts(); - } catch (IOException e) { - Log.w(TAG, e); - throw new NonSuccessfulResponseCodeException("Unable to parse entity"); - } - } - - public ContactTokenDetails getContactTokenDetails(String contactToken) throws IOException { - try { - String response = makeServiceRequest(String.format(DIRECTORY_VERIFY_PATH, contactToken), "GET", null); - return JsonUtil.fromJson(response, ContactTokenDetails.class); - } catch (NotFoundException nfe) { - return null; - } - } - - public String getContactDiscoveryAuthorization() throws IOException { - String response = makeServiceRequest(DIRECTORY_AUTH_PATH, "GET", null); - ContactDiscoveryCredentials token = JsonUtil.fromJson(response, ContactDiscoveryCredentials.class); - return Credentials.basic(token.getUsername(), token.getPassword()); - } - - public Pair> getContactDiscoveryRemoteAttestation(String authorization, RemoteAttestationRequest request, String mrenclave) - throws IOException - { - Response response = makeContactDiscoveryRequest(authorization, new LinkedList(), "/v1/attestation/" + mrenclave, "PUT", JsonUtil.toJson(request)); - ResponseBody body = response.body(); - List rawCookies = response.headers("Set-Cookie"); - List cookies = new LinkedList(); - - for (String cookie : rawCookies) { - cookies.add(cookie.split(";")[0]); - } - - if (body != null) { - return new Pair>(JsonUtil.fromJson(body.string(), RemoteAttestationResponse.class), cookies); - } else { - throw new NonSuccessfulResponseCodeException("Empty response!"); - } - } - - public DiscoveryResponse getContactDiscoveryRegisteredUsers(String authorizationToken, DiscoveryRequest request, List cookies, String mrenclave) - throws IOException - { - ResponseBody body = makeContactDiscoveryRequest(authorizationToken, cookies, "/v1/discovery/" + mrenclave, "PUT", JsonUtil.toJson(request)).body(); - - if (body != null) { - return JsonUtil.fromJson(body.string(), DiscoveryResponse.class); - } else { - throw new NonSuccessfulResponseCodeException("Empty response!"); - } - } - - public void reportContactDiscoveryServiceMatch() throws IOException { - makeServiceRequest(String.format(DIRECTORY_FEEDBACK_PATH, "ok"), "PUT", ""); - } - - public void reportContactDiscoveryServiceMismatch() throws IOException { - makeServiceRequest(String.format(DIRECTORY_FEEDBACK_PATH, "mismatch"), "PUT", ""); - } - - public void reportContactDiscoveryServiceAttestationError(String reason) throws IOException { - ContactDiscoveryFailureReason failureReason = new ContactDiscoveryFailureReason(reason); - makeServiceRequest(String.format(DIRECTORY_FEEDBACK_PATH, "attestation-error"), "PUT", JsonUtil.toJson(failureReason)); - } - - public void reportContactDiscoveryServiceUnexpectedError(String reason) throws IOException { - ContactDiscoveryFailureReason failureReason = new ContactDiscoveryFailureReason(reason); - makeServiceRequest(String.format(DIRECTORY_FEEDBACK_PATH, "unexpected-error"), "PUT", JsonUtil.toJson(failureReason)); - } - - public TurnServerInfo getTurnServerInfo() throws IOException { - String response = makeServiceRequest(TURN_SERVER_INFO, "GET", null); - return JsonUtil.fromJson(response, TurnServerInfo.class); - } - - public void setSoTimeoutMillis(long soTimeoutMillis) { - this.soTimeoutMillis = soTimeoutMillis; - } - - public void cancelInFlightRequests() { - synchronized (connections) { - Log.w(TAG, "Canceling: " + connections.size()); - for (Call connection : connections) { - Log.w(TAG, "Canceling: " + connection); - connection.cancel(); - } - } - } - - public AttachmentUploadAttributes getAttachmentUploadAttributes() throws NonSuccessfulResponseCodeException, PushNetworkException { - String response = makeServiceRequest(ATTACHMENT_PATH, "GET", null); - try { - return JsonUtil.fromJson(response, AttachmentUploadAttributes.class); - } catch (IOException e) { - Log.w(TAG, e); - throw new NonSuccessfulResponseCodeException("Unable to parse entity"); - } - } - - public Pair uploadAttachment(PushAttachmentData attachment, AttachmentUploadAttributes uploadAttributes) - throws PushNetworkException, NonSuccessfulResponseCodeException - { - long id = Long.parseLong(uploadAttributes.getAttachmentId()); - byte[] digest = uploadToCdn(ATTACHMENT_UPLOAD_PATH, uploadAttributes.getAcl(), uploadAttributes.getKey(), - uploadAttributes.getPolicy(), uploadAttributes.getAlgorithm(), - uploadAttributes.getCredential(), uploadAttributes.getDate(), - uploadAttributes.getSignature(), attachment.getData(), - "application/octet-stream", attachment.getDataSize(), - attachment.getOutputStreamFactory(), attachment.getListener()); - - return new Pair(id, digest); - } - - private void downloadFromCdn(File destination, String path, int maxSizeBytes, ProgressListener listener) - throws PushNetworkException, NonSuccessfulResponseCodeException - { - try { - FileOutputStream outputStream = new FileOutputStream(destination); - downloadFromCdn(outputStream, path, maxSizeBytes, listener); - } catch (IOException e) { - throw new PushNetworkException(e); - } - } - - private void downloadFromCdn(OutputStream outputStream, String path, int maxSizeBytes, ProgressListener listener) - throws PushNetworkException, NonSuccessfulResponseCodeException - { - ConnectionHolder connectionHolder = getRandom(cdnClients, random); - OkHttpClient okHttpClient = connectionHolder.getClient() - .newBuilder() - .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .build(); - - Request.Builder request = new Request.Builder().url(connectionHolder.getUrl() + "/" + path).get(); - - if (connectionHolder.getHostHeader().isPresent()) { - request.addHeader("Host", connectionHolder.getHostHeader().get()); - } - - Call call = okHttpClient.newCall(request.build()); - - synchronized (connections) { - connections.add(call); - } - - Response response; - - try { - response = call.execute(); - - if (response.isSuccessful()) { - ResponseBody body = response.body(); - - if (body == null) throw new PushNetworkException("No response body!"); - if (body.contentLength() > maxSizeBytes) throw new PushNetworkException("Response exceeds max size!"); - - InputStream in = body.byteStream(); - byte[] buffer = new byte[32768]; - - int read, totalRead = 0; - - while ((read = in.read(buffer, 0, buffer.length)) != -1) { - outputStream.write(buffer, 0, read); - if ((totalRead += read) > maxSizeBytes) throw new PushNetworkException("Response exceeded max size!"); - - if (listener != null) { - listener.onAttachmentProgress(body.contentLength(), totalRead); - } - } - - return; - } - } catch (IOException e) { - throw new PushNetworkException(e); - } finally { - synchronized (connections) { - connections.remove(call); - } - } - - throw new NonSuccessfulResponseCodeException("Response: " + response); - } - - private byte[] uploadToCdn(String path, String acl, String key, String policy, String algorithm, - String credential, String date, String signature, - InputStream data, String contentType, long length, - OutputStreamFactory outputStreamFactory, ProgressListener progressListener) - throws PushNetworkException, NonSuccessfulResponseCodeException - { - ConnectionHolder connectionHolder = getRandom(cdnClients, random); - OkHttpClient okHttpClient = connectionHolder.getClient() - .newBuilder() - .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .build(); - - DigestingRequestBody file = new DigestingRequestBody(data, outputStreamFactory, contentType, length, progressListener); - - RequestBody requestBody = new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("acl", acl) - .addFormDataPart("key", key) - .addFormDataPart("policy", policy) - .addFormDataPart("Content-Type", contentType) - .addFormDataPart("x-amz-algorithm", algorithm) - .addFormDataPart("x-amz-credential", credential) - .addFormDataPart("x-amz-date", date) - .addFormDataPart("x-amz-signature", signature) - .addFormDataPart("file", "file", file) - .build(); - - Request.Builder request = new Request.Builder() - .url(connectionHolder.getUrl() + "/" + path) - .post(requestBody); - - if (connectionHolder.getHostHeader().isPresent()) { - request.addHeader("Host", connectionHolder.getHostHeader().get()); - } - - Call call = okHttpClient.newCall(request.build()); - - synchronized (connections) { - connections.add(call); - } - - try { - Response response; - - try { - response = call.execute(); - } catch (IOException e) { - throw new PushNetworkException(e); - } - - if (response.isSuccessful()) return file.getTransmittedDigest(); - else throw new NonSuccessfulResponseCodeException("Response: " + response); - } finally { - synchronized (connections) { - connections.remove(call); - } - } - } - - private String makeServiceRequest(String urlFragment, String method, String body) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - return makeServiceRequest(urlFragment, method, body, NO_HEADERS, NO_HANDLER, Optional.absent()); - } - - private String makeServiceRequest(String urlFragment, String method, String body, Map headers) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - return makeServiceRequest(urlFragment, method, body, headers, NO_HANDLER, Optional.absent()); - } - - private String makeServiceRequest(String urlFragment, String method, String body, Map headers, ResponseCodeHandler responseCodeHandler) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - return makeServiceRequest(urlFragment, method, body, headers, responseCodeHandler, Optional.absent()); - } - - private String makeServiceRequest(String urlFragment, String method, String body, Map headers, Optional unidentifiedAccessKey) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - return makeServiceRequest(urlFragment, method, body, headers, NO_HANDLER, unidentifiedAccessKey); - } - - private String makeServiceRequest(String urlFragment, String method, String body, Map headers, ResponseCodeHandler responseCodeHandler, Optional unidentifiedAccessKey) - throws NonSuccessfulResponseCodeException, PushNetworkException - { - Response response = getServiceConnection(urlFragment, method, body, headers, unidentifiedAccessKey); - - int responseCode; - String responseMessage; - String responseBody; - - try { - responseCode = response.code(); - responseMessage = response.message(); - responseBody = response.body().string(); - } catch (IOException ioe) { - throw new PushNetworkException(ioe); - } - - responseCodeHandler.handle(responseCode); - - switch (responseCode) { - case 413: - throw new RateLimitException("Rate limit exceeded: " + responseCode); - case 401: - case 403: - throw new AuthorizationFailedException("Authorization failed!"); - case 404: - throw new NotFoundException("Not found"); - case 409: - MismatchedDevices mismatchedDevices; - - try { - mismatchedDevices = JsonUtil.fromJson(responseBody, MismatchedDevices.class); - } catch (JsonProcessingException e) { - Log.w(TAG, e); - throw new NonSuccessfulResponseCodeException("Bad response: " + responseCode + " " + responseMessage); - } catch (IOException e) { - throw new PushNetworkException(e); - } - - throw new MismatchedDevicesException(mismatchedDevices); - case 410: - StaleDevices staleDevices; - - try { - staleDevices = JsonUtil.fromJson(responseBody, StaleDevices.class); - } catch (JsonProcessingException e) { - throw new NonSuccessfulResponseCodeException("Bad response: " + responseCode + " " + responseMessage); - } catch (IOException e) { - throw new PushNetworkException(e); - } - - throw new StaleDevicesException(staleDevices); - case 411: - DeviceLimit deviceLimit; - - try { - deviceLimit = JsonUtil.fromJson(responseBody, DeviceLimit.class); - } catch (JsonProcessingException e) { - throw new NonSuccessfulResponseCodeException("Bad response: " + responseCode + " " + responseMessage); - } catch (IOException e) { - throw new PushNetworkException(e); - } - - throw new DeviceLimitExceededException(deviceLimit); - case 417: - throw new ExpectationFailedException(); - case 423: - RegistrationLockFailure accountLockFailure; - - try { - accountLockFailure = JsonUtil.fromJson(responseBody, RegistrationLockFailure.class); - } catch (JsonProcessingException e) { - Log.w(TAG, e); - throw new NonSuccessfulResponseCodeException("Bad response: " + responseCode + " " + responseMessage); - } catch (IOException e) { - throw new PushNetworkException(e); - } - - throw new LockedException(accountLockFailure.length, accountLockFailure.timeRemaining); - } - - if (responseCode != 200 && responseCode != 204) { - throw new NonSuccessfulResponseCodeException("Bad response: " + responseCode + " " + - responseMessage); - } - - return responseBody; - } - - private Response getServiceConnection(String urlFragment, String method, String body, Map headers, Optional unidentifiedAccess) - throws PushNetworkException - { - try { - ServiceConnectionHolder connectionHolder = (ServiceConnectionHolder) getRandom(serviceClients, random); - OkHttpClient baseClient = unidentifiedAccess.isPresent() ? connectionHolder.getUnidentifiedClient() : connectionHolder.getClient(); - OkHttpClient okHttpClient = baseClient.newBuilder() - .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .build(); - - Log.w(TAG, "Push service URL: " + connectionHolder.getUrl()); - Log.w(TAG, "Opening URL: " + String.format("%s%s", connectionHolder.getUrl(), urlFragment)); - - Request.Builder request = new Request.Builder(); - request.url(String.format("%s%s", connectionHolder.getUrl(), urlFragment)); - - if (body != null) { - request.method(method, RequestBody.create(MediaType.parse("application/json"), body)); - } else { - request.method(method, null); - } - - for (Map.Entry header : headers.entrySet()) { - request.addHeader(header.getKey(), header.getValue()); - } - - if (unidentifiedAccess.isPresent()) { - request.addHeader("Unidentified-Access-Key", Base64.encodeBytes(unidentifiedAccess.get().getUnidentifiedAccessKey())); - } else if (credentialsProvider.getPassword() != null) { - request.addHeader("Authorization", getAuthorizationHeader(credentialsProvider)); - } - - if (userAgent != null) { - request.addHeader("X-Signal-Agent", userAgent); - } - - if (connectionHolder.getHostHeader().isPresent()) { - request.addHeader("Host", connectionHolder.getHostHeader().get()); - } - - Call call = okHttpClient.newCall(request.build()); - - synchronized (connections) { - connections.add(call); - } - - try { - return call.execute(); - } finally { - synchronized (connections) { - connections.remove(call); - } - } - } catch (IOException e) { - throw new PushNetworkException(e); - } - } - - private Response makeContactDiscoveryRequest(String authorization, List cookies, String path, String method, String body) - throws PushNetworkException, NonSuccessfulResponseCodeException - { - ConnectionHolder connectionHolder = getRandom(contactDiscoveryClients, random); - OkHttpClient okHttpClient = connectionHolder.getClient() - .newBuilder() - .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS) - .build(); - - Request.Builder request = new Request.Builder().url(connectionHolder.getUrl() + path); - - if (body != null) { - request.method(method, RequestBody.create(MediaType.parse("application/json"), body)); - } else { - request.method(method, null); - } - - if (connectionHolder.getHostHeader().isPresent()) { - request.addHeader("Host", connectionHolder.getHostHeader().get()); - } - - if (authorization != null) { - request.addHeader("Authorization", authorization); - } - - if (cookies != null && !cookies.isEmpty()) { - request.addHeader("Cookie", Util.join(cookies, "; ")); - } - - Call call = okHttpClient.newCall(request.build()); - - synchronized (connections) { - connections.add(call); - } - - Response response; - - try { - response = call.execute(); - - if (response.isSuccessful()) { - return response; - } - } catch (IOException e) { - throw new PushNetworkException(e); - } finally { - synchronized (connections) { - connections.remove(call); - } - } - - switch (response.code()) { - case 401: - case 403: - throw new AuthorizationFailedException("Authorization failed!"); - case 409: - throw new RemoteAttestationResponseExpiredException("Remote attestation response expired"); - case 429: - throw new RateLimitException("Rate limit exceeded: " + response.code()); - } - - throw new NonSuccessfulResponseCodeException("Response: " + response); - } - - private ServiceConnectionHolder[] createServiceConnectionHolders(SignalUrl[] urls) { - List serviceConnectionHolders = new LinkedList(); - - for (SignalUrl url : urls) { - serviceConnectionHolders.add(new ServiceConnectionHolder(createConnectionClient(url), - createConnectionClient(url), - url.getUrl(), url.getHostHeader())); - } - - return serviceConnectionHolders.toArray(new ServiceConnectionHolder[0]); - } - - private ConnectionHolder[] createConnectionHolders(SignalUrl[] urls) { - List connectionHolders = new LinkedList(); - - for (SignalUrl url : urls) { - connectionHolders.add(new ConnectionHolder(createConnectionClient(url), url.getUrl(), url.getHostHeader())); - } - - return connectionHolders.toArray(new ConnectionHolder[0]); - } - - private OkHttpClient createConnectionClient(SignalUrl url) { - try { - TrustManager[] trustManagers = BlacklistingTrustManager.createFor(url.getTrustStore()); - - SSLContext context = SSLContext.getInstance("TLS"); - context.init(null, trustManagers, null); - - return new OkHttpClient.Builder() - .sslSocketFactory(new Tls12SocketFactory(context.getSocketFactory()), (X509TrustManager)trustManagers[0]) - .connectionSpecs(url.getConnectionSpecs().or(Util.immutableList(ConnectionSpec.RESTRICTED_TLS))) - .build(); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (KeyManagementException e) { - throw new AssertionError(e); - } - } - - private OkHttpClient createAttachmentClient() { - try { - SSLContext context = SSLContext.getInstance("TLS"); - context.init(null, null, null); - - TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - trustManagerFactory.init((KeyStore)null); - - return new OkHttpClient.Builder() - .sslSocketFactory(new Tls12SocketFactory(context.getSocketFactory()), - (X509TrustManager)trustManagerFactory.getTrustManagers()[0]) - .connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS)) - .build(); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (KeyManagementException e) { - throw new AssertionError(e); - } catch (KeyStoreException e) { - throw new AssertionError(e); - } - } - - private String getAuthorizationHeader(CredentialsProvider credentialsProvider) { - try { - return "Basic " + Base64.encodeBytes((credentialsProvider.getUser() + ":" + credentialsProvider.getPassword()).getBytes("UTF-8")); - } catch (UnsupportedEncodingException e) { - throw new AssertionError(e); - } - } - - private ConnectionHolder getRandom(ConnectionHolder[] connections, SecureRandom random) { - return connections[random.nextInt(connections.length)]; - } - - private static class GcmRegistrationId { - - @JsonProperty - private String gcmRegistrationId; - - @JsonProperty - private boolean webSocketChannel; - - public GcmRegistrationId() {} - - public GcmRegistrationId(String gcmRegistrationId, boolean webSocketChannel) { - this.gcmRegistrationId = gcmRegistrationId; - this.webSocketChannel = webSocketChannel; - } - } - - private static class RegistrationLock { - @JsonProperty - private String pin; - - public RegistrationLock() {} - - public RegistrationLock(String pin) { - this.pin = pin; - } - } - - private static class RegistrationLockFailure { - @JsonProperty - private int length; - - @JsonProperty - private long timeRemaining; - } - - private static class AttachmentDescriptor { - @JsonProperty - private long id; - - @JsonProperty - private String location; - - public long getId() { - return id; - } - - public String getLocation() { - return location; - } - } - - - private static class ConnectionHolder { - - private final OkHttpClient client; - private final String url; - private final Optional hostHeader; - - private ConnectionHolder(OkHttpClient client, String url, Optional hostHeader) { - this.client = client; - this.url = url; - this.hostHeader = hostHeader; - } - - OkHttpClient getClient() { - return client; - } - - public String getUrl() { - return url; - } - - Optional getHostHeader() { - return hostHeader; - } - } - - private static class ServiceConnectionHolder extends ConnectionHolder { - - private final OkHttpClient unidentifiedClient; - - private ServiceConnectionHolder(OkHttpClient identifiedClient, OkHttpClient unidentifiedClient, String url, Optional hostHeader) { - super(identifiedClient, url, hostHeader); - this.unidentifiedClient = unidentifiedClient; - } - - OkHttpClient getUnidentifiedClient() { - return unidentifiedClient; - } - } - - private interface ResponseCodeHandler { - void handle(int responseCode) throws NonSuccessfulResponseCodeException, PushNetworkException; - } - - private static class EmptyResponseCodeHandler implements ResponseCodeHandler { - @Override - public void handle(int responseCode) { } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushTransportDetails.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushTransportDetails.java deleted file mode 100644 index 13cff09cd..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/PushTransportDetails.java +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - - -import org.whispersystems.libsignal.logging.Log; - -public class PushTransportDetails { - - private static final String TAG = PushTransportDetails.class.getSimpleName(); - - private final int messageVersion; - - public PushTransportDetails(int messageVersion) { - this.messageVersion = messageVersion; - } - - public byte[] getStrippedPaddingMessageBody(byte[] messageWithPadding) { - if (messageVersion < 2) throw new AssertionError("Unknown version: " + messageVersion); - else if (messageVersion == 2) return messageWithPadding; - - int paddingStart = 0; - - for (int i=messageWithPadding.length-1;i>=0;i--) { - if (messageWithPadding[i] == (byte)0x80) { - paddingStart = i; - break; - } else if (messageWithPadding[i] != (byte)0x00) { - Log.w(TAG, "Padding byte is malformed, returning unstripped padding."); - return messageWithPadding; - } - } - - byte[] strippedMessage = new byte[paddingStart]; - System.arraycopy(messageWithPadding, 0, strippedMessage, 0, strippedMessage.length); - - return strippedMessage; - } - - public byte[] getPaddedMessageBody(byte[] messageBody) { - if (messageVersion < 2) throw new AssertionError("Unknown version: " + messageVersion); - else if (messageVersion == 2) return messageBody; - - // NOTE: This is dumb. We have our own padding scheme, but so does the cipher. - // The +1 -1 here is to make sure the Cipher has room to add one padding byte, - // otherwise it'll add a full 16 extra bytes. - byte[] paddedMessage = new byte[getPaddedMessageLength(messageBody.length + 1) - 1]; - System.arraycopy(messageBody, 0, paddedMessage, 0, messageBody.length); - paddedMessage[messageBody.length] = (byte)0x80; - - return paddedMessage; - } - - private int getPaddedMessageLength(int messageLength) { - int messageLengthWithTerminator = messageLength + 1; - int messagePartCount = messageLengthWithTerminator / 160; - - if (messageLengthWithTerminator % 160 != 0) { - messagePartCount++; - } - - return messagePartCount * 160; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SendMessageResponse.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SendMessageResponse.java deleted file mode 100644 index ac129f271..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SendMessageResponse.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -public class SendMessageResponse { - - private boolean needsSync; - - public SendMessageResponse() {} - - public SendMessageResponse(boolean needsSync) { - this.needsSync = needsSync; - } - - public boolean getNeedsSync() { - return needsSync; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SenderCertificate.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SenderCertificate.java deleted file mode 100644 index b96086d3a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SenderCertificate.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import org.whispersystems.signalservice.internal.util.Base64; - -import java.io.IOException; - -public class SenderCertificate { - - @JsonProperty - @JsonDeserialize(using = ByteArrayDesieralizer.class) - @JsonSerialize(using = ByteArraySerializer.class) - private byte[] certificate; - - public SenderCertificate() {} - - public byte[] getCertificate() { - return certificate; - } - - public static class ByteArraySerializer extends JsonSerializer { - @Override - public void serialize(byte[] value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - gen.writeString(Base64.encodeBytes(value)); - } - } - - public static class ByteArrayDesieralizer extends JsonDeserializer { - - @Override - public byte[] deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { - return Base64.decode(p.getValueAsString()); - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntity.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntity.java deleted file mode 100644 index 71637b1d1..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntity.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class SignalServiceEnvelopeEntity { - - @JsonProperty - private int type; - - @JsonProperty - private String relay; - - @JsonProperty - private long timestamp; - - @JsonProperty - private String source; - - @JsonProperty - private int sourceDevice; - - @JsonProperty - private byte[] message; - - @JsonProperty - private byte[] content; - - @JsonProperty - private long serverTimestamp; - - @JsonProperty - private String guid; - - public SignalServiceEnvelopeEntity() {} - - public int getType() { - return type; - } - - public String getRelay() { - return relay; - } - - public long getTimestamp() { - return timestamp; - } - - public String getSource() { - return source; - } - - public int getSourceDevice() { - return sourceDevice; - } - - public byte[] getMessage() { - return message; - } - - public byte[] getContent() { - return content; - } - - public long getServerTimestamp() { - return serverTimestamp; - } - - public String getServerUuid() { - return guid; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntityList.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntityList.java deleted file mode 100644 index 276591ced..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceEnvelopeEntityList.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.whispersystems.signalservice.internal.push; - -import java.util.List; - -public class SignalServiceEnvelopeEntityList { - - private List messages; - - public SignalServiceEnvelopeEntityList() {} - - public List getMessages() { - return messages; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceProtos.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceProtos.java deleted file mode 100644 index 73fdd0503..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/SignalServiceProtos.java +++ /dev/null @@ -1,46735 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SignalService.proto - -package org.whispersystems.signalservice.internal.push; - -public final class SignalServiceProtos { - private SignalServiceProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface EnvelopeOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.Envelope.Type type = 1; - /** - * optional .signalservice.Envelope.Type type = 1; - */ - boolean hasType(); - /** - * optional .signalservice.Envelope.Type type = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type getType(); - - // optional string source = 2; - /** - * optional string source = 2; - */ - boolean hasSource(); - /** - * optional string source = 2; - */ - java.lang.String getSource(); - /** - * optional string source = 2; - */ - com.google.protobuf.ByteString - getSourceBytes(); - - // optional uint32 sourceDevice = 7; - /** - * optional uint32 sourceDevice = 7; - */ - boolean hasSourceDevice(); - /** - * optional uint32 sourceDevice = 7; - */ - int getSourceDevice(); - - // optional string relay = 3; - /** - * optional string relay = 3; - */ - boolean hasRelay(); - /** - * optional string relay = 3; - */ - java.lang.String getRelay(); - /** - * optional string relay = 3; - */ - com.google.protobuf.ByteString - getRelayBytes(); - - // optional uint64 timestamp = 5; - /** - * optional uint64 timestamp = 5; - */ - boolean hasTimestamp(); - /** - * optional uint64 timestamp = 5; - */ - long getTimestamp(); - - // optional bytes legacyMessage = 6; - /** - * optional bytes legacyMessage = 6; - * - *
-     * Contains an encrypted DataMessage
-     * 
- */ - boolean hasLegacyMessage(); - /** - * optional bytes legacyMessage = 6; - * - *
-     * Contains an encrypted DataMessage
-     * 
- */ - com.google.protobuf.ByteString getLegacyMessage(); - - // optional bytes content = 8; - /** - * optional bytes content = 8; - * - *
-     * Contains an encrypted Content
-     * 
- */ - boolean hasContent(); - /** - * optional bytes content = 8; - * - *
-     * Contains an encrypted Content
-     * 
- */ - com.google.protobuf.ByteString getContent(); - - // optional string serverGuid = 9; - /** - * optional string serverGuid = 9; - */ - boolean hasServerGuid(); - /** - * optional string serverGuid = 9; - */ - java.lang.String getServerGuid(); - /** - * optional string serverGuid = 9; - */ - com.google.protobuf.ByteString - getServerGuidBytes(); - - // optional uint64 serverTimestamp = 10; - /** - * optional uint64 serverTimestamp = 10; - */ - boolean hasServerTimestamp(); - /** - * optional uint64 serverTimestamp = 10; - */ - long getServerTimestamp(); - } - /** - * Protobuf type {@code signalservice.Envelope} - */ - public static final class Envelope extends - com.google.protobuf.GeneratedMessage - implements EnvelopeOrBuilder { - // Use Envelope.newBuilder() to construct. - private Envelope(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Envelope(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Envelope defaultInstance; - public static Envelope getDefaultInstance() { - return defaultInstance; - } - - public Envelope getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Envelope( - 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: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(1, rawValue); - } else { - bitField0_ |= 0x00000001; - type_ = value; - } - break; - } - case 18: { - bitField0_ |= 0x00000002; - source_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000008; - relay_ = input.readBytes(); - break; - } - case 40: { - bitField0_ |= 0x00000010; - timestamp_ = input.readUInt64(); - break; - } - case 50: { - bitField0_ |= 0x00000020; - legacyMessage_ = input.readBytes(); - break; - } - case 56: { - bitField0_ |= 0x00000004; - sourceDevice_ = input.readUInt32(); - break; - } - case 66: { - bitField0_ |= 0x00000040; - content_ = input.readBytes(); - break; - } - case 74: { - bitField0_ |= 0x00000080; - serverGuid_ = input.readBytes(); - break; - } - case 80: { - bitField0_ |= 0x00000100; - serverTimestamp_ = input.readUInt64(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Envelope_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Envelope_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Envelope parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Envelope(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.Envelope.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0, 0), - /** - * CIPHERTEXT = 1; - */ - CIPHERTEXT(1, 1), - /** - * KEY_EXCHANGE = 2; - */ - KEY_EXCHANGE(2, 2), - /** - * PREKEY_BUNDLE = 3; - */ - PREKEY_BUNDLE(3, 3), - /** - * RECEIPT = 5; - */ - RECEIPT(4, 5), - /** - * UNIDENTIFIED_SENDER = 6; - */ - UNIDENTIFIED_SENDER(5, 6), - /** - * CLOSED_GROUP_CIPHERTEXT = 7; - * - *
-       * Loki
-       * 
- */ - CLOSED_GROUP_CIPHERTEXT(6, 7), - /** - * FALLBACK_MESSAGE = 101; - * - *
-       * Loki - Encrypted using the fallback session cipher. Contains a pre key bundle if it's a session request.
-       * 
- */ - FALLBACK_MESSAGE(7, 101), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * CIPHERTEXT = 1; - */ - public static final int CIPHERTEXT_VALUE = 1; - /** - * KEY_EXCHANGE = 2; - */ - public static final int KEY_EXCHANGE_VALUE = 2; - /** - * PREKEY_BUNDLE = 3; - */ - public static final int PREKEY_BUNDLE_VALUE = 3; - /** - * RECEIPT = 5; - */ - public static final int RECEIPT_VALUE = 5; - /** - * UNIDENTIFIED_SENDER = 6; - */ - public static final int UNIDENTIFIED_SENDER_VALUE = 6; - /** - * CLOSED_GROUP_CIPHERTEXT = 7; - * - *
-       * Loki
-       * 
- */ - public static final int CLOSED_GROUP_CIPHERTEXT_VALUE = 7; - /** - * FALLBACK_MESSAGE = 101; - * - *
-       * Loki - Encrypted using the fallback session cipher. Contains a pre key bundle if it's a session request.
-       * 
- */ - public static final int FALLBACK_MESSAGE_VALUE = 101; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return CIPHERTEXT; - case 2: return KEY_EXCHANGE; - case 3: return PREKEY_BUNDLE; - case 5: return RECEIPT; - case 6: return UNIDENTIFIED_SENDER; - case 7: return CLOSED_GROUP_CIPHERTEXT; - case 101: return FALLBACK_MESSAGE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.Envelope.Type) - } - - private int bitField0_; - // optional .signalservice.Envelope.Type type = 1; - public static final int TYPE_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type type_; - /** - * optional .signalservice.Envelope.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.Envelope.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type getType() { - return type_; - } - - // optional string source = 2; - public static final int SOURCE_FIELD_NUMBER = 2; - private java.lang.Object source_; - /** - * optional string source = 2; - */ - public boolean hasSource() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string source = 2; - */ - public java.lang.String getSource() { - java.lang.Object ref = source_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - source_ = s; - } - return s; - } - } - /** - * optional string source = 2; - */ - public com.google.protobuf.ByteString - getSourceBytes() { - java.lang.Object ref = source_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - source_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 sourceDevice = 7; - public static final int SOURCEDEVICE_FIELD_NUMBER = 7; - private int sourceDevice_; - /** - * optional uint32 sourceDevice = 7; - */ - public boolean hasSourceDevice() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 sourceDevice = 7; - */ - public int getSourceDevice() { - return sourceDevice_; - } - - // optional string relay = 3; - public static final int RELAY_FIELD_NUMBER = 3; - private java.lang.Object relay_; - /** - * optional string relay = 3; - */ - public boolean hasRelay() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string relay = 3; - */ - public java.lang.String getRelay() { - java.lang.Object ref = relay_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - relay_ = s; - } - return s; - } - } - /** - * optional string relay = 3; - */ - public com.google.protobuf.ByteString - getRelayBytes() { - java.lang.Object ref = relay_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - relay_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint64 timestamp = 5; - public static final int TIMESTAMP_FIELD_NUMBER = 5; - private long timestamp_; - /** - * optional uint64 timestamp = 5; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint64 timestamp = 5; - */ - public long getTimestamp() { - return timestamp_; - } - - // optional bytes legacyMessage = 6; - public static final int LEGACYMESSAGE_FIELD_NUMBER = 6; - private com.google.protobuf.ByteString legacyMessage_; - /** - * optional bytes legacyMessage = 6; - * - *
-     * Contains an encrypted DataMessage
-     * 
- */ - public boolean hasLegacyMessage() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes legacyMessage = 6; - * - *
-     * Contains an encrypted DataMessage
-     * 
- */ - public com.google.protobuf.ByteString getLegacyMessage() { - return legacyMessage_; - } - - // optional bytes content = 8; - public static final int CONTENT_FIELD_NUMBER = 8; - private com.google.protobuf.ByteString content_; - /** - * optional bytes content = 8; - * - *
-     * Contains an encrypted Content
-     * 
- */ - public boolean hasContent() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes content = 8; - * - *
-     * Contains an encrypted Content
-     * 
- */ - public com.google.protobuf.ByteString getContent() { - return content_; - } - - // optional string serverGuid = 9; - public static final int SERVERGUID_FIELD_NUMBER = 9; - private java.lang.Object serverGuid_; - /** - * optional string serverGuid = 9; - */ - public boolean hasServerGuid() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional string serverGuid = 9; - */ - public java.lang.String getServerGuid() { - java.lang.Object ref = serverGuid_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - serverGuid_ = s; - } - return s; - } - } - /** - * optional string serverGuid = 9; - */ - public com.google.protobuf.ByteString - getServerGuidBytes() { - java.lang.Object ref = serverGuid_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - serverGuid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint64 serverTimestamp = 10; - public static final int SERVERTIMESTAMP_FIELD_NUMBER = 10; - private long serverTimestamp_; - /** - * optional uint64 serverTimestamp = 10; - */ - public boolean hasServerTimestamp() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional uint64 serverTimestamp = 10; - */ - public long getServerTimestamp() { - return serverTimestamp_; - } - - private void initFields() { - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type.UNKNOWN; - source_ = ""; - sourceDevice_ = 0; - relay_ = ""; - timestamp_ = 0L; - legacyMessage_ = com.google.protobuf.ByteString.EMPTY; - content_ = com.google.protobuf.ByteString.EMPTY; - serverGuid_ = ""; - serverTimestamp_ = 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.writeEnum(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getSourceBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(3, getRelayBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeUInt64(5, timestamp_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, legacyMessage_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(7, sourceDevice_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBytes(8, content_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeBytes(9, getServerGuidBytes()); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - output.writeUInt64(10, serverTimestamp_); - } - 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 - .computeEnumSize(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getSourceBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getRelayBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, timestamp_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, legacyMessage_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(7, sourceDevice_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(8, content_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(9, getServerGuidBytes()); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(10, serverTimestamp_); - } - 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.signalservice.internal.push.SignalServiceProtos.Envelope parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope 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.signalservice.internal.push.SignalServiceProtos.Envelope parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope 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.signalservice.internal.push.SignalServiceProtos.Envelope 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 signalservice.Envelope} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.EnvelopeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Envelope_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Envelope_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.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(); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type.UNKNOWN; - bitField0_ = (bitField0_ & ~0x00000001); - source_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - sourceDevice_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - relay_ = ""; - bitField0_ = (bitField0_ & ~0x00000008); - timestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000010); - legacyMessage_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - content_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000040); - serverGuid_ = ""; - bitField0_ = (bitField0_ & ~0x00000080); - serverTimestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000100); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Envelope_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.type_ = type_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.source_ = source_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.sourceDevice_ = sourceDevice_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.relay_ = relay_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.timestamp_ = timestamp_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.legacyMessage_ = legacyMessage_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - result.content_ = content_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000080; - } - result.serverGuid_ = serverGuid_; - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000100; - } - result.serverTimestamp_ = serverTimestamp_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.getDefaultInstance()) return this; - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasSource()) { - bitField0_ |= 0x00000002; - source_ = other.source_; - onChanged(); - } - if (other.hasSourceDevice()) { - setSourceDevice(other.getSourceDevice()); - } - if (other.hasRelay()) { - bitField0_ |= 0x00000008; - relay_ = other.relay_; - onChanged(); - } - if (other.hasTimestamp()) { - setTimestamp(other.getTimestamp()); - } - if (other.hasLegacyMessage()) { - setLegacyMessage(other.getLegacyMessage()); - } - if (other.hasContent()) { - setContent(other.getContent()); - } - if (other.hasServerGuid()) { - bitField0_ |= 0x00000080; - serverGuid_ = other.serverGuid_; - onChanged(); - } - if (other.hasServerTimestamp()) { - setServerTimestamp(other.getServerTimestamp()); - } - 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.signalservice.internal.push.SignalServiceProtos.Envelope parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.Envelope.Type type = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type.UNKNOWN; - /** - * optional .signalservice.Envelope.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.Envelope.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type getType() { - return type_; - } - /** - * optional .signalservice.Envelope.Type type = 1; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.Envelope.Type type = 1; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope.Type.UNKNOWN; - onChanged(); - return this; - } - - // optional string source = 2; - private java.lang.Object source_ = ""; - /** - * optional string source = 2; - */ - public boolean hasSource() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string source = 2; - */ - public java.lang.String getSource() { - java.lang.Object ref = source_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - source_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string source = 2; - */ - public com.google.protobuf.ByteString - getSourceBytes() { - java.lang.Object ref = source_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - source_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string source = 2; - */ - public Builder setSource( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - source_ = value; - onChanged(); - return this; - } - /** - * optional string source = 2; - */ - public Builder clearSource() { - bitField0_ = (bitField0_ & ~0x00000002); - source_ = getDefaultInstance().getSource(); - onChanged(); - return this; - } - /** - * optional string source = 2; - */ - public Builder setSourceBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - source_ = value; - onChanged(); - return this; - } - - // optional uint32 sourceDevice = 7; - private int sourceDevice_ ; - /** - * optional uint32 sourceDevice = 7; - */ - public boolean hasSourceDevice() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 sourceDevice = 7; - */ - public int getSourceDevice() { - return sourceDevice_; - } - /** - * optional uint32 sourceDevice = 7; - */ - public Builder setSourceDevice(int value) { - bitField0_ |= 0x00000004; - sourceDevice_ = value; - onChanged(); - return this; - } - /** - * optional uint32 sourceDevice = 7; - */ - public Builder clearSourceDevice() { - bitField0_ = (bitField0_ & ~0x00000004); - sourceDevice_ = 0; - onChanged(); - return this; - } - - // optional string relay = 3; - private java.lang.Object relay_ = ""; - /** - * optional string relay = 3; - */ - public boolean hasRelay() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string relay = 3; - */ - public java.lang.String getRelay() { - java.lang.Object ref = relay_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - relay_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string relay = 3; - */ - public com.google.protobuf.ByteString - getRelayBytes() { - java.lang.Object ref = relay_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - relay_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string relay = 3; - */ - public Builder setRelay( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - relay_ = value; - onChanged(); - return this; - } - /** - * optional string relay = 3; - */ - public Builder clearRelay() { - bitField0_ = (bitField0_ & ~0x00000008); - relay_ = getDefaultInstance().getRelay(); - onChanged(); - return this; - } - /** - * optional string relay = 3; - */ - public Builder setRelayBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - relay_ = value; - onChanged(); - return this; - } - - // optional uint64 timestamp = 5; - private long timestamp_ ; - /** - * optional uint64 timestamp = 5; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint64 timestamp = 5; - */ - public long getTimestamp() { - return timestamp_; - } - /** - * optional uint64 timestamp = 5; - */ - public Builder setTimestamp(long value) { - bitField0_ |= 0x00000010; - timestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 timestamp = 5; - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000010); - timestamp_ = 0L; - onChanged(); - return this; - } - - // optional bytes legacyMessage = 6; - private com.google.protobuf.ByteString legacyMessage_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes legacyMessage = 6; - * - *
-       * Contains an encrypted DataMessage
-       * 
- */ - public boolean hasLegacyMessage() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes legacyMessage = 6; - * - *
-       * Contains an encrypted DataMessage
-       * 
- */ - public com.google.protobuf.ByteString getLegacyMessage() { - return legacyMessage_; - } - /** - * optional bytes legacyMessage = 6; - * - *
-       * Contains an encrypted DataMessage
-       * 
- */ - public Builder setLegacyMessage(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - legacyMessage_ = value; - onChanged(); - return this; - } - /** - * optional bytes legacyMessage = 6; - * - *
-       * Contains an encrypted DataMessage
-       * 
- */ - public Builder clearLegacyMessage() { - bitField0_ = (bitField0_ & ~0x00000020); - legacyMessage_ = getDefaultInstance().getLegacyMessage(); - onChanged(); - return this; - } - - // optional bytes content = 8; - private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes content = 8; - * - *
-       * Contains an encrypted Content
-       * 
- */ - public boolean hasContent() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes content = 8; - * - *
-       * Contains an encrypted Content
-       * 
- */ - public com.google.protobuf.ByteString getContent() { - return content_; - } - /** - * optional bytes content = 8; - * - *
-       * Contains an encrypted Content
-       * 
- */ - public Builder setContent(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - content_ = value; - onChanged(); - return this; - } - /** - * optional bytes content = 8; - * - *
-       * Contains an encrypted Content
-       * 
- */ - public Builder clearContent() { - bitField0_ = (bitField0_ & ~0x00000040); - content_ = getDefaultInstance().getContent(); - onChanged(); - return this; - } - - // optional string serverGuid = 9; - private java.lang.Object serverGuid_ = ""; - /** - * optional string serverGuid = 9; - */ - public boolean hasServerGuid() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional string serverGuid = 9; - */ - public java.lang.String getServerGuid() { - java.lang.Object ref = serverGuid_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - serverGuid_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string serverGuid = 9; - */ - public com.google.protobuf.ByteString - getServerGuidBytes() { - java.lang.Object ref = serverGuid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - serverGuid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string serverGuid = 9; - */ - public Builder setServerGuid( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000080; - serverGuid_ = value; - onChanged(); - return this; - } - /** - * optional string serverGuid = 9; - */ - public Builder clearServerGuid() { - bitField0_ = (bitField0_ & ~0x00000080); - serverGuid_ = getDefaultInstance().getServerGuid(); - onChanged(); - return this; - } - /** - * optional string serverGuid = 9; - */ - public Builder setServerGuidBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000080; - serverGuid_ = value; - onChanged(); - return this; - } - - // optional uint64 serverTimestamp = 10; - private long serverTimestamp_ ; - /** - * optional uint64 serverTimestamp = 10; - */ - public boolean hasServerTimestamp() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional uint64 serverTimestamp = 10; - */ - public long getServerTimestamp() { - return serverTimestamp_; - } - /** - * optional uint64 serverTimestamp = 10; - */ - public Builder setServerTimestamp(long value) { - bitField0_ |= 0x00000100; - serverTimestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 serverTimestamp = 10; - */ - public Builder clearServerTimestamp() { - bitField0_ = (bitField0_ & ~0x00000100); - serverTimestamp_ = 0L; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.Envelope) - } - - static { - defaultInstance = new Envelope(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.Envelope) - } - - public interface ContentOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.DataMessage dataMessage = 1; - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - boolean hasDataMessage(); - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getDataMessage(); - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder getDataMessageOrBuilder(); - - // optional .signalservice.SyncMessage syncMessage = 2; - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - boolean hasSyncMessage(); - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage getSyncMessage(); - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder getSyncMessageOrBuilder(); - - // optional .signalservice.CallMessage callMessage = 3; - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - boolean hasCallMessage(); - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage getCallMessage(); - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder getCallMessageOrBuilder(); - - // optional .signalservice.NullMessage nullMessage = 4; - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - boolean hasNullMessage(); - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage getNullMessage(); - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder getNullMessageOrBuilder(); - - // optional .signalservice.ReceiptMessage receiptMessage = 5; - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - boolean hasReceiptMessage(); - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage getReceiptMessage(); - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder getReceiptMessageOrBuilder(); - - // optional .signalservice.TypingMessage typingMessage = 6; - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - boolean hasTypingMessage(); - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage getTypingMessage(); - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder getTypingMessageOrBuilder(); - - // optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-     * Loki
-     * 
- */ - boolean hasPreKeyBundleMessage(); - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-     * Loki
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage getPreKeyBundleMessage(); - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-     * Loki
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder getPreKeyBundleMessageOrBuilder(); - - // optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-     * Loki
-     * 
- */ - boolean hasDeviceLinkMessage(); - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-     * Loki
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage getDeviceLinkMessage(); - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-     * Loki
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder getDeviceLinkMessageOrBuilder(); - } - /** - * Protobuf type {@code signalservice.Content} - */ - public static final class Content extends - com.google.protobuf.GeneratedMessage - implements ContentOrBuilder { - // Use Content.newBuilder() to construct. - private Content(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Content(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Content defaultInstance; - public static Content getDefaultInstance() { - return defaultInstance; - } - - public Content getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Content( - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = dataMessage_.toBuilder(); - } - dataMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(dataMessage_); - dataMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 18: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = syncMessage_.toBuilder(); - } - syncMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(syncMessage_); - syncMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = callMessage_.toBuilder(); - } - callMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(callMessage_); - callMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 34: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - subBuilder = nullMessage_.toBuilder(); - } - nullMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(nullMessage_); - nullMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000008; - break; - } - case 42: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000010) == 0x00000010)) { - subBuilder = receiptMessage_.toBuilder(); - } - receiptMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(receiptMessage_); - receiptMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000010; - break; - } - case 50: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000020) == 0x00000020)) { - subBuilder = typingMessage_.toBuilder(); - } - typingMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(typingMessage_); - typingMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000020; - break; - } - case 810: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000040) == 0x00000040)) { - subBuilder = preKeyBundleMessage_.toBuilder(); - } - preKeyBundleMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(preKeyBundleMessage_); - preKeyBundleMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000040; - break; - } - case 826: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000080) == 0x00000080)) { - subBuilder = deviceLinkMessage_.toBuilder(); - } - deviceLinkMessage_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceLinkMessage_); - deviceLinkMessage_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000080; - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Content_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Content_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Content parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Content(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional .signalservice.DataMessage dataMessage = 1; - public static final int DATAMESSAGE_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage dataMessage_; - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public boolean hasDataMessage() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getDataMessage() { - return dataMessage_; - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder getDataMessageOrBuilder() { - return dataMessage_; - } - - // optional .signalservice.SyncMessage syncMessage = 2; - public static final int SYNCMESSAGE_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage syncMessage_; - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public boolean hasSyncMessage() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage getSyncMessage() { - return syncMessage_; - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder getSyncMessageOrBuilder() { - return syncMessage_; - } - - // optional .signalservice.CallMessage callMessage = 3; - public static final int CALLMESSAGE_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage callMessage_; - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public boolean hasCallMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage getCallMessage() { - return callMessage_; - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder getCallMessageOrBuilder() { - return callMessage_; - } - - // optional .signalservice.NullMessage nullMessage = 4; - public static final int NULLMESSAGE_FIELD_NUMBER = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage nullMessage_; - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public boolean hasNullMessage() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage getNullMessage() { - return nullMessage_; - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder getNullMessageOrBuilder() { - return nullMessage_; - } - - // optional .signalservice.ReceiptMessage receiptMessage = 5; - public static final int RECEIPTMESSAGE_FIELD_NUMBER = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage receiptMessage_; - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public boolean hasReceiptMessage() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage getReceiptMessage() { - return receiptMessage_; - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder getReceiptMessageOrBuilder() { - return receiptMessage_; - } - - // optional .signalservice.TypingMessage typingMessage = 6; - public static final int TYPINGMESSAGE_FIELD_NUMBER = 6; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage typingMessage_; - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public boolean hasTypingMessage() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage getTypingMessage() { - return typingMessage_; - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder getTypingMessageOrBuilder() { - return typingMessage_; - } - - // optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - public static final int PREKEYBUNDLEMESSAGE_FIELD_NUMBER = 101; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage preKeyBundleMessage_; - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-     * Loki
-     * 
- */ - public boolean hasPreKeyBundleMessage() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-     * Loki
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage getPreKeyBundleMessage() { - return preKeyBundleMessage_; - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-     * Loki
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder getPreKeyBundleMessageOrBuilder() { - return preKeyBundleMessage_; - } - - // optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - public static final int DEVICELINKMESSAGE_FIELD_NUMBER = 103; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage deviceLinkMessage_; - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-     * Loki
-     * 
- */ - public boolean hasDeviceLinkMessage() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-     * Loki
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage getDeviceLinkMessage() { - return deviceLinkMessage_; - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-     * Loki
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder getDeviceLinkMessageOrBuilder() { - return deviceLinkMessage_; - } - - private void initFields() { - dataMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - syncMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance(); - callMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance(); - nullMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance(); - receiptMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance(); - typingMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance(); - preKeyBundleMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance(); - deviceLinkMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance(); - } - 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, dataMessage_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(2, syncMessage_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, callMessage_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeMessage(4, nullMessage_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeMessage(5, receiptMessage_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeMessage(6, typingMessage_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeMessage(101, preKeyBundleMessage_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeMessage(103, deviceLinkMessage_); - } - 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, dataMessage_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, syncMessage_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, callMessage_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, nullMessage_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, receiptMessage_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, typingMessage_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(101, preKeyBundleMessage_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(103, deviceLinkMessage_); - } - 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.signalservice.internal.push.SignalServiceProtos.Content parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content 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.signalservice.internal.push.SignalServiceProtos.Content parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content 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.signalservice.internal.push.SignalServiceProtos.Content 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 signalservice.Content} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContentOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Content_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Content_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getDataMessageFieldBuilder(); - getSyncMessageFieldBuilder(); - getCallMessageFieldBuilder(); - getNullMessageFieldBuilder(); - getReceiptMessageFieldBuilder(); - getTypingMessageFieldBuilder(); - getPreKeyBundleMessageFieldBuilder(); - getDeviceLinkMessageFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (dataMessageBuilder_ == null) { - dataMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - } else { - dataMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - if (syncMessageBuilder_ == null) { - syncMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance(); - } else { - syncMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - if (callMessageBuilder_ == null) { - callMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance(); - } else { - callMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - if (nullMessageBuilder_ == null) { - nullMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance(); - } else { - nullMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - if (receiptMessageBuilder_ == null) { - receiptMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance(); - } else { - receiptMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - if (typingMessageBuilder_ == null) { - typingMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance(); - } else { - typingMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000020); - if (preKeyBundleMessageBuilder_ == null) { - preKeyBundleMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance(); - } else { - preKeyBundleMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000040); - if (deviceLinkMessageBuilder_ == null) { - deviceLinkMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance(); - } else { - deviceLinkMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Content_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (dataMessageBuilder_ == null) { - result.dataMessage_ = dataMessage_; - } else { - result.dataMessage_ = dataMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - if (syncMessageBuilder_ == null) { - result.syncMessage_ = syncMessage_; - } else { - result.syncMessage_ = syncMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (callMessageBuilder_ == null) { - result.callMessage_ = callMessage_; - } else { - result.callMessage_ = callMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - if (nullMessageBuilder_ == null) { - result.nullMessage_ = nullMessage_; - } else { - result.nullMessage_ = nullMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - if (receiptMessageBuilder_ == null) { - result.receiptMessage_ = receiptMessage_; - } else { - result.receiptMessage_ = receiptMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - if (typingMessageBuilder_ == null) { - result.typingMessage_ = typingMessage_; - } else { - result.typingMessage_ = typingMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - if (preKeyBundleMessageBuilder_ == null) { - result.preKeyBundleMessage_ = preKeyBundleMessage_; - } else { - result.preKeyBundleMessage_ = preKeyBundleMessageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000080; - } - if (deviceLinkMessageBuilder_ == null) { - result.deviceLinkMessage_ = deviceLinkMessage_; - } else { - result.deviceLinkMessage_ = deviceLinkMessageBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content.getDefaultInstance()) return this; - if (other.hasDataMessage()) { - mergeDataMessage(other.getDataMessage()); - } - if (other.hasSyncMessage()) { - mergeSyncMessage(other.getSyncMessage()); - } - if (other.hasCallMessage()) { - mergeCallMessage(other.getCallMessage()); - } - if (other.hasNullMessage()) { - mergeNullMessage(other.getNullMessage()); - } - if (other.hasReceiptMessage()) { - mergeReceiptMessage(other.getReceiptMessage()); - } - if (other.hasTypingMessage()) { - mergeTypingMessage(other.getTypingMessage()); - } - if (other.hasPreKeyBundleMessage()) { - mergePreKeyBundleMessage(other.getPreKeyBundleMessage()); - } - if (other.hasDeviceLinkMessage()) { - mergeDeviceLinkMessage(other.getDeviceLinkMessage()); - } - 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.signalservice.internal.push.SignalServiceProtos.Content parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.Content) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.DataMessage dataMessage = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage dataMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder> dataMessageBuilder_; - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public boolean hasDataMessage() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getDataMessage() { - if (dataMessageBuilder_ == null) { - return dataMessage_; - } else { - return dataMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public Builder setDataMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage value) { - if (dataMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - dataMessage_ = value; - onChanged(); - } else { - dataMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public Builder setDataMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder builderForValue) { - if (dataMessageBuilder_ == null) { - dataMessage_ = builderForValue.build(); - onChanged(); - } else { - dataMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public Builder mergeDataMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage value) { - if (dataMessageBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - dataMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance()) { - dataMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.newBuilder(dataMessage_).mergeFrom(value).buildPartial(); - } else { - dataMessage_ = value; - } - onChanged(); - } else { - dataMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public Builder clearDataMessage() { - if (dataMessageBuilder_ == null) { - dataMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - onChanged(); - } else { - dataMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder getDataMessageBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getDataMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder getDataMessageOrBuilder() { - if (dataMessageBuilder_ != null) { - return dataMessageBuilder_.getMessageOrBuilder(); - } else { - return dataMessage_; - } - } - /** - * optional .signalservice.DataMessage dataMessage = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder> - getDataMessageFieldBuilder() { - if (dataMessageBuilder_ == null) { - dataMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder>( - dataMessage_, - getParentForChildren(), - isClean()); - dataMessage_ = null; - } - return dataMessageBuilder_; - } - - // optional .signalservice.SyncMessage syncMessage = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage syncMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder> syncMessageBuilder_; - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public boolean hasSyncMessage() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage getSyncMessage() { - if (syncMessageBuilder_ == null) { - return syncMessage_; - } else { - return syncMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public Builder setSyncMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage value) { - if (syncMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - syncMessage_ = value; - onChanged(); - } else { - syncMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public Builder setSyncMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder builderForValue) { - if (syncMessageBuilder_ == null) { - syncMessage_ = builderForValue.build(); - onChanged(); - } else { - syncMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public Builder mergeSyncMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage value) { - if (syncMessageBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - syncMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance()) { - syncMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.newBuilder(syncMessage_).mergeFrom(value).buildPartial(); - } else { - syncMessage_ = value; - } - onChanged(); - } else { - syncMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public Builder clearSyncMessage() { - if (syncMessageBuilder_ == null) { - syncMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance(); - onChanged(); - } else { - syncMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder getSyncMessageBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getSyncMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder getSyncMessageOrBuilder() { - if (syncMessageBuilder_ != null) { - return syncMessageBuilder_.getMessageOrBuilder(); - } else { - return syncMessage_; - } - } - /** - * optional .signalservice.SyncMessage syncMessage = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder> - getSyncMessageFieldBuilder() { - if (syncMessageBuilder_ == null) { - syncMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder>( - syncMessage_, - getParentForChildren(), - isClean()); - syncMessage_ = null; - } - return syncMessageBuilder_; - } - - // optional .signalservice.CallMessage callMessage = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage callMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder> callMessageBuilder_; - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public boolean hasCallMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage getCallMessage() { - if (callMessageBuilder_ == null) { - return callMessage_; - } else { - return callMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public Builder setCallMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage value) { - if (callMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - callMessage_ = value; - onChanged(); - } else { - callMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public Builder setCallMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder builderForValue) { - if (callMessageBuilder_ == null) { - callMessage_ = builderForValue.build(); - onChanged(); - } else { - callMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public Builder mergeCallMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage value) { - if (callMessageBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - callMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance()) { - callMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.newBuilder(callMessage_).mergeFrom(value).buildPartial(); - } else { - callMessage_ = value; - } - onChanged(); - } else { - callMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public Builder clearCallMessage() { - if (callMessageBuilder_ == null) { - callMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance(); - onChanged(); - } else { - callMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder getCallMessageBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getCallMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder getCallMessageOrBuilder() { - if (callMessageBuilder_ != null) { - return callMessageBuilder_.getMessageOrBuilder(); - } else { - return callMessage_; - } - } - /** - * optional .signalservice.CallMessage callMessage = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder> - getCallMessageFieldBuilder() { - if (callMessageBuilder_ == null) { - callMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder>( - callMessage_, - getParentForChildren(), - isClean()); - callMessage_ = null; - } - return callMessageBuilder_; - } - - // optional .signalservice.NullMessage nullMessage = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage nullMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder> nullMessageBuilder_; - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public boolean hasNullMessage() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage getNullMessage() { - if (nullMessageBuilder_ == null) { - return nullMessage_; - } else { - return nullMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public Builder setNullMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage value) { - if (nullMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - nullMessage_ = value; - onChanged(); - } else { - nullMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public Builder setNullMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder builderForValue) { - if (nullMessageBuilder_ == null) { - nullMessage_ = builderForValue.build(); - onChanged(); - } else { - nullMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public Builder mergeNullMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage value) { - if (nullMessageBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008) && - nullMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance()) { - nullMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.newBuilder(nullMessage_).mergeFrom(value).buildPartial(); - } else { - nullMessage_ = value; - } - onChanged(); - } else { - nullMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public Builder clearNullMessage() { - if (nullMessageBuilder_ == null) { - nullMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance(); - onChanged(); - } else { - nullMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder getNullMessageBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getNullMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder getNullMessageOrBuilder() { - if (nullMessageBuilder_ != null) { - return nullMessageBuilder_.getMessageOrBuilder(); - } else { - return nullMessage_; - } - } - /** - * optional .signalservice.NullMessage nullMessage = 4; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder> - getNullMessageFieldBuilder() { - if (nullMessageBuilder_ == null) { - nullMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder>( - nullMessage_, - getParentForChildren(), - isClean()); - nullMessage_ = null; - } - return nullMessageBuilder_; - } - - // optional .signalservice.ReceiptMessage receiptMessage = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage receiptMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder> receiptMessageBuilder_; - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public boolean hasReceiptMessage() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage getReceiptMessage() { - if (receiptMessageBuilder_ == null) { - return receiptMessage_; - } else { - return receiptMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public Builder setReceiptMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage value) { - if (receiptMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - receiptMessage_ = value; - onChanged(); - } else { - receiptMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public Builder setReceiptMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder builderForValue) { - if (receiptMessageBuilder_ == null) { - receiptMessage_ = builderForValue.build(); - onChanged(); - } else { - receiptMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public Builder mergeReceiptMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage value) { - if (receiptMessageBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010) && - receiptMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance()) { - receiptMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.newBuilder(receiptMessage_).mergeFrom(value).buildPartial(); - } else { - receiptMessage_ = value; - } - onChanged(); - } else { - receiptMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public Builder clearReceiptMessage() { - if (receiptMessageBuilder_ == null) { - receiptMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance(); - onChanged(); - } else { - receiptMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder getReceiptMessageBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getReceiptMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder getReceiptMessageOrBuilder() { - if (receiptMessageBuilder_ != null) { - return receiptMessageBuilder_.getMessageOrBuilder(); - } else { - return receiptMessage_; - } - } - /** - * optional .signalservice.ReceiptMessage receiptMessage = 5; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder> - getReceiptMessageFieldBuilder() { - if (receiptMessageBuilder_ == null) { - receiptMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder>( - receiptMessage_, - getParentForChildren(), - isClean()); - receiptMessage_ = null; - } - return receiptMessageBuilder_; - } - - // optional .signalservice.TypingMessage typingMessage = 6; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage typingMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder> typingMessageBuilder_; - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public boolean hasTypingMessage() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage getTypingMessage() { - if (typingMessageBuilder_ == null) { - return typingMessage_; - } else { - return typingMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public Builder setTypingMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage value) { - if (typingMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - typingMessage_ = value; - onChanged(); - } else { - typingMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public Builder setTypingMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder builderForValue) { - if (typingMessageBuilder_ == null) { - typingMessage_ = builderForValue.build(); - onChanged(); - } else { - typingMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public Builder mergeTypingMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage value) { - if (typingMessageBuilder_ == null) { - if (((bitField0_ & 0x00000020) == 0x00000020) && - typingMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance()) { - typingMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.newBuilder(typingMessage_).mergeFrom(value).buildPartial(); - } else { - typingMessage_ = value; - } - onChanged(); - } else { - typingMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public Builder clearTypingMessage() { - if (typingMessageBuilder_ == null) { - typingMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance(); - onChanged(); - } else { - typingMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000020); - return this; - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder getTypingMessageBuilder() { - bitField0_ |= 0x00000020; - onChanged(); - return getTypingMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder getTypingMessageOrBuilder() { - if (typingMessageBuilder_ != null) { - return typingMessageBuilder_.getMessageOrBuilder(); - } else { - return typingMessage_; - } - } - /** - * optional .signalservice.TypingMessage typingMessage = 6; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder> - getTypingMessageFieldBuilder() { - if (typingMessageBuilder_ == null) { - typingMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder>( - typingMessage_, - getParentForChildren(), - isClean()); - typingMessage_ = null; - } - return typingMessageBuilder_; - } - - // optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage preKeyBundleMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder> preKeyBundleMessageBuilder_; - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public boolean hasPreKeyBundleMessage() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage getPreKeyBundleMessage() { - if (preKeyBundleMessageBuilder_ == null) { - return preKeyBundleMessage_; - } else { - return preKeyBundleMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public Builder setPreKeyBundleMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage value) { - if (preKeyBundleMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - preKeyBundleMessage_ = value; - onChanged(); - } else { - preKeyBundleMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - return this; - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public Builder setPreKeyBundleMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder builderForValue) { - if (preKeyBundleMessageBuilder_ == null) { - preKeyBundleMessage_ = builderForValue.build(); - onChanged(); - } else { - preKeyBundleMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - return this; - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public Builder mergePreKeyBundleMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage value) { - if (preKeyBundleMessageBuilder_ == null) { - if (((bitField0_ & 0x00000040) == 0x00000040) && - preKeyBundleMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance()) { - preKeyBundleMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.newBuilder(preKeyBundleMessage_).mergeFrom(value).buildPartial(); - } else { - preKeyBundleMessage_ = value; - } - onChanged(); - } else { - preKeyBundleMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - return this; - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public Builder clearPreKeyBundleMessage() { - if (preKeyBundleMessageBuilder_ == null) { - preKeyBundleMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance(); - onChanged(); - } else { - preKeyBundleMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000040); - return this; - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder getPreKeyBundleMessageBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return getPreKeyBundleMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder getPreKeyBundleMessageOrBuilder() { - if (preKeyBundleMessageBuilder_ != null) { - return preKeyBundleMessageBuilder_.getMessageOrBuilder(); - } else { - return preKeyBundleMessage_; - } - } - /** - * optional .signalservice.PreKeyBundleMessage preKeyBundleMessage = 101; - * - *
-       * Loki
-       * 
- */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder> - getPreKeyBundleMessageFieldBuilder() { - if (preKeyBundleMessageBuilder_ == null) { - preKeyBundleMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder>( - preKeyBundleMessage_, - getParentForChildren(), - isClean()); - preKeyBundleMessage_ = null; - } - return preKeyBundleMessageBuilder_; - } - - // optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage deviceLinkMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder> deviceLinkMessageBuilder_; - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public boolean hasDeviceLinkMessage() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage getDeviceLinkMessage() { - if (deviceLinkMessageBuilder_ == null) { - return deviceLinkMessage_; - } else { - return deviceLinkMessageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public Builder setDeviceLinkMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage value) { - if (deviceLinkMessageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - deviceLinkMessage_ = value; - onChanged(); - } else { - deviceLinkMessageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public Builder setDeviceLinkMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder builderForValue) { - if (deviceLinkMessageBuilder_ == null) { - deviceLinkMessage_ = builderForValue.build(); - onChanged(); - } else { - deviceLinkMessageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public Builder mergeDeviceLinkMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage value) { - if (deviceLinkMessageBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080) && - deviceLinkMessage_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance()) { - deviceLinkMessage_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.newBuilder(deviceLinkMessage_).mergeFrom(value).buildPartial(); - } else { - deviceLinkMessage_ = value; - } - onChanged(); - } else { - deviceLinkMessageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public Builder clearDeviceLinkMessage() { - if (deviceLinkMessageBuilder_ == null) { - deviceLinkMessage_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance(); - onChanged(); - } else { - deviceLinkMessageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - return this; - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder getDeviceLinkMessageBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getDeviceLinkMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder getDeviceLinkMessageOrBuilder() { - if (deviceLinkMessageBuilder_ != null) { - return deviceLinkMessageBuilder_.getMessageOrBuilder(); - } else { - return deviceLinkMessage_; - } - } - /** - * optional .signalservice.DeviceLinkMessage deviceLinkMessage = 103; - * - *
-       * Loki
-       * 
- */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder> - getDeviceLinkMessageFieldBuilder() { - if (deviceLinkMessageBuilder_ == null) { - deviceLinkMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder>( - deviceLinkMessage_, - getParentForChildren(), - isClean()); - deviceLinkMessage_ = null; - } - return deviceLinkMessageBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.Content) - } - - static { - defaultInstance = new Content(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.Content) - } - - public interface DeviceLinkMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string primaryPublicKey = 1; - /** - * optional string primaryPublicKey = 1; - */ - boolean hasPrimaryPublicKey(); - /** - * optional string primaryPublicKey = 1; - */ - java.lang.String getPrimaryPublicKey(); - /** - * optional string primaryPublicKey = 1; - */ - com.google.protobuf.ByteString - getPrimaryPublicKeyBytes(); - - // optional string secondaryPublicKey = 2; - /** - * optional string secondaryPublicKey = 2; - */ - boolean hasSecondaryPublicKey(); - /** - * optional string secondaryPublicKey = 2; - */ - java.lang.String getSecondaryPublicKey(); - /** - * optional string secondaryPublicKey = 2; - */ - com.google.protobuf.ByteString - getSecondaryPublicKeyBytes(); - - // optional bytes requestSignature = 3; - /** - * optional bytes requestSignature = 3; - */ - boolean hasRequestSignature(); - /** - * optional bytes requestSignature = 3; - */ - com.google.protobuf.ByteString getRequestSignature(); - - // optional bytes authorizationSignature = 4; - /** - * optional bytes authorizationSignature = 4; - */ - boolean hasAuthorizationSignature(); - /** - * optional bytes authorizationSignature = 4; - */ - com.google.protobuf.ByteString getAuthorizationSignature(); - } - /** - * Protobuf type {@code signalservice.DeviceLinkMessage} - */ - public static final class DeviceLinkMessage extends - com.google.protobuf.GeneratedMessage - implements DeviceLinkMessageOrBuilder { - // Use DeviceLinkMessage.newBuilder() to construct. - private DeviceLinkMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private DeviceLinkMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final DeviceLinkMessage defaultInstance; - public static DeviceLinkMessage getDefaultInstance() { - return defaultInstance; - } - - public DeviceLinkMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private DeviceLinkMessage( - 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; - primaryPublicKey_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - secondaryPublicKey_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - requestSignature_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - authorizationSignature_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DeviceLinkMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DeviceLinkMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public DeviceLinkMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceLinkMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string primaryPublicKey = 1; - public static final int PRIMARYPUBLICKEY_FIELD_NUMBER = 1; - private java.lang.Object primaryPublicKey_; - /** - * optional string primaryPublicKey = 1; - */ - public boolean hasPrimaryPublicKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string primaryPublicKey = 1; - */ - public java.lang.String getPrimaryPublicKey() { - java.lang.Object ref = primaryPublicKey_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - primaryPublicKey_ = s; - } - return s; - } - } - /** - * optional string primaryPublicKey = 1; - */ - public com.google.protobuf.ByteString - getPrimaryPublicKeyBytes() { - java.lang.Object ref = primaryPublicKey_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - primaryPublicKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string secondaryPublicKey = 2; - public static final int SECONDARYPUBLICKEY_FIELD_NUMBER = 2; - private java.lang.Object secondaryPublicKey_; - /** - * optional string secondaryPublicKey = 2; - */ - public boolean hasSecondaryPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string secondaryPublicKey = 2; - */ - public java.lang.String getSecondaryPublicKey() { - java.lang.Object ref = secondaryPublicKey_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - secondaryPublicKey_ = s; - } - return s; - } - } - /** - * optional string secondaryPublicKey = 2; - */ - public com.google.protobuf.ByteString - getSecondaryPublicKeyBytes() { - java.lang.Object ref = secondaryPublicKey_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - secondaryPublicKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bytes requestSignature = 3; - public static final int REQUESTSIGNATURE_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString requestSignature_; - /** - * optional bytes requestSignature = 3; - */ - public boolean hasRequestSignature() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes requestSignature = 3; - */ - public com.google.protobuf.ByteString getRequestSignature() { - return requestSignature_; - } - - // optional bytes authorizationSignature = 4; - public static final int AUTHORIZATIONSIGNATURE_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString authorizationSignature_; - /** - * optional bytes authorizationSignature = 4; - */ - public boolean hasAuthorizationSignature() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes authorizationSignature = 4; - */ - public com.google.protobuf.ByteString getAuthorizationSignature() { - return authorizationSignature_; - } - - private void initFields() { - primaryPublicKey_ = ""; - secondaryPublicKey_ = ""; - requestSignature_ = com.google.protobuf.ByteString.EMPTY; - authorizationSignature_ = 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, getPrimaryPublicKeyBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getSecondaryPublicKeyBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, requestSignature_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, authorizationSignature_); - } - 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, getPrimaryPublicKeyBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getSecondaryPublicKeyBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, requestSignature_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, authorizationSignature_); - } - 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.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage 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.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage 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.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage 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 signalservice.DeviceLinkMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DeviceLinkMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DeviceLinkMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.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(); - primaryPublicKey_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - secondaryPublicKey_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - requestSignature_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - authorizationSignature_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DeviceLinkMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.primaryPublicKey_ = primaryPublicKey_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.secondaryPublicKey_ = secondaryPublicKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.requestSignature_ = requestSignature_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.authorizationSignature_ = authorizationSignature_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage.getDefaultInstance()) return this; - if (other.hasPrimaryPublicKey()) { - bitField0_ |= 0x00000001; - primaryPublicKey_ = other.primaryPublicKey_; - onChanged(); - } - if (other.hasSecondaryPublicKey()) { - bitField0_ |= 0x00000002; - secondaryPublicKey_ = other.secondaryPublicKey_; - onChanged(); - } - if (other.hasRequestSignature()) { - setRequestSignature(other.getRequestSignature()); - } - if (other.hasAuthorizationSignature()) { - setAuthorizationSignature(other.getAuthorizationSignature()); - } - 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.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DeviceLinkMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string primaryPublicKey = 1; - private java.lang.Object primaryPublicKey_ = ""; - /** - * optional string primaryPublicKey = 1; - */ - public boolean hasPrimaryPublicKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string primaryPublicKey = 1; - */ - public java.lang.String getPrimaryPublicKey() { - java.lang.Object ref = primaryPublicKey_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - primaryPublicKey_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string primaryPublicKey = 1; - */ - public com.google.protobuf.ByteString - getPrimaryPublicKeyBytes() { - java.lang.Object ref = primaryPublicKey_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - primaryPublicKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string primaryPublicKey = 1; - */ - public Builder setPrimaryPublicKey( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - primaryPublicKey_ = value; - onChanged(); - return this; - } - /** - * optional string primaryPublicKey = 1; - */ - public Builder clearPrimaryPublicKey() { - bitField0_ = (bitField0_ & ~0x00000001); - primaryPublicKey_ = getDefaultInstance().getPrimaryPublicKey(); - onChanged(); - return this; - } - /** - * optional string primaryPublicKey = 1; - */ - public Builder setPrimaryPublicKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - primaryPublicKey_ = value; - onChanged(); - return this; - } - - // optional string secondaryPublicKey = 2; - private java.lang.Object secondaryPublicKey_ = ""; - /** - * optional string secondaryPublicKey = 2; - */ - public boolean hasSecondaryPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string secondaryPublicKey = 2; - */ - public java.lang.String getSecondaryPublicKey() { - java.lang.Object ref = secondaryPublicKey_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - secondaryPublicKey_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string secondaryPublicKey = 2; - */ - public com.google.protobuf.ByteString - getSecondaryPublicKeyBytes() { - java.lang.Object ref = secondaryPublicKey_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - secondaryPublicKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string secondaryPublicKey = 2; - */ - public Builder setSecondaryPublicKey( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - secondaryPublicKey_ = value; - onChanged(); - return this; - } - /** - * optional string secondaryPublicKey = 2; - */ - public Builder clearSecondaryPublicKey() { - bitField0_ = (bitField0_ & ~0x00000002); - secondaryPublicKey_ = getDefaultInstance().getSecondaryPublicKey(); - onChanged(); - return this; - } - /** - * optional string secondaryPublicKey = 2; - */ - public Builder setSecondaryPublicKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - secondaryPublicKey_ = value; - onChanged(); - return this; - } - - // optional bytes requestSignature = 3; - private com.google.protobuf.ByteString requestSignature_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes requestSignature = 3; - */ - public boolean hasRequestSignature() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes requestSignature = 3; - */ - public com.google.protobuf.ByteString getRequestSignature() { - return requestSignature_; - } - /** - * optional bytes requestSignature = 3; - */ - public Builder setRequestSignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - requestSignature_ = value; - onChanged(); - return this; - } - /** - * optional bytes requestSignature = 3; - */ - public Builder clearRequestSignature() { - bitField0_ = (bitField0_ & ~0x00000004); - requestSignature_ = getDefaultInstance().getRequestSignature(); - onChanged(); - return this; - } - - // optional bytes authorizationSignature = 4; - private com.google.protobuf.ByteString authorizationSignature_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes authorizationSignature = 4; - */ - public boolean hasAuthorizationSignature() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes authorizationSignature = 4; - */ - public com.google.protobuf.ByteString getAuthorizationSignature() { - return authorizationSignature_; - } - /** - * optional bytes authorizationSignature = 4; - */ - public Builder setAuthorizationSignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - authorizationSignature_ = value; - onChanged(); - return this; - } - /** - * optional bytes authorizationSignature = 4; - */ - public Builder clearAuthorizationSignature() { - bitField0_ = (bitField0_ & ~0x00000008); - authorizationSignature_ = getDefaultInstance().getAuthorizationSignature(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DeviceLinkMessage) - } - - static { - defaultInstance = new DeviceLinkMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DeviceLinkMessage) - } - - public interface PreKeyBundleMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes identityKey = 1; - /** - * optional bytes identityKey = 1; - */ - boolean hasIdentityKey(); - /** - * optional bytes identityKey = 1; - */ - com.google.protobuf.ByteString getIdentityKey(); - - // optional uint32 deviceId = 2; - /** - * optional uint32 deviceId = 2; - */ - boolean hasDeviceId(); - /** - * optional uint32 deviceId = 2; - */ - int getDeviceId(); - - // optional uint32 preKeyId = 3; - /** - * optional uint32 preKeyId = 3; - */ - boolean hasPreKeyId(); - /** - * optional uint32 preKeyId = 3; - */ - int getPreKeyId(); - - // optional uint32 signedKeyId = 4; - /** - * optional uint32 signedKeyId = 4; - */ - boolean hasSignedKeyId(); - /** - * optional uint32 signedKeyId = 4; - */ - int getSignedKeyId(); - - // optional bytes preKey = 5; - /** - * optional bytes preKey = 5; - */ - boolean hasPreKey(); - /** - * optional bytes preKey = 5; - */ - com.google.protobuf.ByteString getPreKey(); - - // optional bytes signedKey = 6; - /** - * optional bytes signedKey = 6; - */ - boolean hasSignedKey(); - /** - * optional bytes signedKey = 6; - */ - com.google.protobuf.ByteString getSignedKey(); - - // optional bytes signature = 7; - /** - * optional bytes signature = 7; - */ - boolean hasSignature(); - /** - * optional bytes signature = 7; - */ - com.google.protobuf.ByteString getSignature(); - } - /** - * Protobuf type {@code signalservice.PreKeyBundleMessage} - */ - public static final class PreKeyBundleMessage extends - com.google.protobuf.GeneratedMessage - implements PreKeyBundleMessageOrBuilder { - // Use PreKeyBundleMessage.newBuilder() to construct. - private PreKeyBundleMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private PreKeyBundleMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final PreKeyBundleMessage defaultInstance; - public static PreKeyBundleMessage getDefaultInstance() { - return defaultInstance; - } - - public PreKeyBundleMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private PreKeyBundleMessage( - 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; - identityKey_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - deviceId_ = input.readUInt32(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - preKeyId_ = input.readUInt32(); - break; - } - case 32: { - bitField0_ |= 0x00000008; - signedKeyId_ = input.readUInt32(); - break; - } - case 42: { - bitField0_ |= 0x00000010; - preKey_ = input.readBytes(); - break; - } - case 50: { - bitField0_ |= 0x00000020; - signedKey_ = input.readBytes(); - break; - } - case 58: { - bitField0_ |= 0x00000040; - signature_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_PreKeyBundleMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_PreKeyBundleMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public PreKeyBundleMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new PreKeyBundleMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes identityKey = 1; - public static final int IDENTITYKEY_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString identityKey_; - /** - * optional bytes identityKey = 1; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes identityKey = 1; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - - // optional uint32 deviceId = 2; - public static final int DEVICEID_FIELD_NUMBER = 2; - private int deviceId_; - /** - * optional uint32 deviceId = 2; - */ - public boolean hasDeviceId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 deviceId = 2; - */ - public int getDeviceId() { - return deviceId_; - } - - // optional uint32 preKeyId = 3; - public static final int PREKEYID_FIELD_NUMBER = 3; - private int preKeyId_; - /** - * optional uint32 preKeyId = 3; - */ - public boolean hasPreKeyId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 preKeyId = 3; - */ - public int getPreKeyId() { - return preKeyId_; - } - - // optional uint32 signedKeyId = 4; - public static final int SIGNEDKEYID_FIELD_NUMBER = 4; - private int signedKeyId_; - /** - * optional uint32 signedKeyId = 4; - */ - public boolean hasSignedKeyId() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint32 signedKeyId = 4; - */ - public int getSignedKeyId() { - return signedKeyId_; - } - - // optional bytes preKey = 5; - public static final int PREKEY_FIELD_NUMBER = 5; - private com.google.protobuf.ByteString preKey_; - /** - * optional bytes preKey = 5; - */ - public boolean hasPreKey() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes preKey = 5; - */ - public com.google.protobuf.ByteString getPreKey() { - return preKey_; - } - - // optional bytes signedKey = 6; - public static final int SIGNEDKEY_FIELD_NUMBER = 6; - private com.google.protobuf.ByteString signedKey_; - /** - * optional bytes signedKey = 6; - */ - public boolean hasSignedKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes signedKey = 6; - */ - public com.google.protobuf.ByteString getSignedKey() { - return signedKey_; - } - - // optional bytes signature = 7; - public static final int SIGNATURE_FIELD_NUMBER = 7; - private com.google.protobuf.ByteString signature_; - /** - * optional bytes signature = 7; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes signature = 7; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - - private void initFields() { - identityKey_ = com.google.protobuf.ByteString.EMPTY; - deviceId_ = 0; - preKeyId_ = 0; - signedKeyId_ = 0; - preKey_ = com.google.protobuf.ByteString.EMPTY; - signedKey_ = com.google.protobuf.ByteString.EMPTY; - signature_ = 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, identityKey_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, deviceId_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(3, preKeyId_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeUInt32(4, signedKeyId_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, preKey_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, signedKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBytes(7, signature_); - } - 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, identityKey_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, deviceId_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, preKeyId_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, signedKeyId_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, preKey_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, signedKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(7, signature_); - } - 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.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage 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.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage 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.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage 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 signalservice.PreKeyBundleMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_PreKeyBundleMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_PreKeyBundleMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.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(); - identityKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - deviceId_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - preKeyId_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - signedKeyId_ = 0; - bitField0_ = (bitField0_ & ~0x00000008); - preKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); - signedKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - signature_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_PreKeyBundleMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.identityKey_ = identityKey_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.deviceId_ = deviceId_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.preKeyId_ = preKeyId_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.signedKeyId_ = signedKeyId_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.preKey_ = preKey_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.signedKey_ = signedKey_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - result.signature_ = signature_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage.getDefaultInstance()) return this; - if (other.hasIdentityKey()) { - setIdentityKey(other.getIdentityKey()); - } - if (other.hasDeviceId()) { - setDeviceId(other.getDeviceId()); - } - if (other.hasPreKeyId()) { - setPreKeyId(other.getPreKeyId()); - } - if (other.hasSignedKeyId()) { - setSignedKeyId(other.getSignedKeyId()); - } - if (other.hasPreKey()) { - setPreKey(other.getPreKey()); - } - if (other.hasSignedKey()) { - setSignedKey(other.getSignedKey()); - } - if (other.hasSignature()) { - setSignature(other.getSignature()); - } - 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.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.PreKeyBundleMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes identityKey = 1; - private com.google.protobuf.ByteString identityKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes identityKey = 1; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes identityKey = 1; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - /** - * optional bytes identityKey = 1; - */ - public Builder setIdentityKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - identityKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes identityKey = 1; - */ - public Builder clearIdentityKey() { - bitField0_ = (bitField0_ & ~0x00000001); - identityKey_ = getDefaultInstance().getIdentityKey(); - onChanged(); - return this; - } - - // optional uint32 deviceId = 2; - private int deviceId_ ; - /** - * optional uint32 deviceId = 2; - */ - public boolean hasDeviceId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 deviceId = 2; - */ - public int getDeviceId() { - return deviceId_; - } - /** - * optional uint32 deviceId = 2; - */ - public Builder setDeviceId(int value) { - bitField0_ |= 0x00000002; - deviceId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 deviceId = 2; - */ - public Builder clearDeviceId() { - bitField0_ = (bitField0_ & ~0x00000002); - deviceId_ = 0; - onChanged(); - return this; - } - - // optional uint32 preKeyId = 3; - private int preKeyId_ ; - /** - * optional uint32 preKeyId = 3; - */ - public boolean hasPreKeyId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 preKeyId = 3; - */ - public int getPreKeyId() { - return preKeyId_; - } - /** - * optional uint32 preKeyId = 3; - */ - public Builder setPreKeyId(int value) { - bitField0_ |= 0x00000004; - preKeyId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 preKeyId = 3; - */ - public Builder clearPreKeyId() { - bitField0_ = (bitField0_ & ~0x00000004); - preKeyId_ = 0; - onChanged(); - return this; - } - - // optional uint32 signedKeyId = 4; - private int signedKeyId_ ; - /** - * optional uint32 signedKeyId = 4; - */ - public boolean hasSignedKeyId() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint32 signedKeyId = 4; - */ - public int getSignedKeyId() { - return signedKeyId_; - } - /** - * optional uint32 signedKeyId = 4; - */ - public Builder setSignedKeyId(int value) { - bitField0_ |= 0x00000008; - signedKeyId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 signedKeyId = 4; - */ - public Builder clearSignedKeyId() { - bitField0_ = (bitField0_ & ~0x00000008); - signedKeyId_ = 0; - onChanged(); - return this; - } - - // optional bytes preKey = 5; - private com.google.protobuf.ByteString preKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes preKey = 5; - */ - public boolean hasPreKey() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes preKey = 5; - */ - public com.google.protobuf.ByteString getPreKey() { - return preKey_; - } - /** - * optional bytes preKey = 5; - */ - public Builder setPreKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - preKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes preKey = 5; - */ - public Builder clearPreKey() { - bitField0_ = (bitField0_ & ~0x00000010); - preKey_ = getDefaultInstance().getPreKey(); - onChanged(); - return this; - } - - // optional bytes signedKey = 6; - private com.google.protobuf.ByteString signedKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes signedKey = 6; - */ - public boolean hasSignedKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes signedKey = 6; - */ - public com.google.protobuf.ByteString getSignedKey() { - return signedKey_; - } - /** - * optional bytes signedKey = 6; - */ - public Builder setSignedKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - signedKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes signedKey = 6; - */ - public Builder clearSignedKey() { - bitField0_ = (bitField0_ & ~0x00000020); - signedKey_ = getDefaultInstance().getSignedKey(); - onChanged(); - return this; - } - - // optional bytes signature = 7; - private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes signature = 7; - */ - public boolean hasSignature() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes signature = 7; - */ - public com.google.protobuf.ByteString getSignature() { - return signature_; - } - /** - * optional bytes signature = 7; - */ - public Builder setSignature(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - signature_ = value; - onChanged(); - return this; - } - /** - * optional bytes signature = 7; - */ - public Builder clearSignature() { - bitField0_ = (bitField0_ & ~0x00000040); - signature_ = getDefaultInstance().getSignature(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.PreKeyBundleMessage) - } - - static { - defaultInstance = new PreKeyBundleMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.PreKeyBundleMessage) - } - - public interface CallMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.CallMessage.Offer offer = 1; - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - boolean hasOffer(); - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer getOffer(); - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder getOfferOrBuilder(); - - // optional .signalservice.CallMessage.Answer answer = 2; - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - boolean hasAnswer(); - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer getAnswer(); - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder getAnswerOrBuilder(); - - // repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - java.util.List - getIceUpdateList(); - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate getIceUpdate(int index); - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - int getIceUpdateCount(); - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - java.util.List - getIceUpdateOrBuilderList(); - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder getIceUpdateOrBuilder( - int index); - - // optional .signalservice.CallMessage.Hangup hangup = 4; - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - boolean hasHangup(); - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup getHangup(); - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder getHangupOrBuilder(); - - // optional .signalservice.CallMessage.Busy busy = 5; - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - boolean hasBusy(); - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy getBusy(); - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder getBusyOrBuilder(); - } - /** - * Protobuf type {@code signalservice.CallMessage} - */ - public static final class CallMessage extends - com.google.protobuf.GeneratedMessage - implements CallMessageOrBuilder { - // Use CallMessage.newBuilder() to construct. - private CallMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private CallMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final CallMessage defaultInstance; - public static CallMessage getDefaultInstance() { - return defaultInstance; - } - - public CallMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private CallMessage( - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = offer_.toBuilder(); - } - offer_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(offer_); - offer_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 18: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = answer_.toBuilder(); - } - answer_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(answer_); - answer_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { - iceUpdate_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; - } - iceUpdate_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.PARSER, extensionRegistry)); - break; - } - case 34: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = hangup_.toBuilder(); - } - hangup_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(hangup_); - hangup_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 42: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - subBuilder = busy_.toBuilder(); - } - busy_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(busy_); - busy_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000008; - 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_ & 0x00000004) == 0x00000004)) { - iceUpdate_ = java.util.Collections.unmodifiableList(iceUpdate_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public CallMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new CallMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface OfferOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - - // optional string description = 2; - /** - * optional string description = 2; - */ - boolean hasDescription(); - /** - * optional string description = 2; - */ - java.lang.String getDescription(); - /** - * optional string description = 2; - */ - com.google.protobuf.ByteString - getDescriptionBytes(); - } - /** - * Protobuf type {@code signalservice.CallMessage.Offer} - */ - public static final class Offer extends - com.google.protobuf.GeneratedMessage - implements OfferOrBuilder { - // Use Offer.newBuilder() to construct. - private Offer(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Offer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Offer defaultInstance; - public static Offer getDefaultInstance() { - return defaultInstance; - } - - public Offer getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Offer( - 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.readUInt64(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - description_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Offer_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Offer_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Offer parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Offer(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - // optional string description = 2; - public static final int DESCRIPTION_FIELD_NUMBER = 2; - private java.lang.Object description_; - /** - * optional string description = 2; - */ - public boolean hasDescription() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string description = 2; - */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - description_ = s; - } - return s; - } - } - /** - * optional string description = 2; - */ - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - id_ = 0L; - description_ = ""; - } - 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.writeUInt64(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getDescriptionBytes()); - } - 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 - .computeUInt64Size(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getDescriptionBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer 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 signalservice.CallMessage.Offer} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Offer_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Offer_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - description_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Offer_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer(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.description_ = description_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasDescription()) { - bitField0_ |= 0x00000002; - description_ = other.description_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // optional string description = 2; - private java.lang.Object description_ = ""; - /** - * optional string description = 2; - */ - public boolean hasDescription() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string description = 2; - */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - description_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string description = 2; - */ - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string description = 2; - */ - public Builder setDescription( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - description_ = value; - onChanged(); - return this; - } - /** - * optional string description = 2; - */ - public Builder clearDescription() { - bitField0_ = (bitField0_ & ~0x00000002); - description_ = getDefaultInstance().getDescription(); - onChanged(); - return this; - } - /** - * optional string description = 2; - */ - public Builder setDescriptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - description_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.CallMessage.Offer) - } - - static { - defaultInstance = new Offer(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.CallMessage.Offer) - } - - public interface AnswerOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - - // optional string description = 2; - /** - * optional string description = 2; - */ - boolean hasDescription(); - /** - * optional string description = 2; - */ - java.lang.String getDescription(); - /** - * optional string description = 2; - */ - com.google.protobuf.ByteString - getDescriptionBytes(); - } - /** - * Protobuf type {@code signalservice.CallMessage.Answer} - */ - public static final class Answer extends - com.google.protobuf.GeneratedMessage - implements AnswerOrBuilder { - // Use Answer.newBuilder() to construct. - private Answer(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Answer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Answer defaultInstance; - public static Answer getDefaultInstance() { - return defaultInstance; - } - - public Answer getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Answer( - 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.readUInt64(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - description_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Answer_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Answer_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Answer parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Answer(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - // optional string description = 2; - public static final int DESCRIPTION_FIELD_NUMBER = 2; - private java.lang.Object description_; - /** - * optional string description = 2; - */ - public boolean hasDescription() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string description = 2; - */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - description_ = s; - } - return s; - } - } - /** - * optional string description = 2; - */ - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - id_ = 0L; - description_ = ""; - } - 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.writeUInt64(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getDescriptionBytes()); - } - 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 - .computeUInt64Size(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getDescriptionBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer 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 signalservice.CallMessage.Answer} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Answer_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Answer_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - description_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Answer_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer(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.description_ = description_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasDescription()) { - bitField0_ |= 0x00000002; - description_ = other.description_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // optional string description = 2; - private java.lang.Object description_ = ""; - /** - * optional string description = 2; - */ - public boolean hasDescription() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string description = 2; - */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - description_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string description = 2; - */ - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string description = 2; - */ - public Builder setDescription( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - description_ = value; - onChanged(); - return this; - } - /** - * optional string description = 2; - */ - public Builder clearDescription() { - bitField0_ = (bitField0_ & ~0x00000002); - description_ = getDefaultInstance().getDescription(); - onChanged(); - return this; - } - /** - * optional string description = 2; - */ - public Builder setDescriptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - description_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.CallMessage.Answer) - } - - static { - defaultInstance = new Answer(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.CallMessage.Answer) - } - - public interface IceUpdateOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - - // optional string sdpMid = 2; - /** - * optional string sdpMid = 2; - */ - boolean hasSdpMid(); - /** - * optional string sdpMid = 2; - */ - java.lang.String getSdpMid(); - /** - * optional string sdpMid = 2; - */ - com.google.protobuf.ByteString - getSdpMidBytes(); - - // optional uint32 sdpMLineIndex = 3; - /** - * optional uint32 sdpMLineIndex = 3; - */ - boolean hasSdpMLineIndex(); - /** - * optional uint32 sdpMLineIndex = 3; - */ - int getSdpMLineIndex(); - - // optional string sdp = 4; - /** - * optional string sdp = 4; - */ - boolean hasSdp(); - /** - * optional string sdp = 4; - */ - java.lang.String getSdp(); - /** - * optional string sdp = 4; - */ - com.google.protobuf.ByteString - getSdpBytes(); - } - /** - * Protobuf type {@code signalservice.CallMessage.IceUpdate} - */ - public static final class IceUpdate extends - com.google.protobuf.GeneratedMessage - implements IceUpdateOrBuilder { - // Use IceUpdate.newBuilder() to construct. - private IceUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private IceUpdate(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final IceUpdate defaultInstance; - public static IceUpdate getDefaultInstance() { - return defaultInstance; - } - - public IceUpdate getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private IceUpdate( - 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.readUInt64(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - sdpMid_ = input.readBytes(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - sdpMLineIndex_ = input.readUInt32(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - sdp_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_IceUpdate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_IceUpdate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public IceUpdate parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new IceUpdate(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - // optional string sdpMid = 2; - public static final int SDPMID_FIELD_NUMBER = 2; - private java.lang.Object sdpMid_; - /** - * optional string sdpMid = 2; - */ - public boolean hasSdpMid() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string sdpMid = 2; - */ - public java.lang.String getSdpMid() { - java.lang.Object ref = sdpMid_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - sdpMid_ = s; - } - return s; - } - } - /** - * optional string sdpMid = 2; - */ - public com.google.protobuf.ByteString - getSdpMidBytes() { - java.lang.Object ref = sdpMid_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sdpMid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 sdpMLineIndex = 3; - public static final int SDPMLINEINDEX_FIELD_NUMBER = 3; - private int sdpMLineIndex_; - /** - * optional uint32 sdpMLineIndex = 3; - */ - public boolean hasSdpMLineIndex() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 sdpMLineIndex = 3; - */ - public int getSdpMLineIndex() { - return sdpMLineIndex_; - } - - // optional string sdp = 4; - public static final int SDP_FIELD_NUMBER = 4; - private java.lang.Object sdp_; - /** - * optional string sdp = 4; - */ - public boolean hasSdp() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string sdp = 4; - */ - public java.lang.String getSdp() { - java.lang.Object ref = sdp_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - sdp_ = s; - } - return s; - } - } - /** - * optional string sdp = 4; - */ - public com.google.protobuf.ByteString - getSdpBytes() { - java.lang.Object ref = sdp_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sdp_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - id_ = 0L; - sdpMid_ = ""; - sdpMLineIndex_ = 0; - sdp_ = ""; - } - 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.writeUInt64(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getSdpMidBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(3, sdpMLineIndex_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getSdpBytes()); - } - 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 - .computeUInt64Size(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getSdpMidBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, sdpMLineIndex_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, getSdpBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate 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.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate 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.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate 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 signalservice.CallMessage.IceUpdate} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_IceUpdate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_IceUpdate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - sdpMid_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - sdpMLineIndex_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - sdp_ = ""; - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_IceUpdate_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate(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.sdpMid_ = sdpMid_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.sdpMLineIndex_ = sdpMLineIndex_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.sdp_ = sdp_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasSdpMid()) { - bitField0_ |= 0x00000002; - sdpMid_ = other.sdpMid_; - onChanged(); - } - if (other.hasSdpMLineIndex()) { - setSdpMLineIndex(other.getSdpMLineIndex()); - } - if (other.hasSdp()) { - bitField0_ |= 0x00000008; - sdp_ = other.sdp_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // optional string sdpMid = 2; - private java.lang.Object sdpMid_ = ""; - /** - * optional string sdpMid = 2; - */ - public boolean hasSdpMid() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string sdpMid = 2; - */ - public java.lang.String getSdpMid() { - java.lang.Object ref = sdpMid_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - sdpMid_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string sdpMid = 2; - */ - public com.google.protobuf.ByteString - getSdpMidBytes() { - java.lang.Object ref = sdpMid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sdpMid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string sdpMid = 2; - */ - public Builder setSdpMid( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - sdpMid_ = value; - onChanged(); - return this; - } - /** - * optional string sdpMid = 2; - */ - public Builder clearSdpMid() { - bitField0_ = (bitField0_ & ~0x00000002); - sdpMid_ = getDefaultInstance().getSdpMid(); - onChanged(); - return this; - } - /** - * optional string sdpMid = 2; - */ - public Builder setSdpMidBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - sdpMid_ = value; - onChanged(); - return this; - } - - // optional uint32 sdpMLineIndex = 3; - private int sdpMLineIndex_ ; - /** - * optional uint32 sdpMLineIndex = 3; - */ - public boolean hasSdpMLineIndex() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 sdpMLineIndex = 3; - */ - public int getSdpMLineIndex() { - return sdpMLineIndex_; - } - /** - * optional uint32 sdpMLineIndex = 3; - */ - public Builder setSdpMLineIndex(int value) { - bitField0_ |= 0x00000004; - sdpMLineIndex_ = value; - onChanged(); - return this; - } - /** - * optional uint32 sdpMLineIndex = 3; - */ - public Builder clearSdpMLineIndex() { - bitField0_ = (bitField0_ & ~0x00000004); - sdpMLineIndex_ = 0; - onChanged(); - return this; - } - - // optional string sdp = 4; - private java.lang.Object sdp_ = ""; - /** - * optional string sdp = 4; - */ - public boolean hasSdp() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string sdp = 4; - */ - public java.lang.String getSdp() { - java.lang.Object ref = sdp_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - sdp_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string sdp = 4; - */ - public com.google.protobuf.ByteString - getSdpBytes() { - java.lang.Object ref = sdp_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sdp_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string sdp = 4; - */ - public Builder setSdp( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - sdp_ = value; - onChanged(); - return this; - } - /** - * optional string sdp = 4; - */ - public Builder clearSdp() { - bitField0_ = (bitField0_ & ~0x00000008); - sdp_ = getDefaultInstance().getSdp(); - onChanged(); - return this; - } - /** - * optional string sdp = 4; - */ - public Builder setSdpBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - sdp_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.CallMessage.IceUpdate) - } - - static { - defaultInstance = new IceUpdate(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.CallMessage.IceUpdate) - } - - public interface BusyOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - } - /** - * Protobuf type {@code signalservice.CallMessage.Busy} - */ - public static final class Busy extends - com.google.protobuf.GeneratedMessage - implements BusyOrBuilder { - // Use Busy.newBuilder() to construct. - private Busy(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Busy(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Busy defaultInstance; - public static Busy getDefaultInstance() { - return defaultInstance; - } - - public Busy getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Busy( - 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.readUInt64(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Busy_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Busy_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Busy parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Busy(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - private void initFields() { - id_ = 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.writeUInt64(1, id_); - } - 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 - .computeUInt64Size(1, id_); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy 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 signalservice.CallMessage.Busy} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Busy_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Busy_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Busy_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.id_ = id_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.CallMessage.Busy) - } - - static { - defaultInstance = new Busy(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.CallMessage.Busy) - } - - public interface HangupOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - } - /** - * Protobuf type {@code signalservice.CallMessage.Hangup} - */ - public static final class Hangup extends - com.google.protobuf.GeneratedMessage - implements HangupOrBuilder { - // Use Hangup.newBuilder() to construct. - private Hangup(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Hangup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Hangup defaultInstance; - public static Hangup getDefaultInstance() { - return defaultInstance; - } - - public Hangup getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Hangup( - 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.readUInt64(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Hangup_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Hangup_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Hangup parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Hangup(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - private void initFields() { - id_ = 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.writeUInt64(1, id_); - } - 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 - .computeUInt64Size(1, id_); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup 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 signalservice.CallMessage.Hangup} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Hangup_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Hangup_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_Hangup_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.id_ = id_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.CallMessage.Hangup) - } - - static { - defaultInstance = new Hangup(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.CallMessage.Hangup) - } - - private int bitField0_; - // optional .signalservice.CallMessage.Offer offer = 1; - public static final int OFFER_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer offer_; - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public boolean hasOffer() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer getOffer() { - return offer_; - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder getOfferOrBuilder() { - return offer_; - } - - // optional .signalservice.CallMessage.Answer answer = 2; - public static final int ANSWER_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer answer_; - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public boolean hasAnswer() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer getAnswer() { - return answer_; - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder getAnswerOrBuilder() { - return answer_; - } - - // repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - public static final int ICEUPDATE_FIELD_NUMBER = 3; - private java.util.List iceUpdate_; - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public java.util.List getIceUpdateList() { - return iceUpdate_; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public java.util.List - getIceUpdateOrBuilderList() { - return iceUpdate_; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public int getIceUpdateCount() { - return iceUpdate_.size(); - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate getIceUpdate(int index) { - return iceUpdate_.get(index); - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder getIceUpdateOrBuilder( - int index) { - return iceUpdate_.get(index); - } - - // optional .signalservice.CallMessage.Hangup hangup = 4; - public static final int HANGUP_FIELD_NUMBER = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup hangup_; - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public boolean hasHangup() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup getHangup() { - return hangup_; - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder getHangupOrBuilder() { - return hangup_; - } - - // optional .signalservice.CallMessage.Busy busy = 5; - public static final int BUSY_FIELD_NUMBER = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy busy_; - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public boolean hasBusy() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy getBusy() { - return busy_; - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder getBusyOrBuilder() { - return busy_; - } - - private void initFields() { - offer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance(); - answer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance(); - iceUpdate_ = java.util.Collections.emptyList(); - hangup_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance(); - busy_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance(); - } - 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, offer_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(2, answer_); - } - for (int i = 0; i < iceUpdate_.size(); i++) { - output.writeMessage(3, iceUpdate_.get(i)); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(4, hangup_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeMessage(5, busy_); - } - 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, offer_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, answer_); - } - for (int i = 0; i < iceUpdate_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, iceUpdate_.get(i)); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, hangup_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, busy_); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage 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.signalservice.internal.push.SignalServiceProtos.CallMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage 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.signalservice.internal.push.SignalServiceProtos.CallMessage 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 signalservice.CallMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getOfferFieldBuilder(); - getAnswerFieldBuilder(); - getIceUpdateFieldBuilder(); - getHangupFieldBuilder(); - getBusyFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (offerBuilder_ == null) { - offer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance(); - } else { - offerBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - if (answerBuilder_ == null) { - answer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance(); - } else { - answerBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - if (iceUpdateBuilder_ == null) { - iceUpdate_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - } else { - iceUpdateBuilder_.clear(); - } - if (hangupBuilder_ == null) { - hangup_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance(); - } else { - hangupBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - if (busyBuilder_ == null) { - busy_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance(); - } else { - busyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_CallMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (offerBuilder_ == null) { - result.offer_ = offer_; - } else { - result.offer_ = offerBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - if (answerBuilder_ == null) { - result.answer_ = answer_; - } else { - result.answer_ = answerBuilder_.build(); - } - if (iceUpdateBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004)) { - iceUpdate_ = java.util.Collections.unmodifiableList(iceUpdate_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.iceUpdate_ = iceUpdate_; - } else { - result.iceUpdate_ = iceUpdateBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000004; - } - if (hangupBuilder_ == null) { - result.hangup_ = hangup_; - } else { - result.hangup_ = hangupBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000008; - } - if (busyBuilder_ == null) { - result.busy_ = busy_; - } else { - result.busy_ = busyBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.getDefaultInstance()) return this; - if (other.hasOffer()) { - mergeOffer(other.getOffer()); - } - if (other.hasAnswer()) { - mergeAnswer(other.getAnswer()); - } - if (iceUpdateBuilder_ == null) { - if (!other.iceUpdate_.isEmpty()) { - if (iceUpdate_.isEmpty()) { - iceUpdate_ = other.iceUpdate_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureIceUpdateIsMutable(); - iceUpdate_.addAll(other.iceUpdate_); - } - onChanged(); - } - } else { - if (!other.iceUpdate_.isEmpty()) { - if (iceUpdateBuilder_.isEmpty()) { - iceUpdateBuilder_.dispose(); - iceUpdateBuilder_ = null; - iceUpdate_ = other.iceUpdate_; - bitField0_ = (bitField0_ & ~0x00000004); - iceUpdateBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getIceUpdateFieldBuilder() : null; - } else { - iceUpdateBuilder_.addAllMessages(other.iceUpdate_); - } - } - } - if (other.hasHangup()) { - mergeHangup(other.getHangup()); - } - if (other.hasBusy()) { - mergeBusy(other.getBusy()); - } - 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.signalservice.internal.push.SignalServiceProtos.CallMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.CallMessage.Offer offer = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer offer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder> offerBuilder_; - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public boolean hasOffer() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer getOffer() { - if (offerBuilder_ == null) { - return offer_; - } else { - return offerBuilder_.getMessage(); - } - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public Builder setOffer(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer value) { - if (offerBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - offer_ = value; - onChanged(); - } else { - offerBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public Builder setOffer( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder builderForValue) { - if (offerBuilder_ == null) { - offer_ = builderForValue.build(); - onChanged(); - } else { - offerBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public Builder mergeOffer(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer value) { - if (offerBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - offer_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance()) { - offer_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.newBuilder(offer_).mergeFrom(value).buildPartial(); - } else { - offer_ = value; - } - onChanged(); - } else { - offerBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public Builder clearOffer() { - if (offerBuilder_ == null) { - offer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.getDefaultInstance(); - onChanged(); - } else { - offerBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder getOfferBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getOfferFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder getOfferOrBuilder() { - if (offerBuilder_ != null) { - return offerBuilder_.getMessageOrBuilder(); - } else { - return offer_; - } - } - /** - * optional .signalservice.CallMessage.Offer offer = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder> - getOfferFieldBuilder() { - if (offerBuilder_ == null) { - offerBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Offer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.OfferOrBuilder>( - offer_, - getParentForChildren(), - isClean()); - offer_ = null; - } - return offerBuilder_; - } - - // optional .signalservice.CallMessage.Answer answer = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer answer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder> answerBuilder_; - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public boolean hasAnswer() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer getAnswer() { - if (answerBuilder_ == null) { - return answer_; - } else { - return answerBuilder_.getMessage(); - } - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public Builder setAnswer(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer value) { - if (answerBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - answer_ = value; - onChanged(); - } else { - answerBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public Builder setAnswer( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder builderForValue) { - if (answerBuilder_ == null) { - answer_ = builderForValue.build(); - onChanged(); - } else { - answerBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public Builder mergeAnswer(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer value) { - if (answerBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - answer_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance()) { - answer_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.newBuilder(answer_).mergeFrom(value).buildPartial(); - } else { - answer_ = value; - } - onChanged(); - } else { - answerBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public Builder clearAnswer() { - if (answerBuilder_ == null) { - answer_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.getDefaultInstance(); - onChanged(); - } else { - answerBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder getAnswerBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getAnswerFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder getAnswerOrBuilder() { - if (answerBuilder_ != null) { - return answerBuilder_.getMessageOrBuilder(); - } else { - return answer_; - } - } - /** - * optional .signalservice.CallMessage.Answer answer = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder> - getAnswerFieldBuilder() { - if (answerBuilder_ == null) { - answerBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Answer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.AnswerOrBuilder>( - answer_, - getParentForChildren(), - isClean()); - answer_ = null; - } - return answerBuilder_; - } - - // repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - private java.util.List iceUpdate_ = - java.util.Collections.emptyList(); - private void ensureIceUpdateIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { - iceUpdate_ = new java.util.ArrayList(iceUpdate_); - bitField0_ |= 0x00000004; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder> iceUpdateBuilder_; - - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public java.util.List getIceUpdateList() { - if (iceUpdateBuilder_ == null) { - return java.util.Collections.unmodifiableList(iceUpdate_); - } else { - return iceUpdateBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public int getIceUpdateCount() { - if (iceUpdateBuilder_ == null) { - return iceUpdate_.size(); - } else { - return iceUpdateBuilder_.getCount(); - } - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate getIceUpdate(int index) { - if (iceUpdateBuilder_ == null) { - return iceUpdate_.get(index); - } else { - return iceUpdateBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder setIceUpdate( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate value) { - if (iceUpdateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureIceUpdateIsMutable(); - iceUpdate_.set(index, value); - onChanged(); - } else { - iceUpdateBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder setIceUpdate( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder builderForValue) { - if (iceUpdateBuilder_ == null) { - ensureIceUpdateIsMutable(); - iceUpdate_.set(index, builderForValue.build()); - onChanged(); - } else { - iceUpdateBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder addIceUpdate(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate value) { - if (iceUpdateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureIceUpdateIsMutable(); - iceUpdate_.add(value); - onChanged(); - } else { - iceUpdateBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder addIceUpdate( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate value) { - if (iceUpdateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureIceUpdateIsMutable(); - iceUpdate_.add(index, value); - onChanged(); - } else { - iceUpdateBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder addIceUpdate( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder builderForValue) { - if (iceUpdateBuilder_ == null) { - ensureIceUpdateIsMutable(); - iceUpdate_.add(builderForValue.build()); - onChanged(); - } else { - iceUpdateBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder addIceUpdate( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder builderForValue) { - if (iceUpdateBuilder_ == null) { - ensureIceUpdateIsMutable(); - iceUpdate_.add(index, builderForValue.build()); - onChanged(); - } else { - iceUpdateBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder addAllIceUpdate( - java.lang.Iterable values) { - if (iceUpdateBuilder_ == null) { - ensureIceUpdateIsMutable(); - super.addAll(values, iceUpdate_); - onChanged(); - } else { - iceUpdateBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder clearIceUpdate() { - if (iceUpdateBuilder_ == null) { - iceUpdate_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - } else { - iceUpdateBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public Builder removeIceUpdate(int index) { - if (iceUpdateBuilder_ == null) { - ensureIceUpdateIsMutable(); - iceUpdate_.remove(index); - onChanged(); - } else { - iceUpdateBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder getIceUpdateBuilder( - int index) { - return getIceUpdateFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder getIceUpdateOrBuilder( - int index) { - if (iceUpdateBuilder_ == null) { - return iceUpdate_.get(index); } else { - return iceUpdateBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public java.util.List - getIceUpdateOrBuilderList() { - if (iceUpdateBuilder_ != null) { - return iceUpdateBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(iceUpdate_); - } - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder addIceUpdateBuilder() { - return getIceUpdateFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.getDefaultInstance()); - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder addIceUpdateBuilder( - int index) { - return getIceUpdateFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.getDefaultInstance()); - } - /** - * repeated .signalservice.CallMessage.IceUpdate iceUpdate = 3; - */ - public java.util.List - getIceUpdateBuilderList() { - return getIceUpdateFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder> - getIceUpdateFieldBuilder() { - if (iceUpdateBuilder_ == null) { - iceUpdateBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdate.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.IceUpdateOrBuilder>( - iceUpdate_, - ((bitField0_ & 0x00000004) == 0x00000004), - getParentForChildren(), - isClean()); - iceUpdate_ = null; - } - return iceUpdateBuilder_; - } - - // optional .signalservice.CallMessage.Hangup hangup = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup hangup_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder> hangupBuilder_; - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public boolean hasHangup() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup getHangup() { - if (hangupBuilder_ == null) { - return hangup_; - } else { - return hangupBuilder_.getMessage(); - } - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public Builder setHangup(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup value) { - if (hangupBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - hangup_ = value; - onChanged(); - } else { - hangupBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public Builder setHangup( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder builderForValue) { - if (hangupBuilder_ == null) { - hangup_ = builderForValue.build(); - onChanged(); - } else { - hangupBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public Builder mergeHangup(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup value) { - if (hangupBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008) && - hangup_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance()) { - hangup_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.newBuilder(hangup_).mergeFrom(value).buildPartial(); - } else { - hangup_ = value; - } - onChanged(); - } else { - hangupBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public Builder clearHangup() { - if (hangupBuilder_ == null) { - hangup_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.getDefaultInstance(); - onChanged(); - } else { - hangupBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder getHangupBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getHangupFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder getHangupOrBuilder() { - if (hangupBuilder_ != null) { - return hangupBuilder_.getMessageOrBuilder(); - } else { - return hangup_; - } - } - /** - * optional .signalservice.CallMessage.Hangup hangup = 4; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder> - getHangupFieldBuilder() { - if (hangupBuilder_ == null) { - hangupBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Hangup.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.HangupOrBuilder>( - hangup_, - getParentForChildren(), - isClean()); - hangup_ = null; - } - return hangupBuilder_; - } - - // optional .signalservice.CallMessage.Busy busy = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy busy_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder> busyBuilder_; - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public boolean hasBusy() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy getBusy() { - if (busyBuilder_ == null) { - return busy_; - } else { - return busyBuilder_.getMessage(); - } - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public Builder setBusy(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy value) { - if (busyBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - busy_ = value; - onChanged(); - } else { - busyBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public Builder setBusy( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder builderForValue) { - if (busyBuilder_ == null) { - busy_ = builderForValue.build(); - onChanged(); - } else { - busyBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public Builder mergeBusy(org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy value) { - if (busyBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010) && - busy_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance()) { - busy_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.newBuilder(busy_).mergeFrom(value).buildPartial(); - } else { - busy_ = value; - } - onChanged(); - } else { - busyBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public Builder clearBusy() { - if (busyBuilder_ == null) { - busy_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.getDefaultInstance(); - onChanged(); - } else { - busyBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder getBusyBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getBusyFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder getBusyOrBuilder() { - if (busyBuilder_ != null) { - return busyBuilder_.getMessageOrBuilder(); - } else { - return busy_; - } - } - /** - * optional .signalservice.CallMessage.Busy busy = 5; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder> - getBusyFieldBuilder() { - if (busyBuilder_ == null) { - busyBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.Busy.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.CallMessage.BusyOrBuilder>( - busy_, - getParentForChildren(), - isClean()); - busy_ = null; - } - return busyBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.CallMessage) - } - - static { - defaultInstance = new CallMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.CallMessage) - } - - public interface ClosedGroupCiphertextMessageWrapperOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes ciphertext = 1; - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - boolean hasCiphertext(); - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - com.google.protobuf.ByteString getCiphertext(); - - // optional bytes ephemeralPublicKey = 2; - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-     * @required
-     * 
- */ - boolean hasEphemeralPublicKey(); - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-     * @required
-     * 
- */ - com.google.protobuf.ByteString getEphemeralPublicKey(); - } - /** - * Protobuf type {@code signalservice.ClosedGroupCiphertextMessageWrapper} - */ - public static final class ClosedGroupCiphertextMessageWrapper extends - com.google.protobuf.GeneratedMessage - implements ClosedGroupCiphertextMessageWrapperOrBuilder { - // Use ClosedGroupCiphertextMessageWrapper.newBuilder() to construct. - private ClosedGroupCiphertextMessageWrapper(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ClosedGroupCiphertextMessageWrapper(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ClosedGroupCiphertextMessageWrapper defaultInstance; - public static ClosedGroupCiphertextMessageWrapper getDefaultInstance() { - return defaultInstance; - } - - public ClosedGroupCiphertextMessageWrapper getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ClosedGroupCiphertextMessageWrapper( - 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; - ciphertext_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - ephemeralPublicKey_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ClosedGroupCiphertextMessageWrapper parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ClosedGroupCiphertextMessageWrapper(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes ciphertext = 1; - public static final int CIPHERTEXT_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString ciphertext_; - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ciphertext = 1; - * - *
-     * @required
-     * 
- */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - - // optional bytes ephemeralPublicKey = 2; - public static final int EPHEMERALPUBLICKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString ephemeralPublicKey_; - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-     * @required
-     * 
- */ - public boolean hasEphemeralPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-     * @required
-     * 
- */ - public com.google.protobuf.ByteString getEphemeralPublicKey() { - return ephemeralPublicKey_; - } - - private void initFields() { - ciphertext_ = com.google.protobuf.ByteString.EMPTY; - ephemeralPublicKey_ = 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, ciphertext_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, ephemeralPublicKey_); - } - 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, ciphertext_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, ephemeralPublicKey_); - } - 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper 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 signalservice.ClosedGroupCiphertextMessageWrapper} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapperOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.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(); - ciphertext_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - ephemeralPublicKey_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.ciphertext_ = ciphertext_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.ephemeralPublicKey_ = ephemeralPublicKey_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.getDefaultInstance()) return this; - if (other.hasCiphertext()) { - setCiphertext(other.getCiphertext()); - } - if (other.hasEphemeralPublicKey()) { - setEphemeralPublicKey(other.getEphemeralPublicKey()); - } - 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupCiphertextMessageWrapper) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes ciphertext = 1; - private com.google.protobuf.ByteString ciphertext_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public boolean hasCiphertext() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getCiphertext() { - return ciphertext_; - } - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public Builder setCiphertext(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - ciphertext_ = value; - onChanged(); - return this; - } - /** - * optional bytes ciphertext = 1; - * - *
-       * @required
-       * 
- */ - public Builder clearCiphertext() { - bitField0_ = (bitField0_ & ~0x00000001); - ciphertext_ = getDefaultInstance().getCiphertext(); - onChanged(); - return this; - } - - // optional bytes ephemeralPublicKey = 2; - private com.google.protobuf.ByteString ephemeralPublicKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public boolean hasEphemeralPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getEphemeralPublicKey() { - return ephemeralPublicKey_; - } - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public Builder setEphemeralPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - ephemeralPublicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes ephemeralPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public Builder clearEphemeralPublicKey() { - bitField0_ = (bitField0_ & ~0x00000002); - ephemeralPublicKey_ = getDefaultInstance().getEphemeralPublicKey(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ClosedGroupCiphertextMessageWrapper) - } - - static { - defaultInstance = new ClosedGroupCiphertextMessageWrapper(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ClosedGroupCiphertextMessageWrapper) - } - - public interface DataMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string body = 1; - /** - * optional string body = 1; - */ - boolean hasBody(); - /** - * optional string body = 1; - */ - java.lang.String getBody(); - /** - * optional string body = 1; - */ - com.google.protobuf.ByteString - getBodyBytes(); - - // repeated .signalservice.AttachmentPointer attachments = 2; - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - java.util.List - getAttachmentsList(); - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAttachments(int index); - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - int getAttachmentsCount(); - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - java.util.List - getAttachmentsOrBuilderList(); - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAttachmentsOrBuilder( - int index); - - // optional .signalservice.GroupContext group = 3; - /** - * optional .signalservice.GroupContext group = 3; - */ - boolean hasGroup(); - /** - * optional .signalservice.GroupContext group = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext getGroup(); - /** - * optional .signalservice.GroupContext group = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder getGroupOrBuilder(); - - // optional uint32 flags = 4; - /** - * optional uint32 flags = 4; - */ - boolean hasFlags(); - /** - * optional uint32 flags = 4; - */ - int getFlags(); - - // optional uint32 expireTimer = 5; - /** - * optional uint32 expireTimer = 5; - */ - boolean hasExpireTimer(); - /** - * optional uint32 expireTimer = 5; - */ - int getExpireTimer(); - - // optional bytes profileKey = 6; - /** - * optional bytes profileKey = 6; - */ - boolean hasProfileKey(); - /** - * optional bytes profileKey = 6; - */ - com.google.protobuf.ByteString getProfileKey(); - - // optional uint64 timestamp = 7; - /** - * optional uint64 timestamp = 7; - */ - boolean hasTimestamp(); - /** - * optional uint64 timestamp = 7; - */ - long getTimestamp(); - - // optional .signalservice.DataMessage.Quote quote = 8; - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - boolean hasQuote(); - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote getQuote(); - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder getQuoteOrBuilder(); - - // repeated .signalservice.DataMessage.Contact contact = 9; - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - java.util.List - getContactList(); - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact getContact(int index); - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - int getContactCount(); - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - java.util.List - getContactOrBuilderList(); - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder getContactOrBuilder( - int index); - - // repeated .signalservice.DataMessage.Preview preview = 10; - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - java.util.List - getPreviewList(); - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview getPreview(int index); - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - int getPreviewCount(); - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - java.util.List - getPreviewOrBuilderList(); - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder getPreviewOrBuilder( - int index); - - // optional .signalservice.DataMessage.Sticker sticker = 11; - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - boolean hasSticker(); - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker getSticker(); - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder getStickerOrBuilder(); - - // optional .signalservice.LokiUserProfile profile = 101; - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-     * Loki - The profile of the current user
-     * 
- */ - boolean hasProfile(); - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-     * Loki - The profile of the current user
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile getProfile(); - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-     * Loki - The profile of the current user
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder getProfileOrBuilder(); - - // optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-     * Loki
-     * 
- */ - boolean hasClosedGroupUpdate(); - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-     * Loki
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate getClosedGroupUpdate(); - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-     * Loki
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder getClosedGroupUpdateOrBuilder(); - } - /** - * Protobuf type {@code signalservice.DataMessage} - */ - public static final class DataMessage extends - com.google.protobuf.GeneratedMessage - implements DataMessageOrBuilder { - // Use DataMessage.newBuilder() to construct. - private DataMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private DataMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final DataMessage defaultInstance; - public static DataMessage getDefaultInstance() { - return defaultInstance; - } - - public DataMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private DataMessage( - 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; - body_ = input.readBytes(); - break; - } - case 18: { - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - attachments_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - attachments_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry)); - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = group_.toBuilder(); - } - group_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(group_); - group_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 32: { - bitField0_ |= 0x00000004; - flags_ = input.readUInt32(); - break; - } - case 40: { - bitField0_ |= 0x00000008; - expireTimer_ = input.readUInt32(); - break; - } - case 50: { - bitField0_ |= 0x00000010; - profileKey_ = input.readBytes(); - break; - } - case 56: { - bitField0_ |= 0x00000020; - timestamp_ = input.readUInt64(); - break; - } - case 66: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder subBuilder = null; - if (((bitField0_ & 0x00000040) == 0x00000040)) { - subBuilder = quote_.toBuilder(); - } - quote_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(quote_); - quote_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000040; - break; - } - case 74: { - if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) { - contact_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000100; - } - contact_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PARSER, extensionRegistry)); - break; - } - case 82: { - if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) { - preview_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000200; - } - preview_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.PARSER, extensionRegistry)); - break; - } - case 90: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder subBuilder = null; - if (((bitField0_ & 0x00000080) == 0x00000080)) { - subBuilder = sticker_.toBuilder(); - } - sticker_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sticker_); - sticker_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000080; - break; - } - case 810: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder subBuilder = null; - if (((bitField0_ & 0x00000100) == 0x00000100)) { - subBuilder = profile_.toBuilder(); - } - profile_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(profile_); - profile_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000100; - break; - } - case 826: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder subBuilder = null; - if (((bitField0_ & 0x00000200) == 0x00000200)) { - subBuilder = closedGroupUpdate_.toBuilder(); - } - closedGroupUpdate_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(closedGroupUpdate_); - closedGroupUpdate_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000200; - 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)) { - attachments_ = java.util.Collections.unmodifiableList(attachments_); - } - if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) { - contact_ = java.util.Collections.unmodifiableList(contact_); - } - if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) { - preview_ = java.util.Collections.unmodifiableList(preview_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public DataMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new DataMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.DataMessage.Flags} - */ - public enum Flags - implements com.google.protobuf.ProtocolMessageEnum { - /** - * END_SESSION = 1; - */ - END_SESSION(0, 1), - /** - * EXPIRATION_TIMER_UPDATE = 2; - */ - EXPIRATION_TIMER_UPDATE(1, 2), - /** - * PROFILE_KEY_UPDATE = 4; - */ - PROFILE_KEY_UPDATE(2, 4), - /** - * DEVICE_UNLINKING_REQUEST = 128; - */ - DEVICE_UNLINKING_REQUEST(3, 128), - ; - - /** - * END_SESSION = 1; - */ - public static final int END_SESSION_VALUE = 1; - /** - * EXPIRATION_TIMER_UPDATE = 2; - */ - public static final int EXPIRATION_TIMER_UPDATE_VALUE = 2; - /** - * PROFILE_KEY_UPDATE = 4; - */ - public static final int PROFILE_KEY_UPDATE_VALUE = 4; - /** - * DEVICE_UNLINKING_REQUEST = 128; - */ - public static final int DEVICE_UNLINKING_REQUEST_VALUE = 128; - - - public final int getNumber() { return value; } - - public static Flags valueOf(int value) { - switch (value) { - case 1: return END_SESSION; - case 2: return EXPIRATION_TIMER_UPDATE; - case 4: return PROFILE_KEY_UPDATE; - case 128: return DEVICE_UNLINKING_REQUEST; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Flags findValueByNumber(int number) { - return Flags.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDescriptor().getEnumTypes().get(0); - } - - private static final Flags[] VALUES = values(); - - public static Flags valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Flags(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.DataMessage.Flags) - } - - public interface QuoteOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - - // optional string author = 2; - /** - * optional string author = 2; - */ - boolean hasAuthor(); - /** - * optional string author = 2; - */ - java.lang.String getAuthor(); - /** - * optional string author = 2; - */ - com.google.protobuf.ByteString - getAuthorBytes(); - - // optional string text = 3; - /** - * optional string text = 3; - */ - boolean hasText(); - /** - * optional string text = 3; - */ - java.lang.String getText(); - /** - * optional string text = 3; - */ - com.google.protobuf.ByteString - getTextBytes(); - - // repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - java.util.List - getAttachmentsList(); - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment getAttachments(int index); - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - int getAttachmentsCount(); - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - java.util.List - getAttachmentsOrBuilderList(); - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder getAttachmentsOrBuilder( - int index); - } - /** - * Protobuf type {@code signalservice.DataMessage.Quote} - */ - public static final class Quote extends - com.google.protobuf.GeneratedMessage - implements QuoteOrBuilder { - // Use Quote.newBuilder() to construct. - private Quote(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Quote(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Quote defaultInstance; - public static Quote getDefaultInstance() { - return defaultInstance; - } - - public Quote getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Quote( - 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.readUInt64(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - author_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - text_ = input.readBytes(); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - attachments_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000008; - } - attachments_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.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)) { - attachments_ = java.util.Collections.unmodifiableList(attachments_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Quote parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Quote(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface QuotedAttachmentOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string contentType = 1; - /** - * optional string contentType = 1; - */ - boolean hasContentType(); - /** - * optional string contentType = 1; - */ - java.lang.String getContentType(); - /** - * optional string contentType = 1; - */ - com.google.protobuf.ByteString - getContentTypeBytes(); - - // optional string fileName = 2; - /** - * optional string fileName = 2; - */ - boolean hasFileName(); - /** - * optional string fileName = 2; - */ - java.lang.String getFileName(); - /** - * optional string fileName = 2; - */ - com.google.protobuf.ByteString - getFileNameBytes(); - - // optional .signalservice.AttachmentPointer thumbnail = 3; - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - boolean hasThumbnail(); - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getThumbnail(); - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getThumbnailOrBuilder(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Quote.QuotedAttachment} - */ - public static final class QuotedAttachment extends - com.google.protobuf.GeneratedMessage - implements QuotedAttachmentOrBuilder { - // Use QuotedAttachment.newBuilder() to construct. - private QuotedAttachment(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private QuotedAttachment(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final QuotedAttachment defaultInstance; - public static QuotedAttachment getDefaultInstance() { - return defaultInstance; - } - - public QuotedAttachment getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private QuotedAttachment( - 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; - contentType_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - fileName_ = input.readBytes(); - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = thumbnail_.toBuilder(); - } - thumbnail_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(thumbnail_); - thumbnail_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_QuotedAttachment_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_QuotedAttachment_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public QuotedAttachment parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new QuotedAttachment(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string contentType = 1; - public static final int CONTENTTYPE_FIELD_NUMBER = 1; - private java.lang.Object contentType_; - /** - * optional string contentType = 1; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string contentType = 1; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - contentType_ = s; - } - return s; - } - } - /** - * optional string contentType = 1; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string fileName = 2; - public static final int FILENAME_FIELD_NUMBER = 2; - private java.lang.Object fileName_; - /** - * optional string fileName = 2; - */ - public boolean hasFileName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string fileName = 2; - */ - public java.lang.String getFileName() { - java.lang.Object ref = fileName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fileName_ = s; - } - return s; - } - } - /** - * optional string fileName = 2; - */ - public com.google.protobuf.ByteString - getFileNameBytes() { - java.lang.Object ref = fileName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fileName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.AttachmentPointer thumbnail = 3; - public static final int THUMBNAIL_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer thumbnail_; - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public boolean hasThumbnail() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getThumbnail() { - return thumbnail_; - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getThumbnailOrBuilder() { - return thumbnail_; - } - - private void initFields() { - contentType_ = ""; - fileName_ = ""; - thumbnail_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } - 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, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getFileNameBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, thumbnail_); - } - 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, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getFileNameBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, thumbnail_); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment 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 signalservice.DataMessage.Quote.QuotedAttachment} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_QuotedAttachment_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_QuotedAttachment_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getThumbnailFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - contentType_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - fileName_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - if (thumbnailBuilder_ == null) { - thumbnail_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - thumbnailBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_QuotedAttachment_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.contentType_ = contentType_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.fileName_ = fileName_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (thumbnailBuilder_ == null) { - result.thumbnail_ = thumbnail_; - } else { - result.thumbnail_ = thumbnailBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.getDefaultInstance()) return this; - if (other.hasContentType()) { - bitField0_ |= 0x00000001; - contentType_ = other.contentType_; - onChanged(); - } - if (other.hasFileName()) { - bitField0_ |= 0x00000002; - fileName_ = other.fileName_; - onChanged(); - } - if (other.hasThumbnail()) { - mergeThumbnail(other.getThumbnail()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string contentType = 1; - private java.lang.Object contentType_ = ""; - /** - * optional string contentType = 1; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string contentType = 1; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - contentType_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string contentType = 1; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string contentType = 1; - */ - public Builder setContentType( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - contentType_ = value; - onChanged(); - return this; - } - /** - * optional string contentType = 1; - */ - public Builder clearContentType() { - bitField0_ = (bitField0_ & ~0x00000001); - contentType_ = getDefaultInstance().getContentType(); - onChanged(); - return this; - } - /** - * optional string contentType = 1; - */ - public Builder setContentTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - contentType_ = value; - onChanged(); - return this; - } - - // optional string fileName = 2; - private java.lang.Object fileName_ = ""; - /** - * optional string fileName = 2; - */ - public boolean hasFileName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string fileName = 2; - */ - public java.lang.String getFileName() { - java.lang.Object ref = fileName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - fileName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string fileName = 2; - */ - public com.google.protobuf.ByteString - getFileNameBytes() { - java.lang.Object ref = fileName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fileName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string fileName = 2; - */ - public Builder setFileName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - fileName_ = value; - onChanged(); - return this; - } - /** - * optional string fileName = 2; - */ - public Builder clearFileName() { - bitField0_ = (bitField0_ & ~0x00000002); - fileName_ = getDefaultInstance().getFileName(); - onChanged(); - return this; - } - /** - * optional string fileName = 2; - */ - public Builder setFileNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - fileName_ = value; - onChanged(); - return this; - } - - // optional .signalservice.AttachmentPointer thumbnail = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer thumbnail_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> thumbnailBuilder_; - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public boolean hasThumbnail() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getThumbnail() { - if (thumbnailBuilder_ == null) { - return thumbnail_; - } else { - return thumbnailBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public Builder setThumbnail(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (thumbnailBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - thumbnail_ = value; - onChanged(); - } else { - thumbnailBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public Builder setThumbnail( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (thumbnailBuilder_ == null) { - thumbnail_ = builderForValue.build(); - onChanged(); - } else { - thumbnailBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public Builder mergeThumbnail(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (thumbnailBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - thumbnail_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - thumbnail_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(thumbnail_).mergeFrom(value).buildPartial(); - } else { - thumbnail_ = value; - } - onChanged(); - } else { - thumbnailBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public Builder clearThumbnail() { - if (thumbnailBuilder_ == null) { - thumbnail_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - thumbnailBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getThumbnailBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getThumbnailFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getThumbnailOrBuilder() { - if (thumbnailBuilder_ != null) { - return thumbnailBuilder_.getMessageOrBuilder(); - } else { - return thumbnail_; - } - } - /** - * optional .signalservice.AttachmentPointer thumbnail = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getThumbnailFieldBuilder() { - if (thumbnailBuilder_ == null) { - thumbnailBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - thumbnail_, - getParentForChildren(), - isClean()); - thumbnail_ = null; - } - return thumbnailBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Quote.QuotedAttachment) - } - - static { - defaultInstance = new QuotedAttachment(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Quote.QuotedAttachment) - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - // optional string author = 2; - public static final int AUTHOR_FIELD_NUMBER = 2; - private java.lang.Object author_; - /** - * optional string author = 2; - */ - public boolean hasAuthor() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string author = 2; - */ - public java.lang.String getAuthor() { - java.lang.Object ref = author_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - author_ = s; - } - return s; - } - } - /** - * optional string author = 2; - */ - public com.google.protobuf.ByteString - getAuthorBytes() { - java.lang.Object ref = author_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - author_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string text = 3; - public static final int TEXT_FIELD_NUMBER = 3; - private java.lang.Object text_; - /** - * optional string text = 3; - */ - public boolean hasText() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string text = 3; - */ - public java.lang.String getText() { - java.lang.Object ref = text_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - text_ = s; - } - return s; - } - } - /** - * optional string text = 3; - */ - public com.google.protobuf.ByteString - getTextBytes() { - java.lang.Object ref = text_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - text_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - public static final int ATTACHMENTS_FIELD_NUMBER = 4; - private java.util.List attachments_; - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public java.util.List getAttachmentsList() { - return attachments_; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public java.util.List - getAttachmentsOrBuilderList() { - return attachments_; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public int getAttachmentsCount() { - return attachments_.size(); - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment getAttachments(int index) { - return attachments_.get(index); - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder getAttachmentsOrBuilder( - int index) { - return attachments_.get(index); - } - - private void initFields() { - id_ = 0L; - author_ = ""; - text_ = ""; - attachments_ = 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.writeUInt64(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getAuthorBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getTextBytes()); - } - for (int i = 0; i < attachments_.size(); i++) { - output.writeMessage(4, attachments_.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 - .computeUInt64Size(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getAuthorBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getTextBytes()); - } - for (int i = 0; i < attachments_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, attachments_.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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote 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 signalservice.DataMessage.Quote} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getAttachmentsFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - id_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - author_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - text_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - if (attachmentsBuilder_ == null) { - attachments_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - } else { - attachmentsBuilder_.clear(); - } - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Quote_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote(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.author_ = author_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.text_ = text_; - if (attachmentsBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008)) { - attachments_ = java.util.Collections.unmodifiableList(attachments_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.attachments_ = attachments_; - } else { - result.attachments_ = attachmentsBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasAuthor()) { - bitField0_ |= 0x00000002; - author_ = other.author_; - onChanged(); - } - if (other.hasText()) { - bitField0_ |= 0x00000004; - text_ = other.text_; - onChanged(); - } - if (attachmentsBuilder_ == null) { - if (!other.attachments_.isEmpty()) { - if (attachments_.isEmpty()) { - attachments_ = other.attachments_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureAttachmentsIsMutable(); - attachments_.addAll(other.attachments_); - } - onChanged(); - } - } else { - if (!other.attachments_.isEmpty()) { - if (attachmentsBuilder_.isEmpty()) { - attachmentsBuilder_.dispose(); - attachmentsBuilder_ = null; - attachments_ = other.attachments_; - bitField0_ = (bitField0_ & ~0x00000008); - attachmentsBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getAttachmentsFieldBuilder() : null; - } else { - attachmentsBuilder_.addAllMessages(other.attachments_); - } - } - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // optional string author = 2; - private java.lang.Object author_ = ""; - /** - * optional string author = 2; - */ - public boolean hasAuthor() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string author = 2; - */ - public java.lang.String getAuthor() { - java.lang.Object ref = author_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - author_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string author = 2; - */ - public com.google.protobuf.ByteString - getAuthorBytes() { - java.lang.Object ref = author_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - author_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string author = 2; - */ - public Builder setAuthor( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - author_ = value; - onChanged(); - return this; - } - /** - * optional string author = 2; - */ - public Builder clearAuthor() { - bitField0_ = (bitField0_ & ~0x00000002); - author_ = getDefaultInstance().getAuthor(); - onChanged(); - return this; - } - /** - * optional string author = 2; - */ - public Builder setAuthorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - author_ = value; - onChanged(); - return this; - } - - // optional string text = 3; - private java.lang.Object text_ = ""; - /** - * optional string text = 3; - */ - public boolean hasText() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string text = 3; - */ - public java.lang.String getText() { - java.lang.Object ref = text_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - text_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string text = 3; - */ - public com.google.protobuf.ByteString - getTextBytes() { - java.lang.Object ref = text_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - text_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string text = 3; - */ - public Builder setText( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - text_ = value; - onChanged(); - return this; - } - /** - * optional string text = 3; - */ - public Builder clearText() { - bitField0_ = (bitField0_ & ~0x00000004); - text_ = getDefaultInstance().getText(); - onChanged(); - return this; - } - /** - * optional string text = 3; - */ - public Builder setTextBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - text_ = value; - onChanged(); - return this; - } - - // repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - private java.util.List attachments_ = - java.util.Collections.emptyList(); - private void ensureAttachmentsIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - attachments_ = new java.util.ArrayList(attachments_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder> attachmentsBuilder_; - - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public java.util.List getAttachmentsList() { - if (attachmentsBuilder_ == null) { - return java.util.Collections.unmodifiableList(attachments_); - } else { - return attachmentsBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public int getAttachmentsCount() { - if (attachmentsBuilder_ == null) { - return attachments_.size(); - } else { - return attachmentsBuilder_.getCount(); - } - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment getAttachments(int index) { - if (attachmentsBuilder_ == null) { - return attachments_.get(index); - } else { - return attachmentsBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder setAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment value) { - if (attachmentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAttachmentsIsMutable(); - attachments_.set(index, value); - onChanged(); - } else { - attachmentsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder setAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder builderForValue) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.set(index, builderForValue.build()); - onChanged(); - } else { - attachmentsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder addAttachments(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment value) { - if (attachmentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAttachmentsIsMutable(); - attachments_.add(value); - onChanged(); - } else { - attachmentsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder addAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment value) { - if (attachmentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAttachmentsIsMutable(); - attachments_.add(index, value); - onChanged(); - } else { - attachmentsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder addAttachments( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder builderForValue) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.add(builderForValue.build()); - onChanged(); - } else { - attachmentsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder addAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder builderForValue) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.add(index, builderForValue.build()); - onChanged(); - } else { - attachmentsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder addAllAttachments( - java.lang.Iterable values) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - super.addAll(values, attachments_); - onChanged(); - } else { - attachmentsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder clearAttachments() { - if (attachmentsBuilder_ == null) { - attachments_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - attachmentsBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public Builder removeAttachments(int index) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.remove(index); - onChanged(); - } else { - attachmentsBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder getAttachmentsBuilder( - int index) { - return getAttachmentsFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder getAttachmentsOrBuilder( - int index) { - if (attachmentsBuilder_ == null) { - return attachments_.get(index); } else { - return attachmentsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public java.util.List - getAttachmentsOrBuilderList() { - if (attachmentsBuilder_ != null) { - return attachmentsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(attachments_); - } - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder addAttachmentsBuilder() { - return getAttachmentsFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder addAttachmentsBuilder( - int index) { - return getAttachmentsFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Quote.QuotedAttachment attachments = 4; - */ - public java.util.List - getAttachmentsBuilderList() { - return getAttachmentsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder> - getAttachmentsFieldBuilder() { - if (attachmentsBuilder_ == null) { - attachmentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachment.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.QuotedAttachmentOrBuilder>( - attachments_, - ((bitField0_ & 0x00000008) == 0x00000008), - getParentForChildren(), - isClean()); - attachments_ = null; - } - return attachmentsBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Quote) - } - - static { - defaultInstance = new Quote(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Quote) - } - - public interface ContactOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.DataMessage.Contact.Name name = 1; - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - boolean hasName(); - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name getName(); - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder getNameOrBuilder(); - - // repeated .signalservice.DataMessage.Contact.Phone number = 3; - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - java.util.List - getNumberList(); - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone getNumber(int index); - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - int getNumberCount(); - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - java.util.List - getNumberOrBuilderList(); - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder getNumberOrBuilder( - int index); - - // repeated .signalservice.DataMessage.Contact.Email email = 4; - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - java.util.List - getEmailList(); - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email getEmail(int index); - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - int getEmailCount(); - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - java.util.List - getEmailOrBuilderList(); - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder getEmailOrBuilder( - int index); - - // repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - java.util.List - getAddressList(); - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress getAddress(int index); - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - int getAddressCount(); - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - java.util.List - getAddressOrBuilderList(); - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder getAddressOrBuilder( - int index); - - // optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - boolean hasAvatar(); - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar getAvatar(); - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder getAvatarOrBuilder(); - - // optional string organization = 7; - /** - * optional string organization = 7; - */ - boolean hasOrganization(); - /** - * optional string organization = 7; - */ - java.lang.String getOrganization(); - /** - * optional string organization = 7; - */ - com.google.protobuf.ByteString - getOrganizationBytes(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Contact} - */ - public static final class Contact extends - com.google.protobuf.GeneratedMessage - implements ContactOrBuilder { - // Use Contact.newBuilder() to construct. - private Contact(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Contact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Contact defaultInstance; - public static Contact getDefaultInstance() { - return defaultInstance; - } - - public Contact getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Contact( - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = name_.toBuilder(); - } - name_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(name_); - name_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - number_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - number_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.PARSER, extensionRegistry)); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { - email_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; - } - email_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.PARSER, extensionRegistry)); - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - address_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000008; - } - address_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.PARSER, extensionRegistry)); - break; - } - case 50: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = avatar_.toBuilder(); - } - avatar_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(avatar_); - avatar_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 58: { - bitField0_ |= 0x00000004; - organization_ = 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_ & 0x00000002) == 0x00000002)) { - number_ = java.util.Collections.unmodifiableList(number_); - } - if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { - email_ = java.util.Collections.unmodifiableList(email_); - } - if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - address_ = java.util.Collections.unmodifiableList(address_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Contact parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Contact(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface NameOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string givenName = 1; - /** - * optional string givenName = 1; - */ - boolean hasGivenName(); - /** - * optional string givenName = 1; - */ - java.lang.String getGivenName(); - /** - * optional string givenName = 1; - */ - com.google.protobuf.ByteString - getGivenNameBytes(); - - // optional string familyName = 2; - /** - * optional string familyName = 2; - */ - boolean hasFamilyName(); - /** - * optional string familyName = 2; - */ - java.lang.String getFamilyName(); - /** - * optional string familyName = 2; - */ - com.google.protobuf.ByteString - getFamilyNameBytes(); - - // optional string prefix = 3; - /** - * optional string prefix = 3; - */ - boolean hasPrefix(); - /** - * optional string prefix = 3; - */ - java.lang.String getPrefix(); - /** - * optional string prefix = 3; - */ - com.google.protobuf.ByteString - getPrefixBytes(); - - // optional string suffix = 4; - /** - * optional string suffix = 4; - */ - boolean hasSuffix(); - /** - * optional string suffix = 4; - */ - java.lang.String getSuffix(); - /** - * optional string suffix = 4; - */ - com.google.protobuf.ByteString - getSuffixBytes(); - - // optional string middleName = 5; - /** - * optional string middleName = 5; - */ - boolean hasMiddleName(); - /** - * optional string middleName = 5; - */ - java.lang.String getMiddleName(); - /** - * optional string middleName = 5; - */ - com.google.protobuf.ByteString - getMiddleNameBytes(); - - // optional string displayName = 6; - /** - * optional string displayName = 6; - */ - boolean hasDisplayName(); - /** - * optional string displayName = 6; - */ - java.lang.String getDisplayName(); - /** - * optional string displayName = 6; - */ - com.google.protobuf.ByteString - getDisplayNameBytes(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Contact.Name} - */ - public static final class Name extends - com.google.protobuf.GeneratedMessage - implements NameOrBuilder { - // Use Name.newBuilder() to construct. - private Name(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Name(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Name defaultInstance; - public static Name getDefaultInstance() { - return defaultInstance; - } - - public Name getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Name( - 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; - givenName_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - familyName_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - prefix_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - suffix_ = input.readBytes(); - break; - } - case 42: { - bitField0_ |= 0x00000010; - middleName_ = input.readBytes(); - break; - } - case 50: { - bitField0_ |= 0x00000020; - displayName_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Name_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Name_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Name parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Name(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string givenName = 1; - public static final int GIVENNAME_FIELD_NUMBER = 1; - private java.lang.Object givenName_; - /** - * optional string givenName = 1; - */ - public boolean hasGivenName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string givenName = 1; - */ - public java.lang.String getGivenName() { - java.lang.Object ref = givenName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - givenName_ = s; - } - return s; - } - } - /** - * optional string givenName = 1; - */ - public com.google.protobuf.ByteString - getGivenNameBytes() { - java.lang.Object ref = givenName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - givenName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string familyName = 2; - public static final int FAMILYNAME_FIELD_NUMBER = 2; - private java.lang.Object familyName_; - /** - * optional string familyName = 2; - */ - public boolean hasFamilyName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string familyName = 2; - */ - public java.lang.String getFamilyName() { - java.lang.Object ref = familyName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - familyName_ = s; - } - return s; - } - } - /** - * optional string familyName = 2; - */ - public com.google.protobuf.ByteString - getFamilyNameBytes() { - java.lang.Object ref = familyName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - familyName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string prefix = 3; - public static final int PREFIX_FIELD_NUMBER = 3; - private java.lang.Object prefix_; - /** - * optional string prefix = 3; - */ - public boolean hasPrefix() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string prefix = 3; - */ - public java.lang.String getPrefix() { - java.lang.Object ref = prefix_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - prefix_ = s; - } - return s; - } - } - /** - * optional string prefix = 3; - */ - public com.google.protobuf.ByteString - getPrefixBytes() { - java.lang.Object ref = prefix_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - prefix_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string suffix = 4; - public static final int SUFFIX_FIELD_NUMBER = 4; - private java.lang.Object suffix_; - /** - * optional string suffix = 4; - */ - public boolean hasSuffix() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string suffix = 4; - */ - public java.lang.String getSuffix() { - java.lang.Object ref = suffix_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - suffix_ = s; - } - return s; - } - } - /** - * optional string suffix = 4; - */ - public com.google.protobuf.ByteString - getSuffixBytes() { - java.lang.Object ref = suffix_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - suffix_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string middleName = 5; - public static final int MIDDLENAME_FIELD_NUMBER = 5; - private java.lang.Object middleName_; - /** - * optional string middleName = 5; - */ - public boolean hasMiddleName() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional string middleName = 5; - */ - public java.lang.String getMiddleName() { - java.lang.Object ref = middleName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - middleName_ = s; - } - return s; - } - } - /** - * optional string middleName = 5; - */ - public com.google.protobuf.ByteString - getMiddleNameBytes() { - java.lang.Object ref = middleName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - middleName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string displayName = 6; - public static final int DISPLAYNAME_FIELD_NUMBER = 6; - private java.lang.Object displayName_; - /** - * optional string displayName = 6; - */ - public boolean hasDisplayName() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional string displayName = 6; - */ - public java.lang.String getDisplayName() { - java.lang.Object ref = displayName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - displayName_ = s; - } - return s; - } - } - /** - * optional string displayName = 6; - */ - public com.google.protobuf.ByteString - getDisplayNameBytes() { - java.lang.Object ref = displayName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - givenName_ = ""; - familyName_ = ""; - prefix_ = ""; - suffix_ = ""; - middleName_ = ""; - displayName_ = ""; - } - 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, getGivenNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getFamilyNameBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getPrefixBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getSuffixBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, getMiddleNameBytes()); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, getDisplayNameBytes()); - } - 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, getGivenNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getFamilyNameBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getPrefixBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, getSuffixBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, getMiddleNameBytes()); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, getDisplayNameBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name 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 signalservice.DataMessage.Contact.Name} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Name_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Name_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.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(); - givenName_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - familyName_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - prefix_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - suffix_ = ""; - bitField0_ = (bitField0_ & ~0x00000008); - middleName_ = ""; - bitField0_ = (bitField0_ & ~0x00000010); - displayName_ = ""; - bitField0_ = (bitField0_ & ~0x00000020); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Name_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.givenName_ = givenName_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.familyName_ = familyName_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.prefix_ = prefix_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.suffix_ = suffix_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.middleName_ = middleName_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.displayName_ = displayName_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance()) return this; - if (other.hasGivenName()) { - bitField0_ |= 0x00000001; - givenName_ = other.givenName_; - onChanged(); - } - if (other.hasFamilyName()) { - bitField0_ |= 0x00000002; - familyName_ = other.familyName_; - onChanged(); - } - if (other.hasPrefix()) { - bitField0_ |= 0x00000004; - prefix_ = other.prefix_; - onChanged(); - } - if (other.hasSuffix()) { - bitField0_ |= 0x00000008; - suffix_ = other.suffix_; - onChanged(); - } - if (other.hasMiddleName()) { - bitField0_ |= 0x00000010; - middleName_ = other.middleName_; - onChanged(); - } - if (other.hasDisplayName()) { - bitField0_ |= 0x00000020; - displayName_ = other.displayName_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string givenName = 1; - private java.lang.Object givenName_ = ""; - /** - * optional string givenName = 1; - */ - public boolean hasGivenName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string givenName = 1; - */ - public java.lang.String getGivenName() { - java.lang.Object ref = givenName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - givenName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string givenName = 1; - */ - public com.google.protobuf.ByteString - getGivenNameBytes() { - java.lang.Object ref = givenName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - givenName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string givenName = 1; - */ - public Builder setGivenName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - givenName_ = value; - onChanged(); - return this; - } - /** - * optional string givenName = 1; - */ - public Builder clearGivenName() { - bitField0_ = (bitField0_ & ~0x00000001); - givenName_ = getDefaultInstance().getGivenName(); - onChanged(); - return this; - } - /** - * optional string givenName = 1; - */ - public Builder setGivenNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - givenName_ = value; - onChanged(); - return this; - } - - // optional string familyName = 2; - private java.lang.Object familyName_ = ""; - /** - * optional string familyName = 2; - */ - public boolean hasFamilyName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string familyName = 2; - */ - public java.lang.String getFamilyName() { - java.lang.Object ref = familyName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - familyName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string familyName = 2; - */ - public com.google.protobuf.ByteString - getFamilyNameBytes() { - java.lang.Object ref = familyName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - familyName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string familyName = 2; - */ - public Builder setFamilyName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - familyName_ = value; - onChanged(); - return this; - } - /** - * optional string familyName = 2; - */ - public Builder clearFamilyName() { - bitField0_ = (bitField0_ & ~0x00000002); - familyName_ = getDefaultInstance().getFamilyName(); - onChanged(); - return this; - } - /** - * optional string familyName = 2; - */ - public Builder setFamilyNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - familyName_ = value; - onChanged(); - return this; - } - - // optional string prefix = 3; - private java.lang.Object prefix_ = ""; - /** - * optional string prefix = 3; - */ - public boolean hasPrefix() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string prefix = 3; - */ - public java.lang.String getPrefix() { - java.lang.Object ref = prefix_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - prefix_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string prefix = 3; - */ - public com.google.protobuf.ByteString - getPrefixBytes() { - java.lang.Object ref = prefix_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - prefix_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string prefix = 3; - */ - public Builder setPrefix( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - prefix_ = value; - onChanged(); - return this; - } - /** - * optional string prefix = 3; - */ - public Builder clearPrefix() { - bitField0_ = (bitField0_ & ~0x00000004); - prefix_ = getDefaultInstance().getPrefix(); - onChanged(); - return this; - } - /** - * optional string prefix = 3; - */ - public Builder setPrefixBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - prefix_ = value; - onChanged(); - return this; - } - - // optional string suffix = 4; - private java.lang.Object suffix_ = ""; - /** - * optional string suffix = 4; - */ - public boolean hasSuffix() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string suffix = 4; - */ - public java.lang.String getSuffix() { - java.lang.Object ref = suffix_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - suffix_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string suffix = 4; - */ - public com.google.protobuf.ByteString - getSuffixBytes() { - java.lang.Object ref = suffix_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - suffix_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string suffix = 4; - */ - public Builder setSuffix( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - suffix_ = value; - onChanged(); - return this; - } - /** - * optional string suffix = 4; - */ - public Builder clearSuffix() { - bitField0_ = (bitField0_ & ~0x00000008); - suffix_ = getDefaultInstance().getSuffix(); - onChanged(); - return this; - } - /** - * optional string suffix = 4; - */ - public Builder setSuffixBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - suffix_ = value; - onChanged(); - return this; - } - - // optional string middleName = 5; - private java.lang.Object middleName_ = ""; - /** - * optional string middleName = 5; - */ - public boolean hasMiddleName() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional string middleName = 5; - */ - public java.lang.String getMiddleName() { - java.lang.Object ref = middleName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - middleName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string middleName = 5; - */ - public com.google.protobuf.ByteString - getMiddleNameBytes() { - java.lang.Object ref = middleName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - middleName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string middleName = 5; - */ - public Builder setMiddleName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - middleName_ = value; - onChanged(); - return this; - } - /** - * optional string middleName = 5; - */ - public Builder clearMiddleName() { - bitField0_ = (bitField0_ & ~0x00000010); - middleName_ = getDefaultInstance().getMiddleName(); - onChanged(); - return this; - } - /** - * optional string middleName = 5; - */ - public Builder setMiddleNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - middleName_ = value; - onChanged(); - return this; - } - - // optional string displayName = 6; - private java.lang.Object displayName_ = ""; - /** - * optional string displayName = 6; - */ - public boolean hasDisplayName() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional string displayName = 6; - */ - public java.lang.String getDisplayName() { - java.lang.Object ref = displayName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - displayName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string displayName = 6; - */ - public com.google.protobuf.ByteString - getDisplayNameBytes() { - java.lang.Object ref = displayName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string displayName = 6; - */ - public Builder setDisplayName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - displayName_ = value; - onChanged(); - return this; - } - /** - * optional string displayName = 6; - */ - public Builder clearDisplayName() { - bitField0_ = (bitField0_ & ~0x00000020); - displayName_ = getDefaultInstance().getDisplayName(); - onChanged(); - return this; - } - /** - * optional string displayName = 6; - */ - public Builder setDisplayNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - displayName_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Contact.Name) - } - - static { - defaultInstance = new Name(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Contact.Name) - } - - public interface PhoneOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string value = 1; - /** - * optional string value = 1; - */ - boolean hasValue(); - /** - * optional string value = 1; - */ - java.lang.String getValue(); - /** - * optional string value = 1; - */ - com.google.protobuf.ByteString - getValueBytes(); - - // optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - boolean hasType(); - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type getType(); - - // optional string label = 3; - /** - * optional string label = 3; - */ - boolean hasLabel(); - /** - * optional string label = 3; - */ - java.lang.String getLabel(); - /** - * optional string label = 3; - */ - com.google.protobuf.ByteString - getLabelBytes(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Contact.Phone} - */ - public static final class Phone extends - com.google.protobuf.GeneratedMessage - implements PhoneOrBuilder { - // Use Phone.newBuilder() to construct. - private Phone(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Phone(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Phone defaultInstance; - public static Phone getDefaultInstance() { - return defaultInstance; - } - - public Phone getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Phone( - 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; - value_ = input.readBytes(); - break; - } - case 16: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(2, rawValue); - } else { - bitField0_ |= 0x00000002; - type_ = value; - } - break; - } - case 26: { - bitField0_ |= 0x00000004; - label_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Phone_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Phone_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Phone parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Phone(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.DataMessage.Contact.Phone.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * HOME = 1; - */ - HOME(0, 1), - /** - * MOBILE = 2; - */ - MOBILE(1, 2), - /** - * WORK = 3; - */ - WORK(2, 3), - /** - * CUSTOM = 4; - */ - CUSTOM(3, 4), - ; - - /** - * HOME = 1; - */ - public static final int HOME_VALUE = 1; - /** - * MOBILE = 2; - */ - public static final int MOBILE_VALUE = 2; - /** - * WORK = 3; - */ - public static final int WORK_VALUE = 3; - /** - * CUSTOM = 4; - */ - public static final int CUSTOM_VALUE = 4; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 1: return HOME; - case 2: return MOBILE; - case 3: return WORK; - case 4: return CUSTOM; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.DataMessage.Contact.Phone.Type) - } - - private int bitField0_; - // optional string value = 1; - public static final int VALUE_FIELD_NUMBER = 1; - private java.lang.Object value_; - /** - * optional string value = 1; - */ - public boolean hasValue() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string value = 1; - */ - public java.lang.String getValue() { - java.lang.Object ref = value_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - value_ = s; - } - return s; - } - } - /** - * optional string value = 1; - */ - public com.google.protobuf.ByteString - getValueBytes() { - java.lang.Object ref = value_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - value_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - public static final int TYPE_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type type_; - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type getType() { - return type_; - } - - // optional string label = 3; - public static final int LABEL_FIELD_NUMBER = 3; - private java.lang.Object label_; - /** - * optional string label = 3; - */ - public boolean hasLabel() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string label = 3; - */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } - } - /** - * optional string label = 3; - */ - public com.google.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - value_ = ""; - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type.HOME; - label_ = ""; - } - 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, getValueBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeEnum(2, type_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getLabelBytes()); - } - 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, getValueBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, type_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getLabelBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone 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 signalservice.DataMessage.Contact.Phone} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Phone_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Phone_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.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(); - value_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type.HOME; - bitField0_ = (bitField0_ & ~0x00000002); - label_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Phone_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.value_ = value_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.type_ = type_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.label_ = label_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.getDefaultInstance()) return this; - if (other.hasValue()) { - bitField0_ |= 0x00000001; - value_ = other.value_; - onChanged(); - } - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasLabel()) { - bitField0_ |= 0x00000004; - label_ = other.label_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string value = 1; - private java.lang.Object value_ = ""; - /** - * optional string value = 1; - */ - public boolean hasValue() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string value = 1; - */ - public java.lang.String getValue() { - java.lang.Object ref = value_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - value_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string value = 1; - */ - public com.google.protobuf.ByteString - getValueBytes() { - java.lang.Object ref = value_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - value_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string value = 1; - */ - public Builder setValue( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - value_ = value; - onChanged(); - return this; - } - /** - * optional string value = 1; - */ - public Builder clearValue() { - bitField0_ = (bitField0_ & ~0x00000001); - value_ = getDefaultInstance().getValue(); - onChanged(); - return this; - } - /** - * optional string value = 1; - */ - public Builder setValueBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - value_ = value; - onChanged(); - return this; - } - - // optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type.HOME; - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type getType() { - return type_; - } - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Phone.Type type = 2; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000002); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Type.HOME; - onChanged(); - return this; - } - - // optional string label = 3; - private java.lang.Object label_ = ""; - /** - * optional string label = 3; - */ - public boolean hasLabel() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string label = 3; - */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - label_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string label = 3; - */ - public com.google.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string label = 3; - */ - public Builder setLabel( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - label_ = value; - onChanged(); - return this; - } - /** - * optional string label = 3; - */ - public Builder clearLabel() { - bitField0_ = (bitField0_ & ~0x00000004); - label_ = getDefaultInstance().getLabel(); - onChanged(); - return this; - } - /** - * optional string label = 3; - */ - public Builder setLabelBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - label_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Contact.Phone) - } - - static { - defaultInstance = new Phone(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Contact.Phone) - } - - public interface EmailOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string value = 1; - /** - * optional string value = 1; - */ - boolean hasValue(); - /** - * optional string value = 1; - */ - java.lang.String getValue(); - /** - * optional string value = 1; - */ - com.google.protobuf.ByteString - getValueBytes(); - - // optional .signalservice.DataMessage.Contact.Email.Type type = 2; - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - boolean hasType(); - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type getType(); - - // optional string label = 3; - /** - * optional string label = 3; - */ - boolean hasLabel(); - /** - * optional string label = 3; - */ - java.lang.String getLabel(); - /** - * optional string label = 3; - */ - com.google.protobuf.ByteString - getLabelBytes(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Contact.Email} - */ - public static final class Email extends - com.google.protobuf.GeneratedMessage - implements EmailOrBuilder { - // Use Email.newBuilder() to construct. - private Email(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Email(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Email defaultInstance; - public static Email getDefaultInstance() { - return defaultInstance; - } - - public Email getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Email( - 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; - value_ = input.readBytes(); - break; - } - case 16: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(2, rawValue); - } else { - bitField0_ |= 0x00000002; - type_ = value; - } - break; - } - case 26: { - bitField0_ |= 0x00000004; - label_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Email_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Email_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Email parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Email(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.DataMessage.Contact.Email.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * HOME = 1; - */ - HOME(0, 1), - /** - * MOBILE = 2; - */ - MOBILE(1, 2), - /** - * WORK = 3; - */ - WORK(2, 3), - /** - * CUSTOM = 4; - */ - CUSTOM(3, 4), - ; - - /** - * HOME = 1; - */ - public static final int HOME_VALUE = 1; - /** - * MOBILE = 2; - */ - public static final int MOBILE_VALUE = 2; - /** - * WORK = 3; - */ - public static final int WORK_VALUE = 3; - /** - * CUSTOM = 4; - */ - public static final int CUSTOM_VALUE = 4; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 1: return HOME; - case 2: return MOBILE; - case 3: return WORK; - case 4: return CUSTOM; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.DataMessage.Contact.Email.Type) - } - - private int bitField0_; - // optional string value = 1; - public static final int VALUE_FIELD_NUMBER = 1; - private java.lang.Object value_; - /** - * optional string value = 1; - */ - public boolean hasValue() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string value = 1; - */ - public java.lang.String getValue() { - java.lang.Object ref = value_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - value_ = s; - } - return s; - } - } - /** - * optional string value = 1; - */ - public com.google.protobuf.ByteString - getValueBytes() { - java.lang.Object ref = value_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - value_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.DataMessage.Contact.Email.Type type = 2; - public static final int TYPE_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type type_; - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type getType() { - return type_; - } - - // optional string label = 3; - public static final int LABEL_FIELD_NUMBER = 3; - private java.lang.Object label_; - /** - * optional string label = 3; - */ - public boolean hasLabel() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string label = 3; - */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } - } - /** - * optional string label = 3; - */ - public com.google.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - value_ = ""; - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type.HOME; - label_ = ""; - } - 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, getValueBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeEnum(2, type_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getLabelBytes()); - } - 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, getValueBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, type_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getLabelBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email 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 signalservice.DataMessage.Contact.Email} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Email_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Email_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.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(); - value_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type.HOME; - bitField0_ = (bitField0_ & ~0x00000002); - label_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Email_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.value_ = value_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.type_ = type_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.label_ = label_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.getDefaultInstance()) return this; - if (other.hasValue()) { - bitField0_ |= 0x00000001; - value_ = other.value_; - onChanged(); - } - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasLabel()) { - bitField0_ |= 0x00000004; - label_ = other.label_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string value = 1; - private java.lang.Object value_ = ""; - /** - * optional string value = 1; - */ - public boolean hasValue() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string value = 1; - */ - public java.lang.String getValue() { - java.lang.Object ref = value_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - value_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string value = 1; - */ - public com.google.protobuf.ByteString - getValueBytes() { - java.lang.Object ref = value_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - value_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string value = 1; - */ - public Builder setValue( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - value_ = value; - onChanged(); - return this; - } - /** - * optional string value = 1; - */ - public Builder clearValue() { - bitField0_ = (bitField0_ & ~0x00000001); - value_ = getDefaultInstance().getValue(); - onChanged(); - return this; - } - /** - * optional string value = 1; - */ - public Builder setValueBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - value_ = value; - onChanged(); - return this; - } - - // optional .signalservice.DataMessage.Contact.Email.Type type = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type.HOME; - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type getType() { - return type_; - } - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Email.Type type = 2; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000002); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Type.HOME; - onChanged(); - return this; - } - - // optional string label = 3; - private java.lang.Object label_ = ""; - /** - * optional string label = 3; - */ - public boolean hasLabel() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string label = 3; - */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - label_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string label = 3; - */ - public com.google.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string label = 3; - */ - public Builder setLabel( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - label_ = value; - onChanged(); - return this; - } - /** - * optional string label = 3; - */ - public Builder clearLabel() { - bitField0_ = (bitField0_ & ~0x00000004); - label_ = getDefaultInstance().getLabel(); - onChanged(); - return this; - } - /** - * optional string label = 3; - */ - public Builder setLabelBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - label_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Contact.Email) - } - - static { - defaultInstance = new Email(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Contact.Email) - } - - public interface PostalAddressOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - boolean hasType(); - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type getType(); - - // optional string label = 2; - /** - * optional string label = 2; - */ - boolean hasLabel(); - /** - * optional string label = 2; - */ - java.lang.String getLabel(); - /** - * optional string label = 2; - */ - com.google.protobuf.ByteString - getLabelBytes(); - - // optional string street = 3; - /** - * optional string street = 3; - */ - boolean hasStreet(); - /** - * optional string street = 3; - */ - java.lang.String getStreet(); - /** - * optional string street = 3; - */ - com.google.protobuf.ByteString - getStreetBytes(); - - // optional string pobox = 4; - /** - * optional string pobox = 4; - */ - boolean hasPobox(); - /** - * optional string pobox = 4; - */ - java.lang.String getPobox(); - /** - * optional string pobox = 4; - */ - com.google.protobuf.ByteString - getPoboxBytes(); - - // optional string neighborhood = 5; - /** - * optional string neighborhood = 5; - */ - boolean hasNeighborhood(); - /** - * optional string neighborhood = 5; - */ - java.lang.String getNeighborhood(); - /** - * optional string neighborhood = 5; - */ - com.google.protobuf.ByteString - getNeighborhoodBytes(); - - // optional string city = 6; - /** - * optional string city = 6; - */ - boolean hasCity(); - /** - * optional string city = 6; - */ - java.lang.String getCity(); - /** - * optional string city = 6; - */ - com.google.protobuf.ByteString - getCityBytes(); - - // optional string region = 7; - /** - * optional string region = 7; - */ - boolean hasRegion(); - /** - * optional string region = 7; - */ - java.lang.String getRegion(); - /** - * optional string region = 7; - */ - com.google.protobuf.ByteString - getRegionBytes(); - - // optional string postcode = 8; - /** - * optional string postcode = 8; - */ - boolean hasPostcode(); - /** - * optional string postcode = 8; - */ - java.lang.String getPostcode(); - /** - * optional string postcode = 8; - */ - com.google.protobuf.ByteString - getPostcodeBytes(); - - // optional string country = 9; - /** - * optional string country = 9; - */ - boolean hasCountry(); - /** - * optional string country = 9; - */ - java.lang.String getCountry(); - /** - * optional string country = 9; - */ - com.google.protobuf.ByteString - getCountryBytes(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Contact.PostalAddress} - */ - public static final class PostalAddress extends - com.google.protobuf.GeneratedMessage - implements PostalAddressOrBuilder { - // Use PostalAddress.newBuilder() to construct. - private PostalAddress(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private PostalAddress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final PostalAddress defaultInstance; - public static PostalAddress getDefaultInstance() { - return defaultInstance; - } - - public PostalAddress getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private PostalAddress( - 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: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(1, rawValue); - } else { - bitField0_ |= 0x00000001; - type_ = value; - } - break; - } - case 18: { - bitField0_ |= 0x00000002; - label_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - street_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - pobox_ = input.readBytes(); - break; - } - case 42: { - bitField0_ |= 0x00000010; - neighborhood_ = input.readBytes(); - break; - } - case 50: { - bitField0_ |= 0x00000020; - city_ = input.readBytes(); - break; - } - case 58: { - bitField0_ |= 0x00000040; - region_ = input.readBytes(); - break; - } - case 66: { - bitField0_ |= 0x00000080; - postcode_ = input.readBytes(); - break; - } - case 74: { - bitField0_ |= 0x00000100; - country_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_PostalAddress_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_PostalAddress_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public PostalAddress parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new PostalAddress(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.DataMessage.Contact.PostalAddress.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * HOME = 1; - */ - HOME(0, 1), - /** - * WORK = 2; - */ - WORK(1, 2), - /** - * CUSTOM = 3; - */ - CUSTOM(2, 3), - ; - - /** - * HOME = 1; - */ - public static final int HOME_VALUE = 1; - /** - * WORK = 2; - */ - public static final int WORK_VALUE = 2; - /** - * CUSTOM = 3; - */ - public static final int CUSTOM_VALUE = 3; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 1: return HOME; - case 2: return WORK; - case 3: return CUSTOM; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.DataMessage.Contact.PostalAddress.Type) - } - - private int bitField0_; - // optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - public static final int TYPE_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type type_; - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type getType() { - return type_; - } - - // optional string label = 2; - public static final int LABEL_FIELD_NUMBER = 2; - private java.lang.Object label_; - /** - * optional string label = 2; - */ - public boolean hasLabel() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string label = 2; - */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } - } - /** - * optional string label = 2; - */ - public com.google.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string street = 3; - public static final int STREET_FIELD_NUMBER = 3; - private java.lang.Object street_; - /** - * optional string street = 3; - */ - public boolean hasStreet() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string street = 3; - */ - public java.lang.String getStreet() { - java.lang.Object ref = street_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - street_ = s; - } - return s; - } - } - /** - * optional string street = 3; - */ - public com.google.protobuf.ByteString - getStreetBytes() { - java.lang.Object ref = street_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - street_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string pobox = 4; - public static final int POBOX_FIELD_NUMBER = 4; - private java.lang.Object pobox_; - /** - * optional string pobox = 4; - */ - public boolean hasPobox() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string pobox = 4; - */ - public java.lang.String getPobox() { - java.lang.Object ref = pobox_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - pobox_ = s; - } - return s; - } - } - /** - * optional string pobox = 4; - */ - public com.google.protobuf.ByteString - getPoboxBytes() { - java.lang.Object ref = pobox_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - pobox_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string neighborhood = 5; - public static final int NEIGHBORHOOD_FIELD_NUMBER = 5; - private java.lang.Object neighborhood_; - /** - * optional string neighborhood = 5; - */ - public boolean hasNeighborhood() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional string neighborhood = 5; - */ - public java.lang.String getNeighborhood() { - java.lang.Object ref = neighborhood_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - neighborhood_ = s; - } - return s; - } - } - /** - * optional string neighborhood = 5; - */ - public com.google.protobuf.ByteString - getNeighborhoodBytes() { - java.lang.Object ref = neighborhood_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - neighborhood_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string city = 6; - public static final int CITY_FIELD_NUMBER = 6; - private java.lang.Object city_; - /** - * optional string city = 6; - */ - public boolean hasCity() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional string city = 6; - */ - public java.lang.String getCity() { - java.lang.Object ref = city_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - city_ = s; - } - return s; - } - } - /** - * optional string city = 6; - */ - public com.google.protobuf.ByteString - getCityBytes() { - java.lang.Object ref = city_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - city_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string region = 7; - public static final int REGION_FIELD_NUMBER = 7; - private java.lang.Object region_; - /** - * optional string region = 7; - */ - public boolean hasRegion() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional string region = 7; - */ - public java.lang.String getRegion() { - java.lang.Object ref = region_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - region_ = s; - } - return s; - } - } - /** - * optional string region = 7; - */ - public com.google.protobuf.ByteString - getRegionBytes() { - java.lang.Object ref = region_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - region_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string postcode = 8; - public static final int POSTCODE_FIELD_NUMBER = 8; - private java.lang.Object postcode_; - /** - * optional string postcode = 8; - */ - public boolean hasPostcode() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional string postcode = 8; - */ - public java.lang.String getPostcode() { - java.lang.Object ref = postcode_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - postcode_ = s; - } - return s; - } - } - /** - * optional string postcode = 8; - */ - public com.google.protobuf.ByteString - getPostcodeBytes() { - java.lang.Object ref = postcode_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - postcode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string country = 9; - public static final int COUNTRY_FIELD_NUMBER = 9; - private java.lang.Object country_; - /** - * optional string country = 9; - */ - public boolean hasCountry() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional string country = 9; - */ - public java.lang.String getCountry() { - java.lang.Object ref = country_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - country_ = s; - } - return s; - } - } - /** - * optional string country = 9; - */ - public com.google.protobuf.ByteString - getCountryBytes() { - java.lang.Object ref = country_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - country_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type.HOME; - label_ = ""; - street_ = ""; - pobox_ = ""; - neighborhood_ = ""; - city_ = ""; - region_ = ""; - postcode_ = ""; - country_ = ""; - } - 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.writeEnum(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getLabelBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getStreetBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getPoboxBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, getNeighborhoodBytes()); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, getCityBytes()); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBytes(7, getRegionBytes()); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeBytes(8, getPostcodeBytes()); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - output.writeBytes(9, getCountryBytes()); - } - 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 - .computeEnumSize(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getLabelBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getStreetBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, getPoboxBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, getNeighborhoodBytes()); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, getCityBytes()); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(7, getRegionBytes()); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(8, getPostcodeBytes()); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(9, getCountryBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress 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 signalservice.DataMessage.Contact.PostalAddress} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_PostalAddress_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_PostalAddress_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.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(); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type.HOME; - bitField0_ = (bitField0_ & ~0x00000001); - label_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - street_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - pobox_ = ""; - bitField0_ = (bitField0_ & ~0x00000008); - neighborhood_ = ""; - bitField0_ = (bitField0_ & ~0x00000010); - city_ = ""; - bitField0_ = (bitField0_ & ~0x00000020); - region_ = ""; - bitField0_ = (bitField0_ & ~0x00000040); - postcode_ = ""; - bitField0_ = (bitField0_ & ~0x00000080); - country_ = ""; - bitField0_ = (bitField0_ & ~0x00000100); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_PostalAddress_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.type_ = type_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.label_ = label_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.street_ = street_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.pobox_ = pobox_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.neighborhood_ = neighborhood_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.city_ = city_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - result.region_ = region_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000080; - } - result.postcode_ = postcode_; - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000100; - } - result.country_ = country_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.getDefaultInstance()) return this; - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasLabel()) { - bitField0_ |= 0x00000002; - label_ = other.label_; - onChanged(); - } - if (other.hasStreet()) { - bitField0_ |= 0x00000004; - street_ = other.street_; - onChanged(); - } - if (other.hasPobox()) { - bitField0_ |= 0x00000008; - pobox_ = other.pobox_; - onChanged(); - } - if (other.hasNeighborhood()) { - bitField0_ |= 0x00000010; - neighborhood_ = other.neighborhood_; - onChanged(); - } - if (other.hasCity()) { - bitField0_ |= 0x00000020; - city_ = other.city_; - onChanged(); - } - if (other.hasRegion()) { - bitField0_ |= 0x00000040; - region_ = other.region_; - onChanged(); - } - if (other.hasPostcode()) { - bitField0_ |= 0x00000080; - postcode_ = other.postcode_; - onChanged(); - } - if (other.hasCountry()) { - bitField0_ |= 0x00000100; - country_ = other.country_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type.HOME; - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type getType() { - return type_; - } - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.DataMessage.Contact.PostalAddress.Type type = 1; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Type.HOME; - onChanged(); - return this; - } - - // optional string label = 2; - private java.lang.Object label_ = ""; - /** - * optional string label = 2; - */ - public boolean hasLabel() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string label = 2; - */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - label_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string label = 2; - */ - public com.google.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string label = 2; - */ - public Builder setLabel( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - label_ = value; - onChanged(); - return this; - } - /** - * optional string label = 2; - */ - public Builder clearLabel() { - bitField0_ = (bitField0_ & ~0x00000002); - label_ = getDefaultInstance().getLabel(); - onChanged(); - return this; - } - /** - * optional string label = 2; - */ - public Builder setLabelBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - label_ = value; - onChanged(); - return this; - } - - // optional string street = 3; - private java.lang.Object street_ = ""; - /** - * optional string street = 3; - */ - public boolean hasStreet() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string street = 3; - */ - public java.lang.String getStreet() { - java.lang.Object ref = street_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - street_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string street = 3; - */ - public com.google.protobuf.ByteString - getStreetBytes() { - java.lang.Object ref = street_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - street_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string street = 3; - */ - public Builder setStreet( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - street_ = value; - onChanged(); - return this; - } - /** - * optional string street = 3; - */ - public Builder clearStreet() { - bitField0_ = (bitField0_ & ~0x00000004); - street_ = getDefaultInstance().getStreet(); - onChanged(); - return this; - } - /** - * optional string street = 3; - */ - public Builder setStreetBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - street_ = value; - onChanged(); - return this; - } - - // optional string pobox = 4; - private java.lang.Object pobox_ = ""; - /** - * optional string pobox = 4; - */ - public boolean hasPobox() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string pobox = 4; - */ - public java.lang.String getPobox() { - java.lang.Object ref = pobox_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - pobox_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string pobox = 4; - */ - public com.google.protobuf.ByteString - getPoboxBytes() { - java.lang.Object ref = pobox_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - pobox_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string pobox = 4; - */ - public Builder setPobox( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - pobox_ = value; - onChanged(); - return this; - } - /** - * optional string pobox = 4; - */ - public Builder clearPobox() { - bitField0_ = (bitField0_ & ~0x00000008); - pobox_ = getDefaultInstance().getPobox(); - onChanged(); - return this; - } - /** - * optional string pobox = 4; - */ - public Builder setPoboxBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - pobox_ = value; - onChanged(); - return this; - } - - // optional string neighborhood = 5; - private java.lang.Object neighborhood_ = ""; - /** - * optional string neighborhood = 5; - */ - public boolean hasNeighborhood() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional string neighborhood = 5; - */ - public java.lang.String getNeighborhood() { - java.lang.Object ref = neighborhood_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - neighborhood_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string neighborhood = 5; - */ - public com.google.protobuf.ByteString - getNeighborhoodBytes() { - java.lang.Object ref = neighborhood_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - neighborhood_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string neighborhood = 5; - */ - public Builder setNeighborhood( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - neighborhood_ = value; - onChanged(); - return this; - } - /** - * optional string neighborhood = 5; - */ - public Builder clearNeighborhood() { - bitField0_ = (bitField0_ & ~0x00000010); - neighborhood_ = getDefaultInstance().getNeighborhood(); - onChanged(); - return this; - } - /** - * optional string neighborhood = 5; - */ - public Builder setNeighborhoodBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - neighborhood_ = value; - onChanged(); - return this; - } - - // optional string city = 6; - private java.lang.Object city_ = ""; - /** - * optional string city = 6; - */ - public boolean hasCity() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional string city = 6; - */ - public java.lang.String getCity() { - java.lang.Object ref = city_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - city_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string city = 6; - */ - public com.google.protobuf.ByteString - getCityBytes() { - java.lang.Object ref = city_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - city_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string city = 6; - */ - public Builder setCity( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - city_ = value; - onChanged(); - return this; - } - /** - * optional string city = 6; - */ - public Builder clearCity() { - bitField0_ = (bitField0_ & ~0x00000020); - city_ = getDefaultInstance().getCity(); - onChanged(); - return this; - } - /** - * optional string city = 6; - */ - public Builder setCityBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - city_ = value; - onChanged(); - return this; - } - - // optional string region = 7; - private java.lang.Object region_ = ""; - /** - * optional string region = 7; - */ - public boolean hasRegion() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional string region = 7; - */ - public java.lang.String getRegion() { - java.lang.Object ref = region_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - region_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string region = 7; - */ - public com.google.protobuf.ByteString - getRegionBytes() { - java.lang.Object ref = region_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - region_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string region = 7; - */ - public Builder setRegion( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - region_ = value; - onChanged(); - return this; - } - /** - * optional string region = 7; - */ - public Builder clearRegion() { - bitField0_ = (bitField0_ & ~0x00000040); - region_ = getDefaultInstance().getRegion(); - onChanged(); - return this; - } - /** - * optional string region = 7; - */ - public Builder setRegionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - region_ = value; - onChanged(); - return this; - } - - // optional string postcode = 8; - private java.lang.Object postcode_ = ""; - /** - * optional string postcode = 8; - */ - public boolean hasPostcode() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional string postcode = 8; - */ - public java.lang.String getPostcode() { - java.lang.Object ref = postcode_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - postcode_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string postcode = 8; - */ - public com.google.protobuf.ByteString - getPostcodeBytes() { - java.lang.Object ref = postcode_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - postcode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string postcode = 8; - */ - public Builder setPostcode( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000080; - postcode_ = value; - onChanged(); - return this; - } - /** - * optional string postcode = 8; - */ - public Builder clearPostcode() { - bitField0_ = (bitField0_ & ~0x00000080); - postcode_ = getDefaultInstance().getPostcode(); - onChanged(); - return this; - } - /** - * optional string postcode = 8; - */ - public Builder setPostcodeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000080; - postcode_ = value; - onChanged(); - return this; - } - - // optional string country = 9; - private java.lang.Object country_ = ""; - /** - * optional string country = 9; - */ - public boolean hasCountry() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional string country = 9; - */ - public java.lang.String getCountry() { - java.lang.Object ref = country_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - country_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string country = 9; - */ - public com.google.protobuf.ByteString - getCountryBytes() { - java.lang.Object ref = country_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - country_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string country = 9; - */ - public Builder setCountry( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000100; - country_ = value; - onChanged(); - return this; - } - /** - * optional string country = 9; - */ - public Builder clearCountry() { - bitField0_ = (bitField0_ & ~0x00000100); - country_ = getDefaultInstance().getCountry(); - onChanged(); - return this; - } - /** - * optional string country = 9; - */ - public Builder setCountryBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000100; - country_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Contact.PostalAddress) - } - - static { - defaultInstance = new PostalAddress(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Contact.PostalAddress) - } - - public interface AvatarOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.AttachmentPointer avatar = 1; - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - boolean hasAvatar(); - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAvatar(); - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder(); - - // optional bool isProfile = 2; - /** - * optional bool isProfile = 2; - */ - boolean hasIsProfile(); - /** - * optional bool isProfile = 2; - */ - boolean getIsProfile(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Contact.Avatar} - */ - public static final class Avatar extends - com.google.protobuf.GeneratedMessage - implements AvatarOrBuilder { - // Use Avatar.newBuilder() to construct. - private Avatar(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Avatar(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Avatar defaultInstance; - public static Avatar getDefaultInstance() { - return defaultInstance; - } - - public Avatar getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Avatar( - 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = avatar_.toBuilder(); - } - avatar_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(avatar_); - avatar_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 16: { - bitField0_ |= 0x00000002; - isProfile_ = input.readBool(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Avatar_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Avatar_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Avatar parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Avatar(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional .signalservice.AttachmentPointer avatar = 1; - public static final int AVATAR_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer avatar_; - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAvatar() { - return avatar_; - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder() { - return avatar_; - } - - // optional bool isProfile = 2; - public static final int ISPROFILE_FIELD_NUMBER = 2; - private boolean isProfile_; - /** - * optional bool isProfile = 2; - */ - public boolean hasIsProfile() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool isProfile = 2; - */ - public boolean getIsProfile() { - return isProfile_; - } - - private void initFields() { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - isProfile_ = false; - } - 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, avatar_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBool(2, isProfile_); - } - 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, avatar_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, isProfile_); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar 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 signalservice.DataMessage.Contact.Avatar} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Avatar_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Avatar_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getAvatarFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - isProfile_ = false; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_Avatar_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (avatarBuilder_ == null) { - result.avatar_ = avatar_; - } else { - result.avatar_ = avatarBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.isProfile_ = isProfile_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance()) return this; - if (other.hasAvatar()) { - mergeAvatar(other.getAvatar()); - } - if (other.hasIsProfile()) { - setIsProfile(other.getIsProfile()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.AttachmentPointer avatar = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> avatarBuilder_; - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAvatar() { - if (avatarBuilder_ == null) { - return avatar_; - } else { - return avatarBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public Builder setAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (avatarBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatar_ = value; - onChanged(); - } else { - avatarBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public Builder setAvatar( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (avatarBuilder_ == null) { - avatar_ = builderForValue.build(); - onChanged(); - } else { - avatarBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public Builder mergeAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (avatarBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - avatar_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - avatar_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(avatar_).mergeFrom(value).buildPartial(); - } else { - avatar_ = value; - } - onChanged(); - } else { - avatarBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public Builder clearAvatar() { - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getAvatarBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getAvatarFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder() { - if (avatarBuilder_ != null) { - return avatarBuilder_.getMessageOrBuilder(); - } else { - return avatar_; - } - } - /** - * optional .signalservice.AttachmentPointer avatar = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getAvatarFieldBuilder() { - if (avatarBuilder_ == null) { - avatarBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - avatar_, - getParentForChildren(), - isClean()); - avatar_ = null; - } - return avatarBuilder_; - } - - // optional bool isProfile = 2; - private boolean isProfile_ ; - /** - * optional bool isProfile = 2; - */ - public boolean hasIsProfile() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool isProfile = 2; - */ - public boolean getIsProfile() { - return isProfile_; - } - /** - * optional bool isProfile = 2; - */ - public Builder setIsProfile(boolean value) { - bitField0_ |= 0x00000002; - isProfile_ = value; - onChanged(); - return this; - } - /** - * optional bool isProfile = 2; - */ - public Builder clearIsProfile() { - bitField0_ = (bitField0_ & ~0x00000002); - isProfile_ = false; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Contact.Avatar) - } - - static { - defaultInstance = new Avatar(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Contact.Avatar) - } - - private int bitField0_; - // optional .signalservice.DataMessage.Contact.Name name = 1; - public static final int NAME_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name name_; - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name getName() { - return name_; - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder getNameOrBuilder() { - return name_; - } - - // repeated .signalservice.DataMessage.Contact.Phone number = 3; - public static final int NUMBER_FIELD_NUMBER = 3; - private java.util.List number_; - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public java.util.List getNumberList() { - return number_; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public java.util.List - getNumberOrBuilderList() { - return number_; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public int getNumberCount() { - return number_.size(); - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone getNumber(int index) { - return number_.get(index); - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder getNumberOrBuilder( - int index) { - return number_.get(index); - } - - // repeated .signalservice.DataMessage.Contact.Email email = 4; - public static final int EMAIL_FIELD_NUMBER = 4; - private java.util.List email_; - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public java.util.List getEmailList() { - return email_; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public java.util.List - getEmailOrBuilderList() { - return email_; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public int getEmailCount() { - return email_.size(); - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email getEmail(int index) { - return email_.get(index); - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder getEmailOrBuilder( - int index) { - return email_.get(index); - } - - // repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - public static final int ADDRESS_FIELD_NUMBER = 5; - private java.util.List address_; - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public java.util.List getAddressList() { - return address_; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public java.util.List - getAddressOrBuilderList() { - return address_; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public int getAddressCount() { - return address_.size(); - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress getAddress(int index) { - return address_.get(index); - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder getAddressOrBuilder( - int index) { - return address_.get(index); - } - - // optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - public static final int AVATAR_FIELD_NUMBER = 6; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar avatar_; - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar getAvatar() { - return avatar_; - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder getAvatarOrBuilder() { - return avatar_; - } - - // optional string organization = 7; - public static final int ORGANIZATION_FIELD_NUMBER = 7; - private java.lang.Object organization_; - /** - * optional string organization = 7; - */ - public boolean hasOrganization() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string organization = 7; - */ - public java.lang.String getOrganization() { - java.lang.Object ref = organization_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - organization_ = s; - } - return s; - } - } - /** - * optional string organization = 7; - */ - public com.google.protobuf.ByteString - getOrganizationBytes() { - java.lang.Object ref = organization_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - organization_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - name_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance(); - number_ = java.util.Collections.emptyList(); - email_ = java.util.Collections.emptyList(); - address_ = java.util.Collections.emptyList(); - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance(); - organization_ = ""; - } - 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, name_); - } - for (int i = 0; i < number_.size(); i++) { - output.writeMessage(3, number_.get(i)); - } - for (int i = 0; i < email_.size(); i++) { - output.writeMessage(4, email_.get(i)); - } - for (int i = 0; i < address_.size(); i++) { - output.writeMessage(5, address_.get(i)); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(6, avatar_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(7, getOrganizationBytes()); - } - 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, name_); - } - for (int i = 0; i < number_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, number_.get(i)); - } - for (int i = 0; i < email_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, email_.get(i)); - } - for (int i = 0; i < address_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, address_.get(i)); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, avatar_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(7, getOrganizationBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact 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 signalservice.DataMessage.Contact} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getNameFieldBuilder(); - getNumberFieldBuilder(); - getEmailFieldBuilder(); - getAddressFieldBuilder(); - getAvatarFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (nameBuilder_ == null) { - name_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance(); - } else { - nameBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - if (numberBuilder_ == null) { - number_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - numberBuilder_.clear(); - } - if (emailBuilder_ == null) { - email_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - } else { - emailBuilder_.clear(); - } - if (addressBuilder_ == null) { - address_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - } else { - addressBuilder_.clear(); - } - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - organization_ = ""; - bitField0_ = (bitField0_ & ~0x00000020); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Contact_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (nameBuilder_ == null) { - result.name_ = name_; - } else { - result.name_ = nameBuilder_.build(); - } - if (numberBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002)) { - number_ = java.util.Collections.unmodifiableList(number_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.number_ = number_; - } else { - result.number_ = numberBuilder_.build(); - } - if (emailBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004)) { - email_ = java.util.Collections.unmodifiableList(email_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.email_ = email_; - } else { - result.email_ = emailBuilder_.build(); - } - if (addressBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008)) { - address_ = java.util.Collections.unmodifiableList(address_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.address_ = address_; - } else { - result.address_ = addressBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000002; - } - if (avatarBuilder_ == null) { - result.avatar_ = avatar_; - } else { - result.avatar_ = avatarBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000004; - } - result.organization_ = organization_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.getDefaultInstance()) return this; - if (other.hasName()) { - mergeName(other.getName()); - } - if (numberBuilder_ == null) { - if (!other.number_.isEmpty()) { - if (number_.isEmpty()) { - number_ = other.number_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureNumberIsMutable(); - number_.addAll(other.number_); - } - onChanged(); - } - } else { - if (!other.number_.isEmpty()) { - if (numberBuilder_.isEmpty()) { - numberBuilder_.dispose(); - numberBuilder_ = null; - number_ = other.number_; - bitField0_ = (bitField0_ & ~0x00000002); - numberBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getNumberFieldBuilder() : null; - } else { - numberBuilder_.addAllMessages(other.number_); - } - } - } - if (emailBuilder_ == null) { - if (!other.email_.isEmpty()) { - if (email_.isEmpty()) { - email_ = other.email_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureEmailIsMutable(); - email_.addAll(other.email_); - } - onChanged(); - } - } else { - if (!other.email_.isEmpty()) { - if (emailBuilder_.isEmpty()) { - emailBuilder_.dispose(); - emailBuilder_ = null; - email_ = other.email_; - bitField0_ = (bitField0_ & ~0x00000004); - emailBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getEmailFieldBuilder() : null; - } else { - emailBuilder_.addAllMessages(other.email_); - } - } - } - if (addressBuilder_ == null) { - if (!other.address_.isEmpty()) { - if (address_.isEmpty()) { - address_ = other.address_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureAddressIsMutable(); - address_.addAll(other.address_); - } - onChanged(); - } - } else { - if (!other.address_.isEmpty()) { - if (addressBuilder_.isEmpty()) { - addressBuilder_.dispose(); - addressBuilder_ = null; - address_ = other.address_; - bitField0_ = (bitField0_ & ~0x00000008); - addressBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getAddressFieldBuilder() : null; - } else { - addressBuilder_.addAllMessages(other.address_); - } - } - } - if (other.hasAvatar()) { - mergeAvatar(other.getAvatar()); - } - if (other.hasOrganization()) { - bitField0_ |= 0x00000020; - organization_ = other.organization_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.DataMessage.Contact.Name name = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name name_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder> nameBuilder_; - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name getName() { - if (nameBuilder_ == null) { - return name_; - } else { - return nameBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public Builder setName(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name value) { - if (nameBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - name_ = value; - onChanged(); - } else { - nameBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public Builder setName( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder builderForValue) { - if (nameBuilder_ == null) { - name_ = builderForValue.build(); - onChanged(); - } else { - nameBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public Builder mergeName(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name value) { - if (nameBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - name_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance()) { - name_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.newBuilder(name_).mergeFrom(value).buildPartial(); - } else { - name_ = value; - } - onChanged(); - } else { - nameBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public Builder clearName() { - if (nameBuilder_ == null) { - name_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.getDefaultInstance(); - onChanged(); - } else { - nameBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder getNameBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getNameFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder getNameOrBuilder() { - if (nameBuilder_ != null) { - return nameBuilder_.getMessageOrBuilder(); - } else { - return name_; - } - } - /** - * optional .signalservice.DataMessage.Contact.Name name = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder> - getNameFieldBuilder() { - if (nameBuilder_ == null) { - nameBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Name.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.NameOrBuilder>( - name_, - getParentForChildren(), - isClean()); - name_ = null; - } - return nameBuilder_; - } - - // repeated .signalservice.DataMessage.Contact.Phone number = 3; - private java.util.List number_ = - java.util.Collections.emptyList(); - private void ensureNumberIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - number_ = new java.util.ArrayList(number_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder> numberBuilder_; - - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public java.util.List getNumberList() { - if (numberBuilder_ == null) { - return java.util.Collections.unmodifiableList(number_); - } else { - return numberBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public int getNumberCount() { - if (numberBuilder_ == null) { - return number_.size(); - } else { - return numberBuilder_.getCount(); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone getNumber(int index) { - if (numberBuilder_ == null) { - return number_.get(index); - } else { - return numberBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder setNumber( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone value) { - if (numberBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumberIsMutable(); - number_.set(index, value); - onChanged(); - } else { - numberBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder setNumber( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder builderForValue) { - if (numberBuilder_ == null) { - ensureNumberIsMutable(); - number_.set(index, builderForValue.build()); - onChanged(); - } else { - numberBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder addNumber(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone value) { - if (numberBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumberIsMutable(); - number_.add(value); - onChanged(); - } else { - numberBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder addNumber( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone value) { - if (numberBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumberIsMutable(); - number_.add(index, value); - onChanged(); - } else { - numberBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder addNumber( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder builderForValue) { - if (numberBuilder_ == null) { - ensureNumberIsMutable(); - number_.add(builderForValue.build()); - onChanged(); - } else { - numberBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder addNumber( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder builderForValue) { - if (numberBuilder_ == null) { - ensureNumberIsMutable(); - number_.add(index, builderForValue.build()); - onChanged(); - } else { - numberBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder addAllNumber( - java.lang.Iterable values) { - if (numberBuilder_ == null) { - ensureNumberIsMutable(); - super.addAll(values, number_); - onChanged(); - } else { - numberBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder clearNumber() { - if (numberBuilder_ == null) { - number_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - numberBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public Builder removeNumber(int index) { - if (numberBuilder_ == null) { - ensureNumberIsMutable(); - number_.remove(index); - onChanged(); - } else { - numberBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder getNumberBuilder( - int index) { - return getNumberFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder getNumberOrBuilder( - int index) { - if (numberBuilder_ == null) { - return number_.get(index); } else { - return numberBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public java.util.List - getNumberOrBuilderList() { - if (numberBuilder_ != null) { - return numberBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(number_); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder addNumberBuilder() { - return getNumberFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder addNumberBuilder( - int index) { - return getNumberFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact.Phone number = 3; - */ - public java.util.List - getNumberBuilderList() { - return getNumberFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder> - getNumberFieldBuilder() { - if (numberBuilder_ == null) { - numberBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Phone.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PhoneOrBuilder>( - number_, - ((bitField0_ & 0x00000002) == 0x00000002), - getParentForChildren(), - isClean()); - number_ = null; - } - return numberBuilder_; - } - - // repeated .signalservice.DataMessage.Contact.Email email = 4; - private java.util.List email_ = - java.util.Collections.emptyList(); - private void ensureEmailIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { - email_ = new java.util.ArrayList(email_); - bitField0_ |= 0x00000004; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder> emailBuilder_; - - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public java.util.List getEmailList() { - if (emailBuilder_ == null) { - return java.util.Collections.unmodifiableList(email_); - } else { - return emailBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public int getEmailCount() { - if (emailBuilder_ == null) { - return email_.size(); - } else { - return emailBuilder_.getCount(); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email getEmail(int index) { - if (emailBuilder_ == null) { - return email_.get(index); - } else { - return emailBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder setEmail( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email value) { - if (emailBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEmailIsMutable(); - email_.set(index, value); - onChanged(); - } else { - emailBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder setEmail( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder builderForValue) { - if (emailBuilder_ == null) { - ensureEmailIsMutable(); - email_.set(index, builderForValue.build()); - onChanged(); - } else { - emailBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder addEmail(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email value) { - if (emailBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEmailIsMutable(); - email_.add(value); - onChanged(); - } else { - emailBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder addEmail( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email value) { - if (emailBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEmailIsMutable(); - email_.add(index, value); - onChanged(); - } else { - emailBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder addEmail( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder builderForValue) { - if (emailBuilder_ == null) { - ensureEmailIsMutable(); - email_.add(builderForValue.build()); - onChanged(); - } else { - emailBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder addEmail( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder builderForValue) { - if (emailBuilder_ == null) { - ensureEmailIsMutable(); - email_.add(index, builderForValue.build()); - onChanged(); - } else { - emailBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder addAllEmail( - java.lang.Iterable values) { - if (emailBuilder_ == null) { - ensureEmailIsMutable(); - super.addAll(values, email_); - onChanged(); - } else { - emailBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder clearEmail() { - if (emailBuilder_ == null) { - email_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - } else { - emailBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public Builder removeEmail(int index) { - if (emailBuilder_ == null) { - ensureEmailIsMutable(); - email_.remove(index); - onChanged(); - } else { - emailBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder getEmailBuilder( - int index) { - return getEmailFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder getEmailOrBuilder( - int index) { - if (emailBuilder_ == null) { - return email_.get(index); } else { - return emailBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public java.util.List - getEmailOrBuilderList() { - if (emailBuilder_ != null) { - return emailBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(email_); - } - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder addEmailBuilder() { - return getEmailFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder addEmailBuilder( - int index) { - return getEmailFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact.Email email = 4; - */ - public java.util.List - getEmailBuilderList() { - return getEmailFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder> - getEmailFieldBuilder() { - if (emailBuilder_ == null) { - emailBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Email.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.EmailOrBuilder>( - email_, - ((bitField0_ & 0x00000004) == 0x00000004), - getParentForChildren(), - isClean()); - email_ = null; - } - return emailBuilder_; - } - - // repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - private java.util.List address_ = - java.util.Collections.emptyList(); - private void ensureAddressIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - address_ = new java.util.ArrayList(address_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder> addressBuilder_; - - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public java.util.List getAddressList() { - if (addressBuilder_ == null) { - return java.util.Collections.unmodifiableList(address_); - } else { - return addressBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public int getAddressCount() { - if (addressBuilder_ == null) { - return address_.size(); - } else { - return addressBuilder_.getCount(); - } - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress getAddress(int index) { - if (addressBuilder_ == null) { - return address_.get(index); - } else { - return addressBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder setAddress( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress value) { - if (addressBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAddressIsMutable(); - address_.set(index, value); - onChanged(); - } else { - addressBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder setAddress( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder builderForValue) { - if (addressBuilder_ == null) { - ensureAddressIsMutable(); - address_.set(index, builderForValue.build()); - onChanged(); - } else { - addressBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder addAddress(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress value) { - if (addressBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAddressIsMutable(); - address_.add(value); - onChanged(); - } else { - addressBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder addAddress( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress value) { - if (addressBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAddressIsMutable(); - address_.add(index, value); - onChanged(); - } else { - addressBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder addAddress( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder builderForValue) { - if (addressBuilder_ == null) { - ensureAddressIsMutable(); - address_.add(builderForValue.build()); - onChanged(); - } else { - addressBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder addAddress( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder builderForValue) { - if (addressBuilder_ == null) { - ensureAddressIsMutable(); - address_.add(index, builderForValue.build()); - onChanged(); - } else { - addressBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder addAllAddress( - java.lang.Iterable values) { - if (addressBuilder_ == null) { - ensureAddressIsMutable(); - super.addAll(values, address_); - onChanged(); - } else { - addressBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder clearAddress() { - if (addressBuilder_ == null) { - address_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - addressBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public Builder removeAddress(int index) { - if (addressBuilder_ == null) { - ensureAddressIsMutable(); - address_.remove(index); - onChanged(); - } else { - addressBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder getAddressBuilder( - int index) { - return getAddressFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder getAddressOrBuilder( - int index) { - if (addressBuilder_ == null) { - return address_.get(index); } else { - return addressBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public java.util.List - getAddressOrBuilderList() { - if (addressBuilder_ != null) { - return addressBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(address_); - } - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder addAddressBuilder() { - return getAddressFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder addAddressBuilder( - int index) { - return getAddressFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact.PostalAddress address = 5; - */ - public java.util.List - getAddressBuilderList() { - return getAddressFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder> - getAddressFieldBuilder() { - if (addressBuilder_ == null) { - addressBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddress.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.PostalAddressOrBuilder>( - address_, - ((bitField0_ & 0x00000008) == 0x00000008), - getParentForChildren(), - isClean()); - address_ = null; - } - return addressBuilder_; - } - - // optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder> avatarBuilder_; - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar getAvatar() { - if (avatarBuilder_ == null) { - return avatar_; - } else { - return avatarBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public Builder setAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar value) { - if (avatarBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatar_ = value; - onChanged(); - } else { - avatarBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public Builder setAvatar( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder builderForValue) { - if (avatarBuilder_ == null) { - avatar_ = builderForValue.build(); - onChanged(); - } else { - avatarBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public Builder mergeAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar value) { - if (avatarBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010) && - avatar_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance()) { - avatar_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.newBuilder(avatar_).mergeFrom(value).buildPartial(); - } else { - avatar_ = value; - } - onChanged(); - } else { - avatarBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public Builder clearAvatar() { - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.getDefaultInstance(); - onChanged(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder getAvatarBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getAvatarFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder getAvatarOrBuilder() { - if (avatarBuilder_ != null) { - return avatarBuilder_.getMessageOrBuilder(); - } else { - return avatar_; - } - } - /** - * optional .signalservice.DataMessage.Contact.Avatar avatar = 6; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder> - getAvatarFieldBuilder() { - if (avatarBuilder_ == null) { - avatarBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.AvatarOrBuilder>( - avatar_, - getParentForChildren(), - isClean()); - avatar_ = null; - } - return avatarBuilder_; - } - - // optional string organization = 7; - private java.lang.Object organization_ = ""; - /** - * optional string organization = 7; - */ - public boolean hasOrganization() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional string organization = 7; - */ - public java.lang.String getOrganization() { - java.lang.Object ref = organization_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - organization_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string organization = 7; - */ - public com.google.protobuf.ByteString - getOrganizationBytes() { - java.lang.Object ref = organization_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - organization_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string organization = 7; - */ - public Builder setOrganization( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - organization_ = value; - onChanged(); - return this; - } - /** - * optional string organization = 7; - */ - public Builder clearOrganization() { - bitField0_ = (bitField0_ & ~0x00000020); - organization_ = getDefaultInstance().getOrganization(); - onChanged(); - return this; - } - /** - * optional string organization = 7; - */ - public Builder setOrganizationBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - organization_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Contact) - } - - static { - defaultInstance = new Contact(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Contact) - } - - public interface PreviewOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string url = 1; - /** - * optional string url = 1; - */ - boolean hasUrl(); - /** - * optional string url = 1; - */ - java.lang.String getUrl(); - /** - * optional string url = 1; - */ - com.google.protobuf.ByteString - getUrlBytes(); - - // optional string title = 2; - /** - * optional string title = 2; - */ - boolean hasTitle(); - /** - * optional string title = 2; - */ - java.lang.String getTitle(); - /** - * optional string title = 2; - */ - com.google.protobuf.ByteString - getTitleBytes(); - - // optional .signalservice.AttachmentPointer image = 3; - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - boolean hasImage(); - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getImage(); - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getImageOrBuilder(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Preview} - */ - public static final class Preview extends - com.google.protobuf.GeneratedMessage - implements PreviewOrBuilder { - // Use Preview.newBuilder() to construct. - private Preview(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Preview(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Preview defaultInstance; - public static Preview getDefaultInstance() { - return defaultInstance; - } - - public Preview getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Preview( - 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; - url_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - title_ = input.readBytes(); - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = image_.toBuilder(); - } - image_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(image_); - image_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Preview_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Preview_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Preview parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Preview(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string url = 1; - public static final int URL_FIELD_NUMBER = 1; - private java.lang.Object url_; - /** - * optional string url = 1; - */ - public boolean hasUrl() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string url = 1; - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - url_ = s; - } - return s; - } - } - /** - * optional string url = 1; - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string title = 2; - public static final int TITLE_FIELD_NUMBER = 2; - private java.lang.Object title_; - /** - * optional string title = 2; - */ - public boolean hasTitle() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string title = 2; - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - title_ = s; - } - return s; - } - } - /** - * optional string title = 2; - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.AttachmentPointer image = 3; - public static final int IMAGE_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer image_; - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public boolean hasImage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getImage() { - return image_; - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getImageOrBuilder() { - return image_; - } - - private void initFields() { - url_ = ""; - title_ = ""; - image_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } - 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, getUrlBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getTitleBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, image_); - } - 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, getUrlBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getTitleBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, image_); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview 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 signalservice.DataMessage.Preview} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Preview_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Preview_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getImageFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - url_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - title_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - if (imageBuilder_ == null) { - image_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - imageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Preview_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.url_ = url_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.title_ = title_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (imageBuilder_ == null) { - result.image_ = image_; - } else { - result.image_ = imageBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.getDefaultInstance()) return this; - if (other.hasUrl()) { - bitField0_ |= 0x00000001; - url_ = other.url_; - onChanged(); - } - if (other.hasTitle()) { - bitField0_ |= 0x00000002; - title_ = other.title_; - onChanged(); - } - if (other.hasImage()) { - mergeImage(other.getImage()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string url = 1; - private java.lang.Object url_ = ""; - /** - * optional string url = 1; - */ - public boolean hasUrl() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string url = 1; - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - url_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string url = 1; - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string url = 1; - */ - public Builder setUrl( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - url_ = value; - onChanged(); - return this; - } - /** - * optional string url = 1; - */ - public Builder clearUrl() { - bitField0_ = (bitField0_ & ~0x00000001); - url_ = getDefaultInstance().getUrl(); - onChanged(); - return this; - } - /** - * optional string url = 1; - */ - public Builder setUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - url_ = value; - onChanged(); - return this; - } - - // optional string title = 2; - private java.lang.Object title_ = ""; - /** - * optional string title = 2; - */ - public boolean hasTitle() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string title = 2; - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - title_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string title = 2; - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string title = 2; - */ - public Builder setTitle( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - title_ = value; - onChanged(); - return this; - } - /** - * optional string title = 2; - */ - public Builder clearTitle() { - bitField0_ = (bitField0_ & ~0x00000002); - title_ = getDefaultInstance().getTitle(); - onChanged(); - return this; - } - /** - * optional string title = 2; - */ - public Builder setTitleBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - title_ = value; - onChanged(); - return this; - } - - // optional .signalservice.AttachmentPointer image = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer image_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> imageBuilder_; - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public boolean hasImage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getImage() { - if (imageBuilder_ == null) { - return image_; - } else { - return imageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public Builder setImage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (imageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - image_ = value; - onChanged(); - } else { - imageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public Builder setImage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (imageBuilder_ == null) { - image_ = builderForValue.build(); - onChanged(); - } else { - imageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public Builder mergeImage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (imageBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - image_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - image_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(image_).mergeFrom(value).buildPartial(); - } else { - image_ = value; - } - onChanged(); - } else { - imageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public Builder clearImage() { - if (imageBuilder_ == null) { - image_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - imageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getImageBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getImageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getImageOrBuilder() { - if (imageBuilder_ != null) { - return imageBuilder_.getMessageOrBuilder(); - } else { - return image_; - } - } - /** - * optional .signalservice.AttachmentPointer image = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getImageFieldBuilder() { - if (imageBuilder_ == null) { - imageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - image_, - getParentForChildren(), - isClean()); - image_ = null; - } - return imageBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Preview) - } - - static { - defaultInstance = new Preview(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Preview) - } - - public interface StickerOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes packId = 1; - /** - * optional bytes packId = 1; - */ - boolean hasPackId(); - /** - * optional bytes packId = 1; - */ - com.google.protobuf.ByteString getPackId(); - - // optional bytes packKey = 2; - /** - * optional bytes packKey = 2; - */ - boolean hasPackKey(); - /** - * optional bytes packKey = 2; - */ - com.google.protobuf.ByteString getPackKey(); - - // optional uint32 stickerId = 3; - /** - * optional uint32 stickerId = 3; - */ - boolean hasStickerId(); - /** - * optional uint32 stickerId = 3; - */ - int getStickerId(); - - // optional .signalservice.AttachmentPointer data = 4; - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - boolean hasData(); - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getData(); - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getDataOrBuilder(); - } - /** - * Protobuf type {@code signalservice.DataMessage.Sticker} - */ - public static final class Sticker extends - com.google.protobuf.GeneratedMessage - implements StickerOrBuilder { - // Use Sticker.newBuilder() to construct. - private Sticker(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Sticker(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Sticker defaultInstance; - public static Sticker getDefaultInstance() { - return defaultInstance; - } - - public Sticker getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Sticker( - 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; - packId_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - packKey_ = input.readBytes(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - stickerId_ = input.readUInt32(); - break; - } - case 34: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - subBuilder = data_.toBuilder(); - } - data_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(data_); - data_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000008; - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Sticker_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Sticker_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Sticker parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Sticker(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes packId = 1; - public static final int PACKID_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString packId_; - /** - * optional bytes packId = 1; - */ - public boolean hasPackId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes packId = 1; - */ - public com.google.protobuf.ByteString getPackId() { - return packId_; - } - - // optional bytes packKey = 2; - public static final int PACKKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString packKey_; - /** - * optional bytes packKey = 2; - */ - public boolean hasPackKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes packKey = 2; - */ - public com.google.protobuf.ByteString getPackKey() { - return packKey_; - } - - // optional uint32 stickerId = 3; - public static final int STICKERID_FIELD_NUMBER = 3; - private int stickerId_; - /** - * optional uint32 stickerId = 3; - */ - public boolean hasStickerId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 stickerId = 3; - */ - public int getStickerId() { - return stickerId_; - } - - // optional .signalservice.AttachmentPointer data = 4; - public static final int DATA_FIELD_NUMBER = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer data_; - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public boolean hasData() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getData() { - return data_; - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getDataOrBuilder() { - return data_; - } - - private void initFields() { - packId_ = com.google.protobuf.ByteString.EMPTY; - packKey_ = com.google.protobuf.ByteString.EMPTY; - stickerId_ = 0; - data_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } - 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, packId_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, packKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(3, stickerId_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeMessage(4, data_); - } - 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, packId_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, packKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, stickerId_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, data_); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker 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 signalservice.DataMessage.Sticker} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Sticker_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Sticker_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getDataFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - packId_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - packKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - stickerId_ = 0; - bitField0_ = (bitField0_ & ~0x00000004); - if (dataBuilder_ == null) { - data_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - dataBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_Sticker_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.packId_ = packId_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.packKey_ = packKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.stickerId_ = stickerId_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - if (dataBuilder_ == null) { - result.data_ = data_; - } else { - result.data_ = dataBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance()) return this; - if (other.hasPackId()) { - setPackId(other.getPackId()); - } - if (other.hasPackKey()) { - setPackKey(other.getPackKey()); - } - if (other.hasStickerId()) { - setStickerId(other.getStickerId()); - } - if (other.hasData()) { - mergeData(other.getData()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes packId = 1; - private com.google.protobuf.ByteString packId_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes packId = 1; - */ - public boolean hasPackId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes packId = 1; - */ - public com.google.protobuf.ByteString getPackId() { - return packId_; - } - /** - * optional bytes packId = 1; - */ - public Builder setPackId(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - packId_ = value; - onChanged(); - return this; - } - /** - * optional bytes packId = 1; - */ - public Builder clearPackId() { - bitField0_ = (bitField0_ & ~0x00000001); - packId_ = getDefaultInstance().getPackId(); - onChanged(); - return this; - } - - // optional bytes packKey = 2; - private com.google.protobuf.ByteString packKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes packKey = 2; - */ - public boolean hasPackKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes packKey = 2; - */ - public com.google.protobuf.ByteString getPackKey() { - return packKey_; - } - /** - * optional bytes packKey = 2; - */ - public Builder setPackKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - packKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes packKey = 2; - */ - public Builder clearPackKey() { - bitField0_ = (bitField0_ & ~0x00000002); - packKey_ = getDefaultInstance().getPackKey(); - onChanged(); - return this; - } - - // optional uint32 stickerId = 3; - private int stickerId_ ; - /** - * optional uint32 stickerId = 3; - */ - public boolean hasStickerId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 stickerId = 3; - */ - public int getStickerId() { - return stickerId_; - } - /** - * optional uint32 stickerId = 3; - */ - public Builder setStickerId(int value) { - bitField0_ |= 0x00000004; - stickerId_ = value; - onChanged(); - return this; - } - /** - * optional uint32 stickerId = 3; - */ - public Builder clearStickerId() { - bitField0_ = (bitField0_ & ~0x00000004); - stickerId_ = 0; - onChanged(); - return this; - } - - // optional .signalservice.AttachmentPointer data = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer data_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> dataBuilder_; - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public boolean hasData() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getData() { - if (dataBuilder_ == null) { - return data_; - } else { - return dataBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public Builder setData(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (dataBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - data_ = value; - onChanged(); - } else { - dataBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public Builder setData( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (dataBuilder_ == null) { - data_ = builderForValue.build(); - onChanged(); - } else { - dataBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public Builder mergeData(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (dataBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008) && - data_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - data_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(data_).mergeFrom(value).buildPartial(); - } else { - data_ = value; - } - onChanged(); - } else { - dataBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public Builder clearData() { - if (dataBuilder_ == null) { - data_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - dataBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getDataBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getDataFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getDataOrBuilder() { - if (dataBuilder_ != null) { - return dataBuilder_.getMessageOrBuilder(); - } else { - return data_; - } - } - /** - * optional .signalservice.AttachmentPointer data = 4; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getDataFieldBuilder() { - if (dataBuilder_ == null) { - dataBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - data_, - getParentForChildren(), - isClean()); - data_ = null; - } - return dataBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.Sticker) - } - - static { - defaultInstance = new Sticker(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage.Sticker) - } - - private int bitField0_; - // optional string body = 1; - public static final int BODY_FIELD_NUMBER = 1; - private java.lang.Object body_; - /** - * optional string body = 1; - */ - public boolean hasBody() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string body = 1; - */ - public java.lang.String getBody() { - java.lang.Object ref = body_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - body_ = s; - } - return s; - } - } - /** - * optional string body = 1; - */ - public com.google.protobuf.ByteString - getBodyBytes() { - java.lang.Object ref = body_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - body_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated .signalservice.AttachmentPointer attachments = 2; - public static final int ATTACHMENTS_FIELD_NUMBER = 2; - private java.util.List attachments_; - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public java.util.List getAttachmentsList() { - return attachments_; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public java.util.List - getAttachmentsOrBuilderList() { - return attachments_; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public int getAttachmentsCount() { - return attachments_.size(); - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAttachments(int index) { - return attachments_.get(index); - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAttachmentsOrBuilder( - int index) { - return attachments_.get(index); - } - - // optional .signalservice.GroupContext group = 3; - public static final int GROUP_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext group_; - /** - * optional .signalservice.GroupContext group = 3; - */ - public boolean hasGroup() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext getGroup() { - return group_; - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder getGroupOrBuilder() { - return group_; - } - - // optional uint32 flags = 4; - public static final int FLAGS_FIELD_NUMBER = 4; - private int flags_; - /** - * optional uint32 flags = 4; - */ - public boolean hasFlags() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional uint32 flags = 4; - */ - public int getFlags() { - return flags_; - } - - // optional uint32 expireTimer = 5; - public static final int EXPIRETIMER_FIELD_NUMBER = 5; - private int expireTimer_; - /** - * optional uint32 expireTimer = 5; - */ - public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint32 expireTimer = 5; - */ - public int getExpireTimer() { - return expireTimer_; - } - - // optional bytes profileKey = 6; - public static final int PROFILEKEY_FIELD_NUMBER = 6; - private com.google.protobuf.ByteString profileKey_; - /** - * optional bytes profileKey = 6; - */ - public boolean hasProfileKey() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes profileKey = 6; - */ - public com.google.protobuf.ByteString getProfileKey() { - return profileKey_; - } - - // optional uint64 timestamp = 7; - public static final int TIMESTAMP_FIELD_NUMBER = 7; - private long timestamp_; - /** - * optional uint64 timestamp = 7; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional uint64 timestamp = 7; - */ - public long getTimestamp() { - return timestamp_; - } - - // optional .signalservice.DataMessage.Quote quote = 8; - public static final int QUOTE_FIELD_NUMBER = 8; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote quote_; - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public boolean hasQuote() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote getQuote() { - return quote_; - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder getQuoteOrBuilder() { - return quote_; - } - - // repeated .signalservice.DataMessage.Contact contact = 9; - public static final int CONTACT_FIELD_NUMBER = 9; - private java.util.List contact_; - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public java.util.List getContactList() { - return contact_; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public java.util.List - getContactOrBuilderList() { - return contact_; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public int getContactCount() { - return contact_.size(); - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact getContact(int index) { - return contact_.get(index); - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder getContactOrBuilder( - int index) { - return contact_.get(index); - } - - // repeated .signalservice.DataMessage.Preview preview = 10; - public static final int PREVIEW_FIELD_NUMBER = 10; - private java.util.List preview_; - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public java.util.List getPreviewList() { - return preview_; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public java.util.List - getPreviewOrBuilderList() { - return preview_; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public int getPreviewCount() { - return preview_.size(); - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview getPreview(int index) { - return preview_.get(index); - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder getPreviewOrBuilder( - int index) { - return preview_.get(index); - } - - // optional .signalservice.DataMessage.Sticker sticker = 11; - public static final int STICKER_FIELD_NUMBER = 11; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker sticker_; - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public boolean hasSticker() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker getSticker() { - return sticker_; - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder getStickerOrBuilder() { - return sticker_; - } - - // optional .signalservice.LokiUserProfile profile = 101; - public static final int PROFILE_FIELD_NUMBER = 101; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile profile_; - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-     * Loki - The profile of the current user
-     * 
- */ - public boolean hasProfile() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-     * Loki - The profile of the current user
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile getProfile() { - return profile_; - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-     * Loki - The profile of the current user
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder getProfileOrBuilder() { - return profile_; - } - - // optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - public static final int CLOSEDGROUPUPDATE_FIELD_NUMBER = 103; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate closedGroupUpdate_; - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-     * Loki
-     * 
- */ - public boolean hasClosedGroupUpdate() { - return ((bitField0_ & 0x00000200) == 0x00000200); - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-     * Loki
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate getClosedGroupUpdate() { - return closedGroupUpdate_; - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-     * Loki
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder getClosedGroupUpdateOrBuilder() { - return closedGroupUpdate_; - } - - private void initFields() { - body_ = ""; - attachments_ = java.util.Collections.emptyList(); - group_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance(); - flags_ = 0; - expireTimer_ = 0; - profileKey_ = com.google.protobuf.ByteString.EMPTY; - timestamp_ = 0L; - quote_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance(); - contact_ = java.util.Collections.emptyList(); - preview_ = java.util.Collections.emptyList(); - sticker_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance(); - profile_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance(); - closedGroupUpdate_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance(); - } - 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, getBodyBytes()); - } - for (int i = 0; i < attachments_.size(); i++) { - output.writeMessage(2, attachments_.get(i)); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(3, group_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(4, flags_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeUInt32(5, expireTimer_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(6, profileKey_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeUInt64(7, timestamp_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeMessage(8, quote_); - } - for (int i = 0; i < contact_.size(); i++) { - output.writeMessage(9, contact_.get(i)); - } - for (int i = 0; i < preview_.size(); i++) { - output.writeMessage(10, preview_.get(i)); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeMessage(11, sticker_); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - output.writeMessage(101, profile_); - } - if (((bitField0_ & 0x00000200) == 0x00000200)) { - output.writeMessage(103, closedGroupUpdate_); - } - 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, getBodyBytes()); - } - for (int i = 0; i < attachments_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, attachments_.get(i)); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, group_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, flags_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, expireTimer_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, profileKey_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(7, timestamp_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, quote_); - } - for (int i = 0; i < contact_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, contact_.get(i)); - } - for (int i = 0; i < preview_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, preview_.get(i)); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(11, sticker_); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(101, profile_); - } - if (((bitField0_ & 0x00000200) == 0x00000200)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(103, closedGroupUpdate_); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage 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.signalservice.internal.push.SignalServiceProtos.DataMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage 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.signalservice.internal.push.SignalServiceProtos.DataMessage 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 signalservice.DataMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getAttachmentsFieldBuilder(); - getGroupFieldBuilder(); - getQuoteFieldBuilder(); - getContactFieldBuilder(); - getPreviewFieldBuilder(); - getStickerFieldBuilder(); - getProfileFieldBuilder(); - getClosedGroupUpdateFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - body_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - if (attachmentsBuilder_ == null) { - attachments_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - attachmentsBuilder_.clear(); - } - if (groupBuilder_ == null) { - group_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance(); - } else { - groupBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - flags_ = 0; - bitField0_ = (bitField0_ & ~0x00000008); - expireTimer_ = 0; - bitField0_ = (bitField0_ & ~0x00000010); - profileKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - timestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000040); - if (quoteBuilder_ == null) { - quote_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance(); - } else { - quoteBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - if (contactBuilder_ == null) { - contact_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000100); - } else { - contactBuilder_.clear(); - } - if (previewBuilder_ == null) { - preview_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000200); - } else { - previewBuilder_.clear(); - } - if (stickerBuilder_ == null) { - sticker_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance(); - } else { - stickerBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000400); - if (profileBuilder_ == null) { - profile_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance(); - } else { - profileBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000800); - if (closedGroupUpdateBuilder_ == null) { - closedGroupUpdate_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance(); - } else { - closedGroupUpdateBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00001000); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_DataMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.body_ = body_; - if (attachmentsBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002)) { - attachments_ = java.util.Collections.unmodifiableList(attachments_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.attachments_ = attachments_; - } else { - result.attachments_ = attachmentsBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000002; - } - if (groupBuilder_ == null) { - result.group_ = group_; - } else { - result.group_ = groupBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000004; - } - result.flags_ = flags_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000008; - } - result.expireTimer_ = expireTimer_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000010; - } - result.profileKey_ = profileKey_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000020; - } - result.timestamp_ = timestamp_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000040; - } - if (quoteBuilder_ == null) { - result.quote_ = quote_; - } else { - result.quote_ = quoteBuilder_.build(); - } - if (contactBuilder_ == null) { - if (((bitField0_ & 0x00000100) == 0x00000100)) { - contact_ = java.util.Collections.unmodifiableList(contact_); - bitField0_ = (bitField0_ & ~0x00000100); - } - result.contact_ = contact_; - } else { - result.contact_ = contactBuilder_.build(); - } - if (previewBuilder_ == null) { - if (((bitField0_ & 0x00000200) == 0x00000200)) { - preview_ = java.util.Collections.unmodifiableList(preview_); - bitField0_ = (bitField0_ & ~0x00000200); - } - result.preview_ = preview_; - } else { - result.preview_ = previewBuilder_.build(); - } - if (((from_bitField0_ & 0x00000400) == 0x00000400)) { - to_bitField0_ |= 0x00000080; - } - if (stickerBuilder_ == null) { - result.sticker_ = sticker_; - } else { - result.sticker_ = stickerBuilder_.build(); - } - if (((from_bitField0_ & 0x00000800) == 0x00000800)) { - to_bitField0_ |= 0x00000100; - } - if (profileBuilder_ == null) { - result.profile_ = profile_; - } else { - result.profile_ = profileBuilder_.build(); - } - if (((from_bitField0_ & 0x00001000) == 0x00001000)) { - to_bitField0_ |= 0x00000200; - } - if (closedGroupUpdateBuilder_ == null) { - result.closedGroupUpdate_ = closedGroupUpdate_; - } else { - result.closedGroupUpdate_ = closedGroupUpdateBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance()) return this; - if (other.hasBody()) { - bitField0_ |= 0x00000001; - body_ = other.body_; - onChanged(); - } - if (attachmentsBuilder_ == null) { - if (!other.attachments_.isEmpty()) { - if (attachments_.isEmpty()) { - attachments_ = other.attachments_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureAttachmentsIsMutable(); - attachments_.addAll(other.attachments_); - } - onChanged(); - } - } else { - if (!other.attachments_.isEmpty()) { - if (attachmentsBuilder_.isEmpty()) { - attachmentsBuilder_.dispose(); - attachmentsBuilder_ = null; - attachments_ = other.attachments_; - bitField0_ = (bitField0_ & ~0x00000002); - attachmentsBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getAttachmentsFieldBuilder() : null; - } else { - attachmentsBuilder_.addAllMessages(other.attachments_); - } - } - } - if (other.hasGroup()) { - mergeGroup(other.getGroup()); - } - if (other.hasFlags()) { - setFlags(other.getFlags()); - } - if (other.hasExpireTimer()) { - setExpireTimer(other.getExpireTimer()); - } - if (other.hasProfileKey()) { - setProfileKey(other.getProfileKey()); - } - if (other.hasTimestamp()) { - setTimestamp(other.getTimestamp()); - } - if (other.hasQuote()) { - mergeQuote(other.getQuote()); - } - if (contactBuilder_ == null) { - if (!other.contact_.isEmpty()) { - if (contact_.isEmpty()) { - contact_ = other.contact_; - bitField0_ = (bitField0_ & ~0x00000100); - } else { - ensureContactIsMutable(); - contact_.addAll(other.contact_); - } - onChanged(); - } - } else { - if (!other.contact_.isEmpty()) { - if (contactBuilder_.isEmpty()) { - contactBuilder_.dispose(); - contactBuilder_ = null; - contact_ = other.contact_; - bitField0_ = (bitField0_ & ~0x00000100); - contactBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getContactFieldBuilder() : null; - } else { - contactBuilder_.addAllMessages(other.contact_); - } - } - } - if (previewBuilder_ == null) { - if (!other.preview_.isEmpty()) { - if (preview_.isEmpty()) { - preview_ = other.preview_; - bitField0_ = (bitField0_ & ~0x00000200); - } else { - ensurePreviewIsMutable(); - preview_.addAll(other.preview_); - } - onChanged(); - } - } else { - if (!other.preview_.isEmpty()) { - if (previewBuilder_.isEmpty()) { - previewBuilder_.dispose(); - previewBuilder_ = null; - preview_ = other.preview_; - bitField0_ = (bitField0_ & ~0x00000200); - previewBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getPreviewFieldBuilder() : null; - } else { - previewBuilder_.addAllMessages(other.preview_); - } - } - } - if (other.hasSticker()) { - mergeSticker(other.getSticker()); - } - if (other.hasProfile()) { - mergeProfile(other.getProfile()); - } - if (other.hasClosedGroupUpdate()) { - mergeClosedGroupUpdate(other.getClosedGroupUpdate()); - } - 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.signalservice.internal.push.SignalServiceProtos.DataMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string body = 1; - private java.lang.Object body_ = ""; - /** - * optional string body = 1; - */ - public boolean hasBody() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string body = 1; - */ - public java.lang.String getBody() { - java.lang.Object ref = body_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - body_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string body = 1; - */ - public com.google.protobuf.ByteString - getBodyBytes() { - java.lang.Object ref = body_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - body_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string body = 1; - */ - public Builder setBody( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - body_ = value; - onChanged(); - return this; - } - /** - * optional string body = 1; - */ - public Builder clearBody() { - bitField0_ = (bitField0_ & ~0x00000001); - body_ = getDefaultInstance().getBody(); - onChanged(); - return this; - } - /** - * optional string body = 1; - */ - public Builder setBodyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - body_ = value; - onChanged(); - return this; - } - - // repeated .signalservice.AttachmentPointer attachments = 2; - private java.util.List attachments_ = - java.util.Collections.emptyList(); - private void ensureAttachmentsIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - attachments_ = new java.util.ArrayList(attachments_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> attachmentsBuilder_; - - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public java.util.List getAttachmentsList() { - if (attachmentsBuilder_ == null) { - return java.util.Collections.unmodifiableList(attachments_); - } else { - return attachmentsBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public int getAttachmentsCount() { - if (attachmentsBuilder_ == null) { - return attachments_.size(); - } else { - return attachmentsBuilder_.getCount(); - } - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAttachments(int index) { - if (attachmentsBuilder_ == null) { - return attachments_.get(index); - } else { - return attachmentsBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder setAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (attachmentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAttachmentsIsMutable(); - attachments_.set(index, value); - onChanged(); - } else { - attachmentsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder setAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.set(index, builderForValue.build()); - onChanged(); - } else { - attachmentsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder addAttachments(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (attachmentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAttachmentsIsMutable(); - attachments_.add(value); - onChanged(); - } else { - attachmentsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder addAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (attachmentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAttachmentsIsMutable(); - attachments_.add(index, value); - onChanged(); - } else { - attachmentsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder addAttachments( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.add(builderForValue.build()); - onChanged(); - } else { - attachmentsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder addAttachments( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.add(index, builderForValue.build()); - onChanged(); - } else { - attachmentsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder addAllAttachments( - java.lang.Iterable values) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - super.addAll(values, attachments_); - onChanged(); - } else { - attachmentsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder clearAttachments() { - if (attachmentsBuilder_ == null) { - attachments_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - attachmentsBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public Builder removeAttachments(int index) { - if (attachmentsBuilder_ == null) { - ensureAttachmentsIsMutable(); - attachments_.remove(index); - onChanged(); - } else { - attachmentsBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getAttachmentsBuilder( - int index) { - return getAttachmentsFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAttachmentsOrBuilder( - int index) { - if (attachmentsBuilder_ == null) { - return attachments_.get(index); } else { - return attachmentsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public java.util.List - getAttachmentsOrBuilderList() { - if (attachmentsBuilder_ != null) { - return attachmentsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(attachments_); - } - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder addAttachmentsBuilder() { - return getAttachmentsFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()); - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder addAttachmentsBuilder( - int index) { - return getAttachmentsFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()); - } - /** - * repeated .signalservice.AttachmentPointer attachments = 2; - */ - public java.util.List - getAttachmentsBuilderList() { - return getAttachmentsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getAttachmentsFieldBuilder() { - if (attachmentsBuilder_ == null) { - attachmentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - attachments_, - ((bitField0_ & 0x00000002) == 0x00000002), - getParentForChildren(), - isClean()); - attachments_ = null; - } - return attachmentsBuilder_; - } - - // optional .signalservice.GroupContext group = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext group_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder> groupBuilder_; - /** - * optional .signalservice.GroupContext group = 3; - */ - public boolean hasGroup() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext getGroup() { - if (groupBuilder_ == null) { - return group_; - } else { - return groupBuilder_.getMessage(); - } - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public Builder setGroup(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext value) { - if (groupBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - group_ = value; - onChanged(); - } else { - groupBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public Builder setGroup( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder builderForValue) { - if (groupBuilder_ == null) { - group_ = builderForValue.build(); - onChanged(); - } else { - groupBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public Builder mergeGroup(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext value) { - if (groupBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - group_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance()) { - group_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.newBuilder(group_).mergeFrom(value).buildPartial(); - } else { - group_ = value; - } - onChanged(); - } else { - groupBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public Builder clearGroup() { - if (groupBuilder_ == null) { - group_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance(); - onChanged(); - } else { - groupBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder getGroupBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getGroupFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.GroupContext group = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder getGroupOrBuilder() { - if (groupBuilder_ != null) { - return groupBuilder_.getMessageOrBuilder(); - } else { - return group_; - } - } - /** - * optional .signalservice.GroupContext group = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder> - getGroupFieldBuilder() { - if (groupBuilder_ == null) { - groupBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder>( - group_, - getParentForChildren(), - isClean()); - group_ = null; - } - return groupBuilder_; - } - - // optional uint32 flags = 4; - private int flags_ ; - /** - * optional uint32 flags = 4; - */ - public boolean hasFlags() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint32 flags = 4; - */ - public int getFlags() { - return flags_; - } - /** - * optional uint32 flags = 4; - */ - public Builder setFlags(int value) { - bitField0_ |= 0x00000008; - flags_ = value; - onChanged(); - return this; - } - /** - * optional uint32 flags = 4; - */ - public Builder clearFlags() { - bitField0_ = (bitField0_ & ~0x00000008); - flags_ = 0; - onChanged(); - return this; - } - - // optional uint32 expireTimer = 5; - private int expireTimer_ ; - /** - * optional uint32 expireTimer = 5; - */ - public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint32 expireTimer = 5; - */ - public int getExpireTimer() { - return expireTimer_; - } - /** - * optional uint32 expireTimer = 5; - */ - public Builder setExpireTimer(int value) { - bitField0_ |= 0x00000010; - expireTimer_ = value; - onChanged(); - return this; - } - /** - * optional uint32 expireTimer = 5; - */ - public Builder clearExpireTimer() { - bitField0_ = (bitField0_ & ~0x00000010); - expireTimer_ = 0; - onChanged(); - return this; - } - - // optional bytes profileKey = 6; - private com.google.protobuf.ByteString profileKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes profileKey = 6; - */ - public boolean hasProfileKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes profileKey = 6; - */ - public com.google.protobuf.ByteString getProfileKey() { - return profileKey_; - } - /** - * optional bytes profileKey = 6; - */ - public Builder setProfileKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - profileKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes profileKey = 6; - */ - public Builder clearProfileKey() { - bitField0_ = (bitField0_ & ~0x00000020); - profileKey_ = getDefaultInstance().getProfileKey(); - onChanged(); - return this; - } - - // optional uint64 timestamp = 7; - private long timestamp_ ; - /** - * optional uint64 timestamp = 7; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional uint64 timestamp = 7; - */ - public long getTimestamp() { - return timestamp_; - } - /** - * optional uint64 timestamp = 7; - */ - public Builder setTimestamp(long value) { - bitField0_ |= 0x00000040; - timestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 timestamp = 7; - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000040); - timestamp_ = 0L; - onChanged(); - return this; - } - - // optional .signalservice.DataMessage.Quote quote = 8; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote quote_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder> quoteBuilder_; - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public boolean hasQuote() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote getQuote() { - if (quoteBuilder_ == null) { - return quote_; - } else { - return quoteBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public Builder setQuote(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote value) { - if (quoteBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - quote_ = value; - onChanged(); - } else { - quoteBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public Builder setQuote( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder builderForValue) { - if (quoteBuilder_ == null) { - quote_ = builderForValue.build(); - onChanged(); - } else { - quoteBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public Builder mergeQuote(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote value) { - if (quoteBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080) && - quote_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance()) { - quote_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.newBuilder(quote_).mergeFrom(value).buildPartial(); - } else { - quote_ = value; - } - onChanged(); - } else { - quoteBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public Builder clearQuote() { - if (quoteBuilder_ == null) { - quote_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.getDefaultInstance(); - onChanged(); - } else { - quoteBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - return this; - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder getQuoteBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getQuoteFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder getQuoteOrBuilder() { - if (quoteBuilder_ != null) { - return quoteBuilder_.getMessageOrBuilder(); - } else { - return quote_; - } - } - /** - * optional .signalservice.DataMessage.Quote quote = 8; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder> - getQuoteFieldBuilder() { - if (quoteBuilder_ == null) { - quoteBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Quote.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.QuoteOrBuilder>( - quote_, - getParentForChildren(), - isClean()); - quote_ = null; - } - return quoteBuilder_; - } - - // repeated .signalservice.DataMessage.Contact contact = 9; - private java.util.List contact_ = - java.util.Collections.emptyList(); - private void ensureContactIsMutable() { - if (!((bitField0_ & 0x00000100) == 0x00000100)) { - contact_ = new java.util.ArrayList(contact_); - bitField0_ |= 0x00000100; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder> contactBuilder_; - - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public java.util.List getContactList() { - if (contactBuilder_ == null) { - return java.util.Collections.unmodifiableList(contact_); - } else { - return contactBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public int getContactCount() { - if (contactBuilder_ == null) { - return contact_.size(); - } else { - return contactBuilder_.getCount(); - } - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact getContact(int index) { - if (contactBuilder_ == null) { - return contact_.get(index); - } else { - return contactBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder setContact( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact value) { - if (contactBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContactIsMutable(); - contact_.set(index, value); - onChanged(); - } else { - contactBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder setContact( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder builderForValue) { - if (contactBuilder_ == null) { - ensureContactIsMutable(); - contact_.set(index, builderForValue.build()); - onChanged(); - } else { - contactBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder addContact(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact value) { - if (contactBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContactIsMutable(); - contact_.add(value); - onChanged(); - } else { - contactBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder addContact( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact value) { - if (contactBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContactIsMutable(); - contact_.add(index, value); - onChanged(); - } else { - contactBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder addContact( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder builderForValue) { - if (contactBuilder_ == null) { - ensureContactIsMutable(); - contact_.add(builderForValue.build()); - onChanged(); - } else { - contactBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder addContact( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder builderForValue) { - if (contactBuilder_ == null) { - ensureContactIsMutable(); - contact_.add(index, builderForValue.build()); - onChanged(); - } else { - contactBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder addAllContact( - java.lang.Iterable values) { - if (contactBuilder_ == null) { - ensureContactIsMutable(); - super.addAll(values, contact_); - onChanged(); - } else { - contactBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder clearContact() { - if (contactBuilder_ == null) { - contact_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000100); - onChanged(); - } else { - contactBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public Builder removeContact(int index) { - if (contactBuilder_ == null) { - ensureContactIsMutable(); - contact_.remove(index); - onChanged(); - } else { - contactBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder getContactBuilder( - int index) { - return getContactFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder getContactOrBuilder( - int index) { - if (contactBuilder_ == null) { - return contact_.get(index); } else { - return contactBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public java.util.List - getContactOrBuilderList() { - if (contactBuilder_ != null) { - return contactBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(contact_); - } - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder addContactBuilder() { - return getContactFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder addContactBuilder( - int index) { - return getContactFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Contact contact = 9; - */ - public java.util.List - getContactBuilderList() { - return getContactFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder> - getContactFieldBuilder() { - if (contactBuilder_ == null) { - contactBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Contact.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.ContactOrBuilder>( - contact_, - ((bitField0_ & 0x00000100) == 0x00000100), - getParentForChildren(), - isClean()); - contact_ = null; - } - return contactBuilder_; - } - - // repeated .signalservice.DataMessage.Preview preview = 10; - private java.util.List preview_ = - java.util.Collections.emptyList(); - private void ensurePreviewIsMutable() { - if (!((bitField0_ & 0x00000200) == 0x00000200)) { - preview_ = new java.util.ArrayList(preview_); - bitField0_ |= 0x00000200; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder> previewBuilder_; - - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public java.util.List getPreviewList() { - if (previewBuilder_ == null) { - return java.util.Collections.unmodifiableList(preview_); - } else { - return previewBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public int getPreviewCount() { - if (previewBuilder_ == null) { - return preview_.size(); - } else { - return previewBuilder_.getCount(); - } - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview getPreview(int index) { - if (previewBuilder_ == null) { - return preview_.get(index); - } else { - return previewBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder setPreview( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview value) { - if (previewBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePreviewIsMutable(); - preview_.set(index, value); - onChanged(); - } else { - previewBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder setPreview( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder builderForValue) { - if (previewBuilder_ == null) { - ensurePreviewIsMutable(); - preview_.set(index, builderForValue.build()); - onChanged(); - } else { - previewBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder addPreview(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview value) { - if (previewBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePreviewIsMutable(); - preview_.add(value); - onChanged(); - } else { - previewBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder addPreview( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview value) { - if (previewBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePreviewIsMutable(); - preview_.add(index, value); - onChanged(); - } else { - previewBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder addPreview( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder builderForValue) { - if (previewBuilder_ == null) { - ensurePreviewIsMutable(); - preview_.add(builderForValue.build()); - onChanged(); - } else { - previewBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder addPreview( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder builderForValue) { - if (previewBuilder_ == null) { - ensurePreviewIsMutable(); - preview_.add(index, builderForValue.build()); - onChanged(); - } else { - previewBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder addAllPreview( - java.lang.Iterable values) { - if (previewBuilder_ == null) { - ensurePreviewIsMutable(); - super.addAll(values, preview_); - onChanged(); - } else { - previewBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder clearPreview() { - if (previewBuilder_ == null) { - preview_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000200); - onChanged(); - } else { - previewBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public Builder removePreview(int index) { - if (previewBuilder_ == null) { - ensurePreviewIsMutable(); - preview_.remove(index); - onChanged(); - } else { - previewBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder getPreviewBuilder( - int index) { - return getPreviewFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder getPreviewOrBuilder( - int index) { - if (previewBuilder_ == null) { - return preview_.get(index); } else { - return previewBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public java.util.List - getPreviewOrBuilderList() { - if (previewBuilder_ != null) { - return previewBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(preview_); - } - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder addPreviewBuilder() { - return getPreviewFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder addPreviewBuilder( - int index) { - return getPreviewFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.getDefaultInstance()); - } - /** - * repeated .signalservice.DataMessage.Preview preview = 10; - */ - public java.util.List - getPreviewBuilderList() { - return getPreviewFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder> - getPreviewFieldBuilder() { - if (previewBuilder_ == null) { - previewBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Preview.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PreviewOrBuilder>( - preview_, - ((bitField0_ & 0x00000200) == 0x00000200), - getParentForChildren(), - isClean()); - preview_ = null; - } - return previewBuilder_; - } - - // optional .signalservice.DataMessage.Sticker sticker = 11; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker sticker_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder> stickerBuilder_; - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public boolean hasSticker() { - return ((bitField0_ & 0x00000400) == 0x00000400); - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker getSticker() { - if (stickerBuilder_ == null) { - return sticker_; - } else { - return stickerBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public Builder setSticker(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker value) { - if (stickerBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - sticker_ = value; - onChanged(); - } else { - stickerBuilder_.setMessage(value); - } - bitField0_ |= 0x00000400; - return this; - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public Builder setSticker( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder builderForValue) { - if (stickerBuilder_ == null) { - sticker_ = builderForValue.build(); - onChanged(); - } else { - stickerBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000400; - return this; - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public Builder mergeSticker(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker value) { - if (stickerBuilder_ == null) { - if (((bitField0_ & 0x00000400) == 0x00000400) && - sticker_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance()) { - sticker_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.newBuilder(sticker_).mergeFrom(value).buildPartial(); - } else { - sticker_ = value; - } - onChanged(); - } else { - stickerBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000400; - return this; - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public Builder clearSticker() { - if (stickerBuilder_ == null) { - sticker_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.getDefaultInstance(); - onChanged(); - } else { - stickerBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000400); - return this; - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder getStickerBuilder() { - bitField0_ |= 0x00000400; - onChanged(); - return getStickerFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder getStickerOrBuilder() { - if (stickerBuilder_ != null) { - return stickerBuilder_.getMessageOrBuilder(); - } else { - return sticker_; - } - } - /** - * optional .signalservice.DataMessage.Sticker sticker = 11; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder> - getStickerFieldBuilder() { - if (stickerBuilder_ == null) { - stickerBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Sticker.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.StickerOrBuilder>( - sticker_, - getParentForChildren(), - isClean()); - sticker_ = null; - } - return stickerBuilder_; - } - - // optional .signalservice.LokiUserProfile profile = 101; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile profile_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder> profileBuilder_; - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public boolean hasProfile() { - return ((bitField0_ & 0x00000800) == 0x00000800); - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile getProfile() { - if (profileBuilder_ == null) { - return profile_; - } else { - return profileBuilder_.getMessage(); - } - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public Builder setProfile(org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile value) { - if (profileBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - profile_ = value; - onChanged(); - } else { - profileBuilder_.setMessage(value); - } - bitField0_ |= 0x00000800; - return this; - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public Builder setProfile( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder builderForValue) { - if (profileBuilder_ == null) { - profile_ = builderForValue.build(); - onChanged(); - } else { - profileBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000800; - return this; - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public Builder mergeProfile(org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile value) { - if (profileBuilder_ == null) { - if (((bitField0_ & 0x00000800) == 0x00000800) && - profile_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance()) { - profile_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.newBuilder(profile_).mergeFrom(value).buildPartial(); - } else { - profile_ = value; - } - onChanged(); - } else { - profileBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000800; - return this; - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public Builder clearProfile() { - if (profileBuilder_ == null) { - profile_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance(); - onChanged(); - } else { - profileBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000800); - return this; - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder getProfileBuilder() { - bitField0_ |= 0x00000800; - onChanged(); - return getProfileFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder getProfileOrBuilder() { - if (profileBuilder_ != null) { - return profileBuilder_.getMessageOrBuilder(); - } else { - return profile_; - } - } - /** - * optional .signalservice.LokiUserProfile profile = 101; - * - *
-       * Loki - The profile of the current user
-       * 
- */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder> - getProfileFieldBuilder() { - if (profileBuilder_ == null) { - profileBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder>( - profile_, - getParentForChildren(), - isClean()); - profile_ = null; - } - return profileBuilder_; - } - - // optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate closedGroupUpdate_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder> closedGroupUpdateBuilder_; - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public boolean hasClosedGroupUpdate() { - return ((bitField0_ & 0x00001000) == 0x00001000); - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate getClosedGroupUpdate() { - if (closedGroupUpdateBuilder_ == null) { - return closedGroupUpdate_; - } else { - return closedGroupUpdateBuilder_.getMessage(); - } - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public Builder setClosedGroupUpdate(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate value) { - if (closedGroupUpdateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - closedGroupUpdate_ = value; - onChanged(); - } else { - closedGroupUpdateBuilder_.setMessage(value); - } - bitField0_ |= 0x00001000; - return this; - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public Builder setClosedGroupUpdate( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder builderForValue) { - if (closedGroupUpdateBuilder_ == null) { - closedGroupUpdate_ = builderForValue.build(); - onChanged(); - } else { - closedGroupUpdateBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00001000; - return this; - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public Builder mergeClosedGroupUpdate(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate value) { - if (closedGroupUpdateBuilder_ == null) { - if (((bitField0_ & 0x00001000) == 0x00001000) && - closedGroupUpdate_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance()) { - closedGroupUpdate_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.newBuilder(closedGroupUpdate_).mergeFrom(value).buildPartial(); - } else { - closedGroupUpdate_ = value; - } - onChanged(); - } else { - closedGroupUpdateBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00001000; - return this; - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public Builder clearClosedGroupUpdate() { - if (closedGroupUpdateBuilder_ == null) { - closedGroupUpdate_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance(); - onChanged(); - } else { - closedGroupUpdateBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00001000); - return this; - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder getClosedGroupUpdateBuilder() { - bitField0_ |= 0x00001000; - onChanged(); - return getClosedGroupUpdateFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder getClosedGroupUpdateOrBuilder() { - if (closedGroupUpdateBuilder_ != null) { - return closedGroupUpdateBuilder_.getMessageOrBuilder(); - } else { - return closedGroupUpdate_; - } - } - /** - * optional .signalservice.ClosedGroupUpdate closedGroupUpdate = 103; - * - *
-       * Loki
-       * 
- */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder> - getClosedGroupUpdateFieldBuilder() { - if (closedGroupUpdateBuilder_ == null) { - closedGroupUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder>( - closedGroupUpdate_, - getParentForChildren(), - isClean()); - closedGroupUpdate_ = null; - } - return closedGroupUpdateBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage) - } - - static { - defaultInstance = new DataMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.DataMessage) - } - - public interface LokiUserProfileOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string displayName = 1; - /** - * optional string displayName = 1; - */ - boolean hasDisplayName(); - /** - * optional string displayName = 1; - */ - java.lang.String getDisplayName(); - /** - * optional string displayName = 1; - */ - com.google.protobuf.ByteString - getDisplayNameBytes(); - - // optional string profilePictureURL = 2; - /** - * optional string profilePictureURL = 2; - */ - boolean hasProfilePictureURL(); - /** - * optional string profilePictureURL = 2; - */ - java.lang.String getProfilePictureURL(); - /** - * optional string profilePictureURL = 2; - */ - com.google.protobuf.ByteString - getProfilePictureURLBytes(); - } - /** - * Protobuf type {@code signalservice.LokiUserProfile} - */ - public static final class LokiUserProfile extends - com.google.protobuf.GeneratedMessage - implements LokiUserProfileOrBuilder { - // Use LokiUserProfile.newBuilder() to construct. - private LokiUserProfile(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private LokiUserProfile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final LokiUserProfile defaultInstance; - public static LokiUserProfile getDefaultInstance() { - return defaultInstance; - } - - public LokiUserProfile getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private LokiUserProfile( - 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; - displayName_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - profilePictureURL_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_LokiUserProfile_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_LokiUserProfile_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public LokiUserProfile parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new LokiUserProfile(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string displayName = 1; - public static final int DISPLAYNAME_FIELD_NUMBER = 1; - private java.lang.Object displayName_; - /** - * optional string displayName = 1; - */ - public boolean hasDisplayName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string displayName = 1; - */ - public java.lang.String getDisplayName() { - java.lang.Object ref = displayName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - displayName_ = s; - } - return s; - } - } - /** - * optional string displayName = 1; - */ - public com.google.protobuf.ByteString - getDisplayNameBytes() { - java.lang.Object ref = displayName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string profilePictureURL = 2; - public static final int PROFILEPICTUREURL_FIELD_NUMBER = 2; - private java.lang.Object profilePictureURL_; - /** - * optional string profilePictureURL = 2; - */ - public boolean hasProfilePictureURL() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string profilePictureURL = 2; - */ - public java.lang.String getProfilePictureURL() { - java.lang.Object ref = profilePictureURL_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - profilePictureURL_ = s; - } - return s; - } - } - /** - * optional string profilePictureURL = 2; - */ - public com.google.protobuf.ByteString - getProfilePictureURLBytes() { - java.lang.Object ref = profilePictureURL_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - profilePictureURL_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - displayName_ = ""; - profilePictureURL_ = ""; - } - 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, getDisplayNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getProfilePictureURLBytes()); - } - 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, getDisplayNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getProfilePictureURLBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile 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.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile 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.signalservice.internal.push.SignalServiceProtos.LokiUserProfile 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 signalservice.LokiUserProfile} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfileOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_LokiUserProfile_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_LokiUserProfile_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.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(); - displayName_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - profilePictureURL_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_LokiUserProfile_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.displayName_ = displayName_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.profilePictureURL_ = profilePictureURL_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile.getDefaultInstance()) return this; - if (other.hasDisplayName()) { - bitField0_ |= 0x00000001; - displayName_ = other.displayName_; - onChanged(); - } - if (other.hasProfilePictureURL()) { - bitField0_ |= 0x00000002; - profilePictureURL_ = other.profilePictureURL_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.LokiUserProfile parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.LokiUserProfile) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string displayName = 1; - private java.lang.Object displayName_ = ""; - /** - * optional string displayName = 1; - */ - public boolean hasDisplayName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string displayName = 1; - */ - public java.lang.String getDisplayName() { - java.lang.Object ref = displayName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - displayName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string displayName = 1; - */ - public com.google.protobuf.ByteString - getDisplayNameBytes() { - java.lang.Object ref = displayName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string displayName = 1; - */ - public Builder setDisplayName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - displayName_ = value; - onChanged(); - return this; - } - /** - * optional string displayName = 1; - */ - public Builder clearDisplayName() { - bitField0_ = (bitField0_ & ~0x00000001); - displayName_ = getDefaultInstance().getDisplayName(); - onChanged(); - return this; - } - /** - * optional string displayName = 1; - */ - public Builder setDisplayNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - displayName_ = value; - onChanged(); - return this; - } - - // optional string profilePictureURL = 2; - private java.lang.Object profilePictureURL_ = ""; - /** - * optional string profilePictureURL = 2; - */ - public boolean hasProfilePictureURL() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string profilePictureURL = 2; - */ - public java.lang.String getProfilePictureURL() { - java.lang.Object ref = profilePictureURL_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - profilePictureURL_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string profilePictureURL = 2; - */ - public com.google.protobuf.ByteString - getProfilePictureURLBytes() { - java.lang.Object ref = profilePictureURL_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - profilePictureURL_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string profilePictureURL = 2; - */ - public Builder setProfilePictureURL( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - profilePictureURL_ = value; - onChanged(); - return this; - } - /** - * optional string profilePictureURL = 2; - */ - public Builder clearProfilePictureURL() { - bitField0_ = (bitField0_ & ~0x00000002); - profilePictureURL_ = getDefaultInstance().getProfilePictureURL(); - onChanged(); - return this; - } - /** - * optional string profilePictureURL = 2; - */ - public Builder setProfilePictureURLBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - profilePictureURL_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.LokiUserProfile) - } - - static { - defaultInstance = new LokiUserProfile(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.LokiUserProfile) - } - - public interface ClosedGroupUpdateOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string name = 1; - /** - * optional string name = 1; - */ - boolean hasName(); - /** - * optional string name = 1; - */ - java.lang.String getName(); - /** - * optional string name = 1; - */ - com.google.protobuf.ByteString - getNameBytes(); - - // optional bytes groupPublicKey = 2; - /** - * optional bytes groupPublicKey = 2; - * - *
-     * @required
-     * 
- */ - boolean hasGroupPublicKey(); - /** - * optional bytes groupPublicKey = 2; - * - *
-     * @required
-     * 
- */ - com.google.protobuf.ByteString getGroupPublicKey(); - - // optional bytes groupPrivateKey = 3; - /** - * optional bytes groupPrivateKey = 3; - */ - boolean hasGroupPrivateKey(); - /** - * optional bytes groupPrivateKey = 3; - */ - com.google.protobuf.ByteString getGroupPrivateKey(); - - // repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - java.util.List - getSenderKeysList(); - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey getSenderKeys(int index); - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - int getSenderKeysCount(); - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - java.util.List - getSenderKeysOrBuilderList(); - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder getSenderKeysOrBuilder( - int index); - - // repeated bytes members = 5; - /** - * repeated bytes members = 5; - */ - java.util.List getMembersList(); - /** - * repeated bytes members = 5; - */ - int getMembersCount(); - /** - * repeated bytes members = 5; - */ - com.google.protobuf.ByteString getMembers(int index); - - // repeated bytes admins = 6; - /** - * repeated bytes admins = 6; - */ - java.util.List getAdminsList(); - /** - * repeated bytes admins = 6; - */ - int getAdminsCount(); - /** - * repeated bytes admins = 6; - */ - com.google.protobuf.ByteString getAdmins(int index); - - // optional .signalservice.ClosedGroupUpdate.Type type = 7; - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-     * @required
-     * 
- */ - boolean hasType(); - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-     * @required
-     * 
- */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type getType(); - } - /** - * Protobuf type {@code signalservice.ClosedGroupUpdate} - * - *
-   * Loki
-   * 
- */ - public static final class ClosedGroupUpdate extends - com.google.protobuf.GeneratedMessage - implements ClosedGroupUpdateOrBuilder { - // Use ClosedGroupUpdate.newBuilder() to construct. - private ClosedGroupUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ClosedGroupUpdate(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ClosedGroupUpdate defaultInstance; - public static ClosedGroupUpdate getDefaultInstance() { - return defaultInstance; - } - - public ClosedGroupUpdate getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ClosedGroupUpdate( - 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; - name_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - groupPublicKey_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - groupPrivateKey_ = input.readBytes(); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - senderKeys_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000008; - } - senderKeys_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.PARSER, extensionRegistry)); - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - members_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000010; - } - members_.add(input.readBytes()); - break; - } - case 50: { - if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000020; - } - admins_.add(input.readBytes()); - break; - } - case 56: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(7, rawValue); - } else { - bitField0_ |= 0x00000008; - type_ = value; - } - 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)) { - senderKeys_ = java.util.Collections.unmodifiableList(senderKeys_); - } - if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - members_ = java.util.Collections.unmodifiableList(members_); - } - if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = java.util.Collections.unmodifiableList(admins_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ClosedGroupUpdate parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ClosedGroupUpdate(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.ClosedGroupUpdate.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * NEW = 0; - * - *
-       * groupPublicKey, name, groupPrivateKey, senderKeys, members, admins
-       * 
- */ - NEW(0, 0), - /** - * INFO = 1; - * - *
-       * groupPublicKey, name, senderKeys, members, admins
-       * 
- */ - INFO(1, 1), - /** - * SENDER_KEY_REQUEST = 2; - * - *
-       * groupPublicKey
-       * 
- */ - SENDER_KEY_REQUEST(2, 2), - /** - * SENDER_KEY = 3; - * - *
-       * groupPublicKey, senderKeys
-       * 
- */ - SENDER_KEY(3, 3), - ; - - /** - * NEW = 0; - * - *
-       * groupPublicKey, name, groupPrivateKey, senderKeys, members, admins
-       * 
- */ - public static final int NEW_VALUE = 0; - /** - * INFO = 1; - * - *
-       * groupPublicKey, name, senderKeys, members, admins
-       * 
- */ - public static final int INFO_VALUE = 1; - /** - * SENDER_KEY_REQUEST = 2; - * - *
-       * groupPublicKey
-       * 
- */ - public static final int SENDER_KEY_REQUEST_VALUE = 2; - /** - * SENDER_KEY = 3; - * - *
-       * groupPublicKey, senderKeys
-       * 
- */ - public static final int SENDER_KEY_VALUE = 3; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return NEW; - case 1: return INFO; - case 2: return SENDER_KEY_REQUEST; - case 3: return SENDER_KEY; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.ClosedGroupUpdate.Type) - } - - public interface SenderKeyOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes chainKey = 1; - /** - * optional bytes chainKey = 1; - * - *
-       * @required
-       * 
- */ - boolean hasChainKey(); - /** - * optional bytes chainKey = 1; - * - *
-       * @required
-       * 
- */ - com.google.protobuf.ByteString getChainKey(); - - // optional uint32 keyIndex = 2; - /** - * optional uint32 keyIndex = 2; - * - *
-       * @required
-       * 
- */ - boolean hasKeyIndex(); - /** - * optional uint32 keyIndex = 2; - * - *
-       * @required
-       * 
- */ - int getKeyIndex(); - - // optional bytes publicKey = 3; - /** - * optional bytes publicKey = 3; - * - *
-       * @required
-       * 
- */ - boolean hasPublicKey(); - /** - * optional bytes publicKey = 3; - * - *
-       * @required
-       * 
- */ - com.google.protobuf.ByteString getPublicKey(); - } - /** - * Protobuf type {@code signalservice.ClosedGroupUpdate.SenderKey} - */ - public static final class SenderKey extends - com.google.protobuf.GeneratedMessage - implements SenderKeyOrBuilder { - // Use SenderKey.newBuilder() to construct. - private SenderKey(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SenderKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SenderKey defaultInstance; - public static SenderKey getDefaultInstance() { - return defaultInstance; - } - - public SenderKey getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SenderKey( - 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; - chainKey_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - keyIndex_ = input.readUInt32(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - publicKey_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_SenderKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_SenderKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SenderKey parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SenderKey(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes chainKey = 1; - public static final int CHAINKEY_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString chainKey_; - /** - * optional bytes chainKey = 1; - * - *
-       * @required
-       * 
- */ - public boolean hasChainKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes chainKey = 1; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getChainKey() { - return chainKey_; - } - - // optional uint32 keyIndex = 2; - public static final int KEYINDEX_FIELD_NUMBER = 2; - private int keyIndex_; - /** - * optional uint32 keyIndex = 2; - * - *
-       * @required
-       * 
- */ - public boolean hasKeyIndex() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 keyIndex = 2; - * - *
-       * @required
-       * 
- */ - public int getKeyIndex() { - return keyIndex_; - } - - // optional bytes publicKey = 3; - public static final int PUBLICKEY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString publicKey_; - /** - * optional bytes publicKey = 3; - * - *
-       * @required
-       * 
- */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes publicKey = 3; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - - private void initFields() { - chainKey_ = com.google.protobuf.ByteString.EMPTY; - keyIndex_ = 0; - publicKey_ = 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, chainKey_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, keyIndex_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, publicKey_); - } - 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, chainKey_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, keyIndex_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, publicKey_); - } - 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey 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 signalservice.ClosedGroupUpdate.SenderKey} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_SenderKey_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_SenderKey_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.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(); - chainKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - keyIndex_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - publicKey_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_SenderKey_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.chainKey_ = chainKey_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.keyIndex_ = keyIndex_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.publicKey_ = publicKey_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.getDefaultInstance()) return this; - if (other.hasChainKey()) { - setChainKey(other.getChainKey()); - } - if (other.hasKeyIndex()) { - setKeyIndex(other.getKeyIndex()); - } - if (other.hasPublicKey()) { - setPublicKey(other.getPublicKey()); - } - 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes chainKey = 1; - private com.google.protobuf.ByteString chainKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes chainKey = 1; - * - *
-         * @required
-         * 
- */ - public boolean hasChainKey() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes chainKey = 1; - * - *
-         * @required
-         * 
- */ - public com.google.protobuf.ByteString getChainKey() { - return chainKey_; - } - /** - * optional bytes chainKey = 1; - * - *
-         * @required
-         * 
- */ - public Builder setChainKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - chainKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes chainKey = 1; - * - *
-         * @required
-         * 
- */ - public Builder clearChainKey() { - bitField0_ = (bitField0_ & ~0x00000001); - chainKey_ = getDefaultInstance().getChainKey(); - onChanged(); - return this; - } - - // optional uint32 keyIndex = 2; - private int keyIndex_ ; - /** - * optional uint32 keyIndex = 2; - * - *
-         * @required
-         * 
- */ - public boolean hasKeyIndex() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 keyIndex = 2; - * - *
-         * @required
-         * 
- */ - public int getKeyIndex() { - return keyIndex_; - } - /** - * optional uint32 keyIndex = 2; - * - *
-         * @required
-         * 
- */ - public Builder setKeyIndex(int value) { - bitField0_ |= 0x00000002; - keyIndex_ = value; - onChanged(); - return this; - } - /** - * optional uint32 keyIndex = 2; - * - *
-         * @required
-         * 
- */ - public Builder clearKeyIndex() { - bitField0_ = (bitField0_ & ~0x00000002); - keyIndex_ = 0; - onChanged(); - return this; - } - - // optional bytes publicKey = 3; - private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes publicKey = 3; - * - *
-         * @required
-         * 
- */ - public boolean hasPublicKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes publicKey = 3; - * - *
-         * @required
-         * 
- */ - public com.google.protobuf.ByteString getPublicKey() { - return publicKey_; - } - /** - * optional bytes publicKey = 3; - * - *
-         * @required
-         * 
- */ - public Builder setPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - publicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes publicKey = 3; - * - *
-         * @required
-         * 
- */ - public Builder clearPublicKey() { - bitField0_ = (bitField0_ & ~0x00000004); - publicKey_ = getDefaultInstance().getPublicKey(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ClosedGroupUpdate.SenderKey) - } - - static { - defaultInstance = new SenderKey(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ClosedGroupUpdate.SenderKey) - } - - private int bitField0_; - // optional string name = 1; - public static final int NAME_FIELD_NUMBER = 1; - private java.lang.Object name_; - /** - * optional string name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string name = 1; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * optional string name = 1; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bytes groupPublicKey = 2; - public static final int GROUPPUBLICKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString groupPublicKey_; - /** - * optional bytes groupPublicKey = 2; - * - *
-     * @required
-     * 
- */ - public boolean hasGroupPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes groupPublicKey = 2; - * - *
-     * @required
-     * 
- */ - public com.google.protobuf.ByteString getGroupPublicKey() { - return groupPublicKey_; - } - - // optional bytes groupPrivateKey = 3; - public static final int GROUPPRIVATEKEY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString groupPrivateKey_; - /** - * optional bytes groupPrivateKey = 3; - */ - public boolean hasGroupPrivateKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes groupPrivateKey = 3; - */ - public com.google.protobuf.ByteString getGroupPrivateKey() { - return groupPrivateKey_; - } - - // repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - public static final int SENDERKEYS_FIELD_NUMBER = 4; - private java.util.List senderKeys_; - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public java.util.List getSenderKeysList() { - return senderKeys_; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public java.util.List - getSenderKeysOrBuilderList() { - return senderKeys_; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public int getSenderKeysCount() { - return senderKeys_.size(); - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey getSenderKeys(int index) { - return senderKeys_.get(index); - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder getSenderKeysOrBuilder( - int index) { - return senderKeys_.get(index); - } - - // repeated bytes members = 5; - public static final int MEMBERS_FIELD_NUMBER = 5; - private java.util.List members_; - /** - * repeated bytes members = 5; - */ - public java.util.List - getMembersList() { - return members_; - } - /** - * repeated bytes members = 5; - */ - public int getMembersCount() { - return members_.size(); - } - /** - * repeated bytes members = 5; - */ - public com.google.protobuf.ByteString getMembers(int index) { - return members_.get(index); - } - - // repeated bytes admins = 6; - public static final int ADMINS_FIELD_NUMBER = 6; - private java.util.List admins_; - /** - * repeated bytes admins = 6; - */ - public java.util.List - getAdminsList() { - return admins_; - } - /** - * repeated bytes admins = 6; - */ - public int getAdminsCount() { - return admins_.size(); - } - /** - * repeated bytes admins = 6; - */ - public com.google.protobuf.ByteString getAdmins(int index) { - return admins_.get(index); - } - - // optional .signalservice.ClosedGroupUpdate.Type type = 7; - public static final int TYPE_FIELD_NUMBER = 7; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type type_; - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-     * @required
-     * 
- */ - public boolean hasType() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-     * @required
-     * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type getType() { - return type_; - } - - private void initFields() { - name_ = ""; - groupPublicKey_ = com.google.protobuf.ByteString.EMPTY; - groupPrivateKey_ = com.google.protobuf.ByteString.EMPTY; - senderKeys_ = java.util.Collections.emptyList(); - members_ = java.util.Collections.emptyList(); - admins_ = java.util.Collections.emptyList(); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type.NEW; - } - 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, getNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, groupPublicKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, groupPrivateKey_); - } - for (int i = 0; i < senderKeys_.size(); i++) { - output.writeMessage(4, senderKeys_.get(i)); - } - for (int i = 0; i < members_.size(); i++) { - output.writeBytes(5, members_.get(i)); - } - for (int i = 0; i < admins_.size(); i++) { - output.writeBytes(6, admins_.get(i)); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeEnum(7, type_.getNumber()); - } - 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, getNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, groupPublicKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, groupPrivateKey_); - } - for (int i = 0; i < senderKeys_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, senderKeys_.get(i)); - } - { - int dataSize = 0; - for (int i = 0; i < members_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(members_.get(i)); - } - size += dataSize; - size += 1 * getMembersList().size(); - } - { - int dataSize = 0; - for (int i = 0; i < admins_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(admins_.get(i)); - } - size += dataSize; - size += 1 * getAdminsList().size(); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(7, type_.getNumber()); - } - 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate 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 signalservice.ClosedGroupUpdate} - * - *
-     * Loki
-     * 
- */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getSenderKeysFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - groupPublicKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - groupPrivateKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - if (senderKeysBuilder_ == null) { - senderKeys_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - } else { - senderKeysBuilder_.clear(); - } - members_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - admins_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type.NEW; - bitField0_ = (bitField0_ & ~0x00000040); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ClosedGroupUpdate_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.name_ = name_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.groupPublicKey_ = groupPublicKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.groupPrivateKey_ = groupPrivateKey_; - if (senderKeysBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008)) { - senderKeys_ = java.util.Collections.unmodifiableList(senderKeys_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.senderKeys_ = senderKeys_; - } else { - result.senderKeys_ = senderKeysBuilder_.build(); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - members_ = java.util.Collections.unmodifiableList(members_); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.members_ = members_; - if (((bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = java.util.Collections.unmodifiableList(admins_); - bitField0_ = (bitField0_ & ~0x00000020); - } - result.admins_ = admins_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000008; - } - result.type_ = type_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.getDefaultInstance()) return this; - if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - onChanged(); - } - if (other.hasGroupPublicKey()) { - setGroupPublicKey(other.getGroupPublicKey()); - } - if (other.hasGroupPrivateKey()) { - setGroupPrivateKey(other.getGroupPrivateKey()); - } - if (senderKeysBuilder_ == null) { - if (!other.senderKeys_.isEmpty()) { - if (senderKeys_.isEmpty()) { - senderKeys_ = other.senderKeys_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureSenderKeysIsMutable(); - senderKeys_.addAll(other.senderKeys_); - } - onChanged(); - } - } else { - if (!other.senderKeys_.isEmpty()) { - if (senderKeysBuilder_.isEmpty()) { - senderKeysBuilder_.dispose(); - senderKeysBuilder_ = null; - senderKeys_ = other.senderKeys_; - bitField0_ = (bitField0_ & ~0x00000008); - senderKeysBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getSenderKeysFieldBuilder() : null; - } else { - senderKeysBuilder_.addAllMessages(other.senderKeys_); - } - } - } - if (!other.members_.isEmpty()) { - if (members_.isEmpty()) { - members_ = other.members_; - bitField0_ = (bitField0_ & ~0x00000010); - } else { - ensureMembersIsMutable(); - members_.addAll(other.members_); - } - onChanged(); - } - if (!other.admins_.isEmpty()) { - if (admins_.isEmpty()) { - admins_ = other.admins_; - bitField0_ = (bitField0_ & ~0x00000020); - } else { - ensureAdminsIsMutable(); - admins_.addAll(other.admins_); - } - onChanged(); - } - if (other.hasType()) { - setType(other.getType()); - } - 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.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string name = 1; - private java.lang.Object name_ = ""; - /** - * optional string name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string name = 1; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string name = 1; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string name = 1; - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - onChanged(); - return this; - } - /** - * optional string name = 1; - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * optional string name = 1; - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - onChanged(); - return this; - } - - // optional bytes groupPublicKey = 2; - private com.google.protobuf.ByteString groupPublicKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes groupPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public boolean hasGroupPublicKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes groupPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public com.google.protobuf.ByteString getGroupPublicKey() { - return groupPublicKey_; - } - /** - * optional bytes groupPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public Builder setGroupPublicKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - groupPublicKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes groupPublicKey = 2; - * - *
-       * @required
-       * 
- */ - public Builder clearGroupPublicKey() { - bitField0_ = (bitField0_ & ~0x00000002); - groupPublicKey_ = getDefaultInstance().getGroupPublicKey(); - onChanged(); - return this; - } - - // optional bytes groupPrivateKey = 3; - private com.google.protobuf.ByteString groupPrivateKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes groupPrivateKey = 3; - */ - public boolean hasGroupPrivateKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes groupPrivateKey = 3; - */ - public com.google.protobuf.ByteString getGroupPrivateKey() { - return groupPrivateKey_; - } - /** - * optional bytes groupPrivateKey = 3; - */ - public Builder setGroupPrivateKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - groupPrivateKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes groupPrivateKey = 3; - */ - public Builder clearGroupPrivateKey() { - bitField0_ = (bitField0_ & ~0x00000004); - groupPrivateKey_ = getDefaultInstance().getGroupPrivateKey(); - onChanged(); - return this; - } - - // repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - private java.util.List senderKeys_ = - java.util.Collections.emptyList(); - private void ensureSenderKeysIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - senderKeys_ = new java.util.ArrayList(senderKeys_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder> senderKeysBuilder_; - - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public java.util.List getSenderKeysList() { - if (senderKeysBuilder_ == null) { - return java.util.Collections.unmodifiableList(senderKeys_); - } else { - return senderKeysBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public int getSenderKeysCount() { - if (senderKeysBuilder_ == null) { - return senderKeys_.size(); - } else { - return senderKeysBuilder_.getCount(); - } - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey getSenderKeys(int index) { - if (senderKeysBuilder_ == null) { - return senderKeys_.get(index); - } else { - return senderKeysBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder setSenderKeys( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey value) { - if (senderKeysBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSenderKeysIsMutable(); - senderKeys_.set(index, value); - onChanged(); - } else { - senderKeysBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder setSenderKeys( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder builderForValue) { - if (senderKeysBuilder_ == null) { - ensureSenderKeysIsMutable(); - senderKeys_.set(index, builderForValue.build()); - onChanged(); - } else { - senderKeysBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder addSenderKeys(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey value) { - if (senderKeysBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSenderKeysIsMutable(); - senderKeys_.add(value); - onChanged(); - } else { - senderKeysBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder addSenderKeys( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey value) { - if (senderKeysBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSenderKeysIsMutable(); - senderKeys_.add(index, value); - onChanged(); - } else { - senderKeysBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder addSenderKeys( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder builderForValue) { - if (senderKeysBuilder_ == null) { - ensureSenderKeysIsMutable(); - senderKeys_.add(builderForValue.build()); - onChanged(); - } else { - senderKeysBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder addSenderKeys( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder builderForValue) { - if (senderKeysBuilder_ == null) { - ensureSenderKeysIsMutable(); - senderKeys_.add(index, builderForValue.build()); - onChanged(); - } else { - senderKeysBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder addAllSenderKeys( - java.lang.Iterable values) { - if (senderKeysBuilder_ == null) { - ensureSenderKeysIsMutable(); - super.addAll(values, senderKeys_); - onChanged(); - } else { - senderKeysBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder clearSenderKeys() { - if (senderKeysBuilder_ == null) { - senderKeys_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - senderKeysBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public Builder removeSenderKeys(int index) { - if (senderKeysBuilder_ == null) { - ensureSenderKeysIsMutable(); - senderKeys_.remove(index); - onChanged(); - } else { - senderKeysBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder getSenderKeysBuilder( - int index) { - return getSenderKeysFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder getSenderKeysOrBuilder( - int index) { - if (senderKeysBuilder_ == null) { - return senderKeys_.get(index); } else { - return senderKeysBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public java.util.List - getSenderKeysOrBuilderList() { - if (senderKeysBuilder_ != null) { - return senderKeysBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(senderKeys_); - } - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder addSenderKeysBuilder() { - return getSenderKeysFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.getDefaultInstance()); - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder addSenderKeysBuilder( - int index) { - return getSenderKeysFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.getDefaultInstance()); - } - /** - * repeated .signalservice.ClosedGroupUpdate.SenderKey senderKeys = 4; - */ - public java.util.List - getSenderKeysBuilderList() { - return getSenderKeysFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder> - getSenderKeysFieldBuilder() { - if (senderKeysBuilder_ == null) { - senderKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKey.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.SenderKeyOrBuilder>( - senderKeys_, - ((bitField0_ & 0x00000008) == 0x00000008), - getParentForChildren(), - isClean()); - senderKeys_ = null; - } - return senderKeysBuilder_; - } - - // repeated bytes members = 5; - private java.util.List members_ = java.util.Collections.emptyList(); - private void ensureMembersIsMutable() { - if (!((bitField0_ & 0x00000010) == 0x00000010)) { - members_ = new java.util.ArrayList(members_); - bitField0_ |= 0x00000010; - } - } - /** - * repeated bytes members = 5; - */ - public java.util.List - getMembersList() { - return java.util.Collections.unmodifiableList(members_); - } - /** - * repeated bytes members = 5; - */ - public int getMembersCount() { - return members_.size(); - } - /** - * repeated bytes members = 5; - */ - public com.google.protobuf.ByteString getMembers(int index) { - return members_.get(index); - } - /** - * repeated bytes members = 5; - */ - public Builder setMembers( - int index, com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.set(index, value); - onChanged(); - return this; - } - /** - * repeated bytes members = 5; - */ - public Builder addMembers(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.add(value); - onChanged(); - return this; - } - /** - * repeated bytes members = 5; - */ - public Builder addAllMembers( - java.lang.Iterable values) { - ensureMembersIsMutable(); - super.addAll(values, members_); - onChanged(); - return this; - } - /** - * repeated bytes members = 5; - */ - public Builder clearMembers() { - members_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - - // repeated bytes admins = 6; - private java.util.List admins_ = java.util.Collections.emptyList(); - private void ensureAdminsIsMutable() { - if (!((bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = new java.util.ArrayList(admins_); - bitField0_ |= 0x00000020; - } - } - /** - * repeated bytes admins = 6; - */ - public java.util.List - getAdminsList() { - return java.util.Collections.unmodifiableList(admins_); - } - /** - * repeated bytes admins = 6; - */ - public int getAdminsCount() { - return admins_.size(); - } - /** - * repeated bytes admins = 6; - */ - public com.google.protobuf.ByteString getAdmins(int index) { - return admins_.get(index); - } - /** - * repeated bytes admins = 6; - */ - public Builder setAdmins( - int index, com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.set(index, value); - onChanged(); - return this; - } - /** - * repeated bytes admins = 6; - */ - public Builder addAdmins(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.add(value); - onChanged(); - return this; - } - /** - * repeated bytes admins = 6; - */ - public Builder addAllAdmins( - java.lang.Iterable values) { - ensureAdminsIsMutable(); - super.addAll(values, admins_); - onChanged(); - return this; - } - /** - * repeated bytes admins = 6; - */ - public Builder clearAdmins() { - admins_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - - // optional .signalservice.ClosedGroupUpdate.Type type = 7; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type.NEW; - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-       * @required
-       * 
- */ - public boolean hasType() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-       * @required
-       * 
- */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type getType() { - return type_; - } - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-       * @required
-       * 
- */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.ClosedGroupUpdate.Type type = 7; - * - *
-       * @required
-       * 
- */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000040); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ClosedGroupUpdate.Type.NEW; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ClosedGroupUpdate) - } - - static { - defaultInstance = new ClosedGroupUpdate(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ClosedGroupUpdate) - } - - public interface NullMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes padding = 1; - /** - * optional bytes padding = 1; - */ - boolean hasPadding(); - /** - * optional bytes padding = 1; - */ - com.google.protobuf.ByteString getPadding(); - } - /** - * Protobuf type {@code signalservice.NullMessage} - */ - public static final class NullMessage extends - com.google.protobuf.GeneratedMessage - implements NullMessageOrBuilder { - // Use NullMessage.newBuilder() to construct. - private NullMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private NullMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final NullMessage defaultInstance; - public static NullMessage getDefaultInstance() { - return defaultInstance; - } - - public NullMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private NullMessage( - 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; - padding_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_NullMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_NullMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public NullMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new NullMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bytes padding = 1; - public static final int PADDING_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString padding_; - /** - * optional bytes padding = 1; - */ - public boolean hasPadding() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes padding = 1; - */ - public com.google.protobuf.ByteString getPadding() { - return padding_; - } - - private void initFields() { - padding_ = 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, padding_); - } - 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, padding_); - } - 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.signalservice.internal.push.SignalServiceProtos.NullMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage 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.signalservice.internal.push.SignalServiceProtos.NullMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage 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.signalservice.internal.push.SignalServiceProtos.NullMessage 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 signalservice.NullMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_NullMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_NullMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.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(); - padding_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_NullMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.padding_ = padding_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage.getDefaultInstance()) return this; - if (other.hasPadding()) { - setPadding(other.getPadding()); - } - 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.signalservice.internal.push.SignalServiceProtos.NullMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.NullMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes padding = 1; - private com.google.protobuf.ByteString padding_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes padding = 1; - */ - public boolean hasPadding() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes padding = 1; - */ - public com.google.protobuf.ByteString getPadding() { - return padding_; - } - /** - * optional bytes padding = 1; - */ - public Builder setPadding(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - padding_ = value; - onChanged(); - return this; - } - /** - * optional bytes padding = 1; - */ - public Builder clearPadding() { - bitField0_ = (bitField0_ & ~0x00000001); - padding_ = getDefaultInstance().getPadding(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.NullMessage) - } - - static { - defaultInstance = new NullMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.NullMessage) - } - - public interface ReceiptMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.ReceiptMessage.Type type = 1; - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - boolean hasType(); - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type getType(); - - // repeated uint64 timestamp = 2; - /** - * repeated uint64 timestamp = 2; - */ - java.util.List getTimestampList(); - /** - * repeated uint64 timestamp = 2; - */ - int getTimestampCount(); - /** - * repeated uint64 timestamp = 2; - */ - long getTimestamp(int index); - } - /** - * Protobuf type {@code signalservice.ReceiptMessage} - */ - public static final class ReceiptMessage extends - com.google.protobuf.GeneratedMessage - implements ReceiptMessageOrBuilder { - // Use ReceiptMessage.newBuilder() to construct. - private ReceiptMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ReceiptMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ReceiptMessage defaultInstance; - public static ReceiptMessage getDefaultInstance() { - return defaultInstance; - } - - public ReceiptMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ReceiptMessage( - 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: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(1, rawValue); - } else { - bitField0_ |= 0x00000001; - type_ = value; - } - break; - } - case 16: { - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - timestamp_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - timestamp_.add(input.readUInt64()); - break; - } - case 18: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) { - timestamp_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - while (input.getBytesUntilLimit() > 0) { - timestamp_.add(input.readUInt64()); - } - input.popLimit(limit); - 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)) { - timestamp_ = java.util.Collections.unmodifiableList(timestamp_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ReceiptMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ReceiptMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ReceiptMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ReceiptMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.ReceiptMessage.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * DELIVERY = 0; - */ - DELIVERY(0, 0), - /** - * READ = 1; - */ - READ(1, 1), - ; - - /** - * DELIVERY = 0; - */ - public static final int DELIVERY_VALUE = 0; - /** - * READ = 1; - */ - public static final int READ_VALUE = 1; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return DELIVERY; - case 1: return READ; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.ReceiptMessage.Type) - } - - private int bitField0_; - // optional .signalservice.ReceiptMessage.Type type = 1; - public static final int TYPE_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type type_; - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type getType() { - return type_; - } - - // repeated uint64 timestamp = 2; - public static final int TIMESTAMP_FIELD_NUMBER = 2; - private java.util.List timestamp_; - /** - * repeated uint64 timestamp = 2; - */ - public java.util.List - getTimestampList() { - return timestamp_; - } - /** - * repeated uint64 timestamp = 2; - */ - public int getTimestampCount() { - return timestamp_.size(); - } - /** - * repeated uint64 timestamp = 2; - */ - public long getTimestamp(int index) { - return timestamp_.get(index); - } - - private void initFields() { - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type.DELIVERY; - timestamp_ = 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.writeEnum(1, type_.getNumber()); - } - for (int i = 0; i < timestamp_.size(); i++) { - output.writeUInt64(2, timestamp_.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 - .computeEnumSize(1, type_.getNumber()); - } - { - int dataSize = 0; - for (int i = 0; i < timestamp_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt64SizeNoTag(timestamp_.get(i)); - } - size += dataSize; - size += 1 * getTimestampList().size(); - } - 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.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage 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.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage 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.signalservice.internal.push.SignalServiceProtos.ReceiptMessage 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 signalservice.ReceiptMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ReceiptMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ReceiptMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.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(); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type.DELIVERY; - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ReceiptMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.type_ = type_; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - timestamp_ = java.util.Collections.unmodifiableList(timestamp_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.timestamp_ = timestamp_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.getDefaultInstance()) return this; - if (other.hasType()) { - setType(other.getType()); - } - if (!other.timestamp_.isEmpty()) { - if (timestamp_.isEmpty()) { - timestamp_ = other.timestamp_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureTimestampIsMutable(); - timestamp_.addAll(other.timestamp_); - } - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.ReceiptMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.ReceiptMessage.Type type = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type.DELIVERY; - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type getType() { - return type_; - } - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.ReceiptMessage.Type type = 1; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ReceiptMessage.Type.DELIVERY; - onChanged(); - return this; - } - - // repeated uint64 timestamp = 2; - private java.util.List timestamp_ = java.util.Collections.emptyList(); - private void ensureTimestampIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - timestamp_ = new java.util.ArrayList(timestamp_); - bitField0_ |= 0x00000002; - } - } - /** - * repeated uint64 timestamp = 2; - */ - public java.util.List - getTimestampList() { - return java.util.Collections.unmodifiableList(timestamp_); - } - /** - * repeated uint64 timestamp = 2; - */ - public int getTimestampCount() { - return timestamp_.size(); - } - /** - * repeated uint64 timestamp = 2; - */ - public long getTimestamp(int index) { - return timestamp_.get(index); - } - /** - * repeated uint64 timestamp = 2; - */ - public Builder setTimestamp( - int index, long value) { - ensureTimestampIsMutable(); - timestamp_.set(index, value); - onChanged(); - return this; - } - /** - * repeated uint64 timestamp = 2; - */ - public Builder addTimestamp(long value) { - ensureTimestampIsMutable(); - timestamp_.add(value); - onChanged(); - return this; - } - /** - * repeated uint64 timestamp = 2; - */ - public Builder addAllTimestamp( - java.lang.Iterable values) { - ensureTimestampIsMutable(); - super.addAll(values, timestamp_); - onChanged(); - return this; - } - /** - * repeated uint64 timestamp = 2; - */ - public Builder clearTimestamp() { - timestamp_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ReceiptMessage) - } - - static { - defaultInstance = new ReceiptMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ReceiptMessage) - } - - public interface TypingMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 timestamp = 1; - /** - * optional uint64 timestamp = 1; - */ - boolean hasTimestamp(); - /** - * optional uint64 timestamp = 1; - */ - long getTimestamp(); - - // optional .signalservice.TypingMessage.Action action = 2; - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - boolean hasAction(); - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action getAction(); - - // optional bytes groupId = 3; - /** - * optional bytes groupId = 3; - */ - boolean hasGroupId(); - /** - * optional bytes groupId = 3; - */ - com.google.protobuf.ByteString getGroupId(); - } - /** - * Protobuf type {@code signalservice.TypingMessage} - */ - public static final class TypingMessage extends - com.google.protobuf.GeneratedMessage - implements TypingMessageOrBuilder { - // Use TypingMessage.newBuilder() to construct. - private TypingMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private TypingMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final TypingMessage defaultInstance; - public static TypingMessage getDefaultInstance() { - return defaultInstance; - } - - public TypingMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TypingMessage( - 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; - timestamp_ = input.readUInt64(); - break; - } - case 16: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(2, rawValue); - } else { - bitField0_ |= 0x00000002; - action_ = value; - } - break; - } - case 26: { - bitField0_ |= 0x00000004; - groupId_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_TypingMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_TypingMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public TypingMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TypingMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.TypingMessage.Action} - */ - public enum Action - implements com.google.protobuf.ProtocolMessageEnum { - /** - * STARTED = 0; - */ - STARTED(0, 0), - /** - * STOPPED = 1; - */ - STOPPED(1, 1), - ; - - /** - * STARTED = 0; - */ - public static final int STARTED_VALUE = 0; - /** - * STOPPED = 1; - */ - public static final int STOPPED_VALUE = 1; - - - public final int getNumber() { return value; } - - public static Action valueOf(int value) { - switch (value) { - case 0: return STARTED; - case 1: return STOPPED; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Action findValueByNumber(int number) { - return Action.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDescriptor().getEnumTypes().get(0); - } - - private static final Action[] VALUES = values(); - - public static Action valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Action(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.TypingMessage.Action) - } - - private int bitField0_; - // optional uint64 timestamp = 1; - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private long timestamp_; - /** - * optional uint64 timestamp = 1; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 timestamp = 1; - */ - public long getTimestamp() { - return timestamp_; - } - - // optional .signalservice.TypingMessage.Action action = 2; - public static final int ACTION_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action action_; - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - public boolean hasAction() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action getAction() { - return action_; - } - - // optional bytes groupId = 3; - public static final int GROUPID_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString groupId_; - /** - * optional bytes groupId = 3; - */ - public boolean hasGroupId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes groupId = 3; - */ - public com.google.protobuf.ByteString getGroupId() { - return groupId_; - } - - private void initFields() { - timestamp_ = 0L; - action_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action.STARTED; - groupId_ = 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.writeUInt64(1, timestamp_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeEnum(2, action_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, groupId_); - } - 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 - .computeUInt64Size(1, timestamp_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, action_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, groupId_); - } - 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.signalservice.internal.push.SignalServiceProtos.TypingMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage 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.signalservice.internal.push.SignalServiceProtos.TypingMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage 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.signalservice.internal.push.SignalServiceProtos.TypingMessage 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 signalservice.TypingMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_TypingMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_TypingMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.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(); - timestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - action_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action.STARTED; - bitField0_ = (bitField0_ & ~0x00000002); - groupId_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_TypingMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.timestamp_ = timestamp_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.action_ = action_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.groupId_ = groupId_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.getDefaultInstance()) return this; - if (other.hasTimestamp()) { - setTimestamp(other.getTimestamp()); - } - if (other.hasAction()) { - setAction(other.getAction()); - } - if (other.hasGroupId()) { - setGroupId(other.getGroupId()); - } - 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.signalservice.internal.push.SignalServiceProtos.TypingMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 timestamp = 1; - private long timestamp_ ; - /** - * optional uint64 timestamp = 1; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 timestamp = 1; - */ - public long getTimestamp() { - return timestamp_; - } - /** - * optional uint64 timestamp = 1; - */ - public Builder setTimestamp(long value) { - bitField0_ |= 0x00000001; - timestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 timestamp = 1; - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - onChanged(); - return this; - } - - // optional .signalservice.TypingMessage.Action action = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action action_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action.STARTED; - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - public boolean hasAction() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action getAction() { - return action_; - } - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - public Builder setAction(org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - action_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.TypingMessage.Action action = 2; - */ - public Builder clearAction() { - bitField0_ = (bitField0_ & ~0x00000002); - action_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.TypingMessage.Action.STARTED; - onChanged(); - return this; - } - - // optional bytes groupId = 3; - private com.google.protobuf.ByteString groupId_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes groupId = 3; - */ - public boolean hasGroupId() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes groupId = 3; - */ - public com.google.protobuf.ByteString getGroupId() { - return groupId_; - } - /** - * optional bytes groupId = 3; - */ - public Builder setGroupId(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - groupId_ = value; - onChanged(); - return this; - } - /** - * optional bytes groupId = 3; - */ - public Builder clearGroupId() { - bitField0_ = (bitField0_ & ~0x00000004); - groupId_ = getDefaultInstance().getGroupId(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.TypingMessage) - } - - static { - defaultInstance = new TypingMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.TypingMessage) - } - - public interface VerifiedOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string destination = 1; - /** - * optional string destination = 1; - */ - boolean hasDestination(); - /** - * optional string destination = 1; - */ - java.lang.String getDestination(); - /** - * optional string destination = 1; - */ - com.google.protobuf.ByteString - getDestinationBytes(); - - // optional bytes identityKey = 2; - /** - * optional bytes identityKey = 2; - */ - boolean hasIdentityKey(); - /** - * optional bytes identityKey = 2; - */ - com.google.protobuf.ByteString getIdentityKey(); - - // optional .signalservice.Verified.State state = 3; - /** - * optional .signalservice.Verified.State state = 3; - */ - boolean hasState(); - /** - * optional .signalservice.Verified.State state = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State getState(); - - // optional bytes nullMessage = 4; - /** - * optional bytes nullMessage = 4; - */ - boolean hasNullMessage(); - /** - * optional bytes nullMessage = 4; - */ - com.google.protobuf.ByteString getNullMessage(); - } - /** - * Protobuf type {@code signalservice.Verified} - */ - public static final class Verified extends - com.google.protobuf.GeneratedMessage - implements VerifiedOrBuilder { - // Use Verified.newBuilder() to construct. - private Verified(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Verified(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Verified defaultInstance; - public static Verified getDefaultInstance() { - return defaultInstance; - } - - public Verified getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Verified( - 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; - destination_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - identityKey_ = input.readBytes(); - break; - } - case 24: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(3, rawValue); - } else { - bitField0_ |= 0x00000004; - state_ = value; - } - break; - } - case 34: { - bitField0_ |= 0x00000008; - nullMessage_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Verified_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Verified_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Verified parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Verified(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.Verified.State} - */ - public enum State - implements com.google.protobuf.ProtocolMessageEnum { - /** - * DEFAULT = 0; - */ - DEFAULT(0, 0), - /** - * VERIFIED = 1; - */ - VERIFIED(1, 1), - /** - * UNVERIFIED = 2; - */ - UNVERIFIED(2, 2), - ; - - /** - * DEFAULT = 0; - */ - public static final int DEFAULT_VALUE = 0; - /** - * VERIFIED = 1; - */ - public static final int VERIFIED_VALUE = 1; - /** - * UNVERIFIED = 2; - */ - public static final int UNVERIFIED_VALUE = 2; - - - public final int getNumber() { return value; } - - public static State valueOf(int value) { - switch (value) { - case 0: return DEFAULT; - case 1: return VERIFIED; - case 2: return UNVERIFIED; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public State findValueByNumber(int number) { - return State.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDescriptor().getEnumTypes().get(0); - } - - private static final State[] VALUES = values(); - - public static State valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private State(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.Verified.State) - } - - private int bitField0_; - // optional string destination = 1; - public static final int DESTINATION_FIELD_NUMBER = 1; - private java.lang.Object destination_; - /** - * optional string destination = 1; - */ - public boolean hasDestination() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string destination = 1; - */ - public java.lang.String getDestination() { - java.lang.Object ref = destination_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - destination_ = s; - } - return s; - } - } - /** - * optional string destination = 1; - */ - public com.google.protobuf.ByteString - getDestinationBytes() { - java.lang.Object ref = destination_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - destination_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bytes identityKey = 2; - public static final int IDENTITYKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString identityKey_; - /** - * optional bytes identityKey = 2; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes identityKey = 2; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - - // optional .signalservice.Verified.State state = 3; - public static final int STATE_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State state_; - /** - * optional .signalservice.Verified.State state = 3; - */ - public boolean hasState() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.Verified.State state = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State getState() { - return state_; - } - - // optional bytes nullMessage = 4; - public static final int NULLMESSAGE_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString nullMessage_; - /** - * optional bytes nullMessage = 4; - */ - public boolean hasNullMessage() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes nullMessage = 4; - */ - public com.google.protobuf.ByteString getNullMessage() { - return nullMessage_; - } - - private void initFields() { - destination_ = ""; - identityKey_ = com.google.protobuf.ByteString.EMPTY; - state_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State.DEFAULT; - nullMessage_ = 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, getDestinationBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, identityKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeEnum(3, state_.getNumber()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, nullMessage_); - } - 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, getDestinationBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, identityKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(3, state_.getNumber()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, nullMessage_); - } - 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.signalservice.internal.push.SignalServiceProtos.Verified parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified 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.signalservice.internal.push.SignalServiceProtos.Verified parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified 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.signalservice.internal.push.SignalServiceProtos.Verified 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 signalservice.Verified} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Verified_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Verified_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.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(); - destination_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - identityKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - state_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State.DEFAULT; - bitField0_ = (bitField0_ & ~0x00000004); - nullMessage_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_Verified_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.destination_ = destination_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.identityKey_ = identityKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.state_ = state_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.nullMessage_ = nullMessage_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance()) return this; - if (other.hasDestination()) { - bitField0_ |= 0x00000001; - destination_ = other.destination_; - onChanged(); - } - if (other.hasIdentityKey()) { - setIdentityKey(other.getIdentityKey()); - } - if (other.hasState()) { - setState(other.getState()); - } - if (other.hasNullMessage()) { - setNullMessage(other.getNullMessage()); - } - 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.signalservice.internal.push.SignalServiceProtos.Verified parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string destination = 1; - private java.lang.Object destination_ = ""; - /** - * optional string destination = 1; - */ - public boolean hasDestination() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string destination = 1; - */ - public java.lang.String getDestination() { - java.lang.Object ref = destination_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - destination_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string destination = 1; - */ - public com.google.protobuf.ByteString - getDestinationBytes() { - java.lang.Object ref = destination_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - destination_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string destination = 1; - */ - public Builder setDestination( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - destination_ = value; - onChanged(); - return this; - } - /** - * optional string destination = 1; - */ - public Builder clearDestination() { - bitField0_ = (bitField0_ & ~0x00000001); - destination_ = getDefaultInstance().getDestination(); - onChanged(); - return this; - } - /** - * optional string destination = 1; - */ - public Builder setDestinationBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - destination_ = value; - onChanged(); - return this; - } - - // optional bytes identityKey = 2; - private com.google.protobuf.ByteString identityKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes identityKey = 2; - */ - public boolean hasIdentityKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes identityKey = 2; - */ - public com.google.protobuf.ByteString getIdentityKey() { - return identityKey_; - } - /** - * optional bytes identityKey = 2; - */ - public Builder setIdentityKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - identityKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes identityKey = 2; - */ - public Builder clearIdentityKey() { - bitField0_ = (bitField0_ & ~0x00000002); - identityKey_ = getDefaultInstance().getIdentityKey(); - onChanged(); - return this; - } - - // optional .signalservice.Verified.State state = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State state_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State.DEFAULT; - /** - * optional .signalservice.Verified.State state = 3; - */ - public boolean hasState() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.Verified.State state = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State getState() { - return state_; - } - /** - * optional .signalservice.Verified.State state = 3; - */ - public Builder setState(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - state_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.Verified.State state = 3; - */ - public Builder clearState() { - bitField0_ = (bitField0_ & ~0x00000004); - state_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.State.DEFAULT; - onChanged(); - return this; - } - - // optional bytes nullMessage = 4; - private com.google.protobuf.ByteString nullMessage_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes nullMessage = 4; - */ - public boolean hasNullMessage() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes nullMessage = 4; - */ - public com.google.protobuf.ByteString getNullMessage() { - return nullMessage_; - } - /** - * optional bytes nullMessage = 4; - */ - public Builder setNullMessage(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - nullMessage_ = value; - onChanged(); - return this; - } - /** - * optional bytes nullMessage = 4; - */ - public Builder clearNullMessage() { - bitField0_ = (bitField0_ & ~0x00000008); - nullMessage_ = getDefaultInstance().getNullMessage(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.Verified) - } - - static { - defaultInstance = new Verified(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.Verified) - } - - public interface SyncMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.SyncMessage.Sent sent = 1; - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - boolean hasSent(); - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent getSent(); - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder getSentOrBuilder(); - - // optional .signalservice.SyncMessage.Contacts contacts = 2; - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - boolean hasContacts(); - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts getContacts(); - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder getContactsOrBuilder(); - - // optional .signalservice.SyncMessage.Groups groups = 3; - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - boolean hasGroups(); - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups getGroups(); - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder getGroupsOrBuilder(); - - // optional .signalservice.SyncMessage.Request request = 4; - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - boolean hasRequest(); - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request getRequest(); - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder getRequestOrBuilder(); - - // repeated .signalservice.SyncMessage.Read read = 5; - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - java.util.List - getReadList(); - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read getRead(int index); - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - int getReadCount(); - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - java.util.List - getReadOrBuilderList(); - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder getReadOrBuilder( - int index); - - // optional .signalservice.SyncMessage.Blocked blocked = 6; - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - boolean hasBlocked(); - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked getBlocked(); - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder getBlockedOrBuilder(); - - // optional .signalservice.Verified verified = 7; - /** - * optional .signalservice.Verified verified = 7; - */ - boolean hasVerified(); - /** - * optional .signalservice.Verified verified = 7; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getVerified(); - /** - * optional .signalservice.Verified verified = 7; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder getVerifiedOrBuilder(); - - // optional .signalservice.SyncMessage.Configuration configuration = 9; - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - boolean hasConfiguration(); - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration getConfiguration(); - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder getConfigurationOrBuilder(); - - // optional bytes padding = 8; - /** - * optional bytes padding = 8; - */ - boolean hasPadding(); - /** - * optional bytes padding = 8; - */ - com.google.protobuf.ByteString getPadding(); - - // repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - java.util.List - getStickerPackOperationList(); - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation getStickerPackOperation(int index); - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - int getStickerPackOperationCount(); - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - java.util.List - getStickerPackOperationOrBuilderList(); - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder getStickerPackOperationOrBuilder( - int index); - - // repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - java.util.List - getOpenGroupsList(); - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails getOpenGroups(int index); - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - int getOpenGroupsCount(); - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - java.util.List - getOpenGroupsOrBuilderList(); - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder getOpenGroupsOrBuilder( - int index); - } - /** - * Protobuf type {@code signalservice.SyncMessage} - */ - public static final class SyncMessage extends - com.google.protobuf.GeneratedMessage - implements SyncMessageOrBuilder { - // Use SyncMessage.newBuilder() to construct. - private SyncMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SyncMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SyncMessage defaultInstance; - public static SyncMessage getDefaultInstance() { - return defaultInstance; - } - - public SyncMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SyncMessage( - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = sent_.toBuilder(); - } - sent_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sent_); - sent_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 18: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = contacts_.toBuilder(); - } - contacts_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contacts_); - contacts_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = groups_.toBuilder(); - } - groups_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(groups_); - groups_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 34: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - subBuilder = request_.toBuilder(); - } - request_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(request_); - request_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000008; - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - read_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000010; - } - read_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.PARSER, extensionRegistry)); - break; - } - case 50: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder subBuilder = null; - if (((bitField0_ & 0x00000010) == 0x00000010)) { - subBuilder = blocked_.toBuilder(); - } - blocked_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(blocked_); - blocked_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000010; - break; - } - case 58: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder subBuilder = null; - if (((bitField0_ & 0x00000020) == 0x00000020)) { - subBuilder = verified_.toBuilder(); - } - verified_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(verified_); - verified_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000020; - break; - } - case 66: { - bitField0_ |= 0x00000080; - padding_ = input.readBytes(); - break; - } - case 74: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder subBuilder = null; - if (((bitField0_ & 0x00000040) == 0x00000040)) { - subBuilder = configuration_.toBuilder(); - } - configuration_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(configuration_); - configuration_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000040; - break; - } - case 82: { - if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) { - stickerPackOperation_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000200; - } - stickerPackOperation_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.PARSER, extensionRegistry)); - break; - } - case 802: { - if (!((mutable_bitField0_ & 0x00000400) == 0x00000400)) { - openGroups_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000400; - } - openGroups_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.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_ & 0x00000010) == 0x00000010)) { - read_ = java.util.Collections.unmodifiableList(read_); - } - if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) { - stickerPackOperation_ = java.util.Collections.unmodifiableList(stickerPackOperation_); - } - if (((mutable_bitField0_ & 0x00000400) == 0x00000400)) { - openGroups_ = java.util.Collections.unmodifiableList(openGroups_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SyncMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SyncMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface SentOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string destination = 1; - /** - * optional string destination = 1; - */ - boolean hasDestination(); - /** - * optional string destination = 1; - */ - java.lang.String getDestination(); - /** - * optional string destination = 1; - */ - com.google.protobuf.ByteString - getDestinationBytes(); - - // optional uint64 timestamp = 2; - /** - * optional uint64 timestamp = 2; - */ - boolean hasTimestamp(); - /** - * optional uint64 timestamp = 2; - */ - long getTimestamp(); - - // optional .signalservice.DataMessage message = 3; - /** - * optional .signalservice.DataMessage message = 3; - */ - boolean hasMessage(); - /** - * optional .signalservice.DataMessage message = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getMessage(); - /** - * optional .signalservice.DataMessage message = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder getMessageOrBuilder(); - - // optional uint64 expirationStartTimestamp = 4; - /** - * optional uint64 expirationStartTimestamp = 4; - */ - boolean hasExpirationStartTimestamp(); - /** - * optional uint64 expirationStartTimestamp = 4; - */ - long getExpirationStartTimestamp(); - - // repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - java.util.List - getUnidentifiedStatusList(); - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus getUnidentifiedStatus(int index); - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - int getUnidentifiedStatusCount(); - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - java.util.List - getUnidentifiedStatusOrBuilderList(); - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder getUnidentifiedStatusOrBuilder( - int index); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Sent} - */ - public static final class Sent extends - com.google.protobuf.GeneratedMessage - implements SentOrBuilder { - // Use Sent.newBuilder() to construct. - private Sent(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Sent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Sent defaultInstance; - public static Sent getDefaultInstance() { - return defaultInstance; - } - - public Sent getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Sent( - 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; - destination_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - timestamp_ = input.readUInt64(); - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = message_.toBuilder(); - } - message_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(message_); - message_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 32: { - bitField0_ |= 0x00000008; - expirationStartTimestamp_ = input.readUInt64(); - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - unidentifiedStatus_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000010; - } - unidentifiedStatus_.add(input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.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_ & 0x00000010) == 0x00000010)) { - unidentifiedStatus_ = java.util.Collections.unmodifiableList(unidentifiedStatus_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Sent parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Sent(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface UnidentifiedDeliveryStatusOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string destination = 1; - /** - * optional string destination = 1; - */ - boolean hasDestination(); - /** - * optional string destination = 1; - */ - java.lang.String getDestination(); - /** - * optional string destination = 1; - */ - com.google.protobuf.ByteString - getDestinationBytes(); - - // optional bool unidentified = 2; - /** - * optional bool unidentified = 2; - */ - boolean hasUnidentified(); - /** - * optional bool unidentified = 2; - */ - boolean getUnidentified(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus} - */ - public static final class UnidentifiedDeliveryStatus extends - com.google.protobuf.GeneratedMessage - implements UnidentifiedDeliveryStatusOrBuilder { - // Use UnidentifiedDeliveryStatus.newBuilder() to construct. - private UnidentifiedDeliveryStatus(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private UnidentifiedDeliveryStatus(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final UnidentifiedDeliveryStatus defaultInstance; - public static UnidentifiedDeliveryStatus getDefaultInstance() { - return defaultInstance; - } - - public UnidentifiedDeliveryStatus getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private UnidentifiedDeliveryStatus( - 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; - destination_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - unidentified_ = input.readBool(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public UnidentifiedDeliveryStatus parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new UnidentifiedDeliveryStatus(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string destination = 1; - public static final int DESTINATION_FIELD_NUMBER = 1; - private java.lang.Object destination_; - /** - * optional string destination = 1; - */ - public boolean hasDestination() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string destination = 1; - */ - public java.lang.String getDestination() { - java.lang.Object ref = destination_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - destination_ = s; - } - return s; - } - } - /** - * optional string destination = 1; - */ - public com.google.protobuf.ByteString - getDestinationBytes() { - java.lang.Object ref = destination_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - destination_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bool unidentified = 2; - public static final int UNIDENTIFIED_FIELD_NUMBER = 2; - private boolean unidentified_; - /** - * optional bool unidentified = 2; - */ - public boolean hasUnidentified() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool unidentified = 2; - */ - public boolean getUnidentified() { - return unidentified_; - } - - private void initFields() { - destination_ = ""; - unidentified_ = false; - } - 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, getDestinationBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBool(2, unidentified_); - } - 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, getDestinationBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, unidentified_); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus 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 signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.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(); - destination_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - unidentified_ = false; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.destination_ = destination_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.unidentified_ = unidentified_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.getDefaultInstance()) return this; - if (other.hasDestination()) { - bitField0_ |= 0x00000001; - destination_ = other.destination_; - onChanged(); - } - if (other.hasUnidentified()) { - setUnidentified(other.getUnidentified()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string destination = 1; - private java.lang.Object destination_ = ""; - /** - * optional string destination = 1; - */ - public boolean hasDestination() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string destination = 1; - */ - public java.lang.String getDestination() { - java.lang.Object ref = destination_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - destination_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string destination = 1; - */ - public com.google.protobuf.ByteString - getDestinationBytes() { - java.lang.Object ref = destination_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - destination_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string destination = 1; - */ - public Builder setDestination( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - destination_ = value; - onChanged(); - return this; - } - /** - * optional string destination = 1; - */ - public Builder clearDestination() { - bitField0_ = (bitField0_ & ~0x00000001); - destination_ = getDefaultInstance().getDestination(); - onChanged(); - return this; - } - /** - * optional string destination = 1; - */ - public Builder setDestinationBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - destination_ = value; - onChanged(); - return this; - } - - // optional bool unidentified = 2; - private boolean unidentified_ ; - /** - * optional bool unidentified = 2; - */ - public boolean hasUnidentified() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool unidentified = 2; - */ - public boolean getUnidentified() { - return unidentified_; - } - /** - * optional bool unidentified = 2; - */ - public Builder setUnidentified(boolean value) { - bitField0_ |= 0x00000002; - unidentified_ = value; - onChanged(); - return this; - } - /** - * optional bool unidentified = 2; - */ - public Builder clearUnidentified() { - bitField0_ = (bitField0_ & ~0x00000002); - unidentified_ = false; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus) - } - - static { - defaultInstance = new UnidentifiedDeliveryStatus(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus) - } - - private int bitField0_; - // optional string destination = 1; - public static final int DESTINATION_FIELD_NUMBER = 1; - private java.lang.Object destination_; - /** - * optional string destination = 1; - */ - public boolean hasDestination() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string destination = 1; - */ - public java.lang.String getDestination() { - java.lang.Object ref = destination_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - destination_ = s; - } - return s; - } - } - /** - * optional string destination = 1; - */ - public com.google.protobuf.ByteString - getDestinationBytes() { - java.lang.Object ref = destination_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - destination_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint64 timestamp = 2; - public static final int TIMESTAMP_FIELD_NUMBER = 2; - private long timestamp_; - /** - * optional uint64 timestamp = 2; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint64 timestamp = 2; - */ - public long getTimestamp() { - return timestamp_; - } - - // optional .signalservice.DataMessage message = 3; - public static final int MESSAGE_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage message_; - /** - * optional .signalservice.DataMessage message = 3; - */ - public boolean hasMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getMessage() { - return message_; - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder getMessageOrBuilder() { - return message_; - } - - // optional uint64 expirationStartTimestamp = 4; - public static final int EXPIRATIONSTARTTIMESTAMP_FIELD_NUMBER = 4; - private long expirationStartTimestamp_; - /** - * optional uint64 expirationStartTimestamp = 4; - */ - public boolean hasExpirationStartTimestamp() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint64 expirationStartTimestamp = 4; - */ - public long getExpirationStartTimestamp() { - return expirationStartTimestamp_; - } - - // repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - public static final int UNIDENTIFIEDSTATUS_FIELD_NUMBER = 5; - private java.util.List unidentifiedStatus_; - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public java.util.List getUnidentifiedStatusList() { - return unidentifiedStatus_; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public java.util.List - getUnidentifiedStatusOrBuilderList() { - return unidentifiedStatus_; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public int getUnidentifiedStatusCount() { - return unidentifiedStatus_.size(); - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus getUnidentifiedStatus(int index) { - return unidentifiedStatus_.get(index); - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder getUnidentifiedStatusOrBuilder( - int index) { - return unidentifiedStatus_.get(index); - } - - private void initFields() { - destination_ = ""; - timestamp_ = 0L; - message_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - expirationStartTimestamp_ = 0L; - unidentifiedStatus_ = 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, getDestinationBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt64(2, timestamp_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, message_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeUInt64(4, expirationStartTimestamp_); - } - for (int i = 0; i < unidentifiedStatus_.size(); i++) { - output.writeMessage(5, unidentifiedStatus_.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, getDestinationBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, timestamp_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, message_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, expirationStartTimestamp_); - } - for (int i = 0; i < unidentifiedStatus_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, unidentifiedStatus_.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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent 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 signalservice.SyncMessage.Sent} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getMessageFieldBuilder(); - getUnidentifiedStatusFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - destination_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000002); - if (messageBuilder_ == null) { - message_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - } else { - messageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - expirationStartTimestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000008); - if (unidentifiedStatusBuilder_ == null) { - unidentifiedStatus_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - } else { - unidentifiedStatusBuilder_.clear(); - } - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Sent_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.destination_ = destination_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.timestamp_ = timestamp_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (messageBuilder_ == null) { - result.message_ = message_; - } else { - result.message_ = messageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.expirationStartTimestamp_ = expirationStartTimestamp_; - if (unidentifiedStatusBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010)) { - unidentifiedStatus_ = java.util.Collections.unmodifiableList(unidentifiedStatus_); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.unidentifiedStatus_ = unidentifiedStatus_; - } else { - result.unidentifiedStatus_ = unidentifiedStatusBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance()) return this; - if (other.hasDestination()) { - bitField0_ |= 0x00000001; - destination_ = other.destination_; - onChanged(); - } - if (other.hasTimestamp()) { - setTimestamp(other.getTimestamp()); - } - if (other.hasMessage()) { - mergeMessage(other.getMessage()); - } - if (other.hasExpirationStartTimestamp()) { - setExpirationStartTimestamp(other.getExpirationStartTimestamp()); - } - if (unidentifiedStatusBuilder_ == null) { - if (!other.unidentifiedStatus_.isEmpty()) { - if (unidentifiedStatus_.isEmpty()) { - unidentifiedStatus_ = other.unidentifiedStatus_; - bitField0_ = (bitField0_ & ~0x00000010); - } else { - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.addAll(other.unidentifiedStatus_); - } - onChanged(); - } - } else { - if (!other.unidentifiedStatus_.isEmpty()) { - if (unidentifiedStatusBuilder_.isEmpty()) { - unidentifiedStatusBuilder_.dispose(); - unidentifiedStatusBuilder_ = null; - unidentifiedStatus_ = other.unidentifiedStatus_; - bitField0_ = (bitField0_ & ~0x00000010); - unidentifiedStatusBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getUnidentifiedStatusFieldBuilder() : null; - } else { - unidentifiedStatusBuilder_.addAllMessages(other.unidentifiedStatus_); - } - } - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string destination = 1; - private java.lang.Object destination_ = ""; - /** - * optional string destination = 1; - */ - public boolean hasDestination() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string destination = 1; - */ - public java.lang.String getDestination() { - java.lang.Object ref = destination_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - destination_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string destination = 1; - */ - public com.google.protobuf.ByteString - getDestinationBytes() { - java.lang.Object ref = destination_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - destination_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string destination = 1; - */ - public Builder setDestination( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - destination_ = value; - onChanged(); - return this; - } - /** - * optional string destination = 1; - */ - public Builder clearDestination() { - bitField0_ = (bitField0_ & ~0x00000001); - destination_ = getDefaultInstance().getDestination(); - onChanged(); - return this; - } - /** - * optional string destination = 1; - */ - public Builder setDestinationBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - destination_ = value; - onChanged(); - return this; - } - - // optional uint64 timestamp = 2; - private long timestamp_ ; - /** - * optional uint64 timestamp = 2; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint64 timestamp = 2; - */ - public long getTimestamp() { - return timestamp_; - } - /** - * optional uint64 timestamp = 2; - */ - public Builder setTimestamp(long value) { - bitField0_ |= 0x00000002; - timestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 timestamp = 2; - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000002); - timestamp_ = 0L; - onChanged(); - return this; - } - - // optional .signalservice.DataMessage message = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage message_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder> messageBuilder_; - /** - * optional .signalservice.DataMessage message = 3; - */ - public boolean hasMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage getMessage() { - if (messageBuilder_ == null) { - return message_; - } else { - return messageBuilder_.getMessage(); - } - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public Builder setMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage value) { - if (messageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - message_ = value; - onChanged(); - } else { - messageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public Builder setMessage( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder builderForValue) { - if (messageBuilder_ == null) { - message_ = builderForValue.build(); - onChanged(); - } else { - messageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public Builder mergeMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage value) { - if (messageBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - message_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance()) { - message_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.newBuilder(message_).mergeFrom(value).buildPartial(); - } else { - message_ = value; - } - onChanged(); - } else { - messageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public Builder clearMessage() { - if (messageBuilder_ == null) { - message_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.getDefaultInstance(); - onChanged(); - } else { - messageBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder getMessageBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getMessageFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.DataMessage message = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder getMessageOrBuilder() { - if (messageBuilder_ != null) { - return messageBuilder_.getMessageOrBuilder(); - } else { - return message_; - } - } - /** - * optional .signalservice.DataMessage message = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder> - getMessageFieldBuilder() { - if (messageBuilder_ == null) { - messageBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessage.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.DataMessageOrBuilder>( - message_, - getParentForChildren(), - isClean()); - message_ = null; - } - return messageBuilder_; - } - - // optional uint64 expirationStartTimestamp = 4; - private long expirationStartTimestamp_ ; - /** - * optional uint64 expirationStartTimestamp = 4; - */ - public boolean hasExpirationStartTimestamp() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint64 expirationStartTimestamp = 4; - */ - public long getExpirationStartTimestamp() { - return expirationStartTimestamp_; - } - /** - * optional uint64 expirationStartTimestamp = 4; - */ - public Builder setExpirationStartTimestamp(long value) { - bitField0_ |= 0x00000008; - expirationStartTimestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 expirationStartTimestamp = 4; - */ - public Builder clearExpirationStartTimestamp() { - bitField0_ = (bitField0_ & ~0x00000008); - expirationStartTimestamp_ = 0L; - onChanged(); - return this; - } - - // repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - private java.util.List unidentifiedStatus_ = - java.util.Collections.emptyList(); - private void ensureUnidentifiedStatusIsMutable() { - if (!((bitField0_ & 0x00000010) == 0x00000010)) { - unidentifiedStatus_ = new java.util.ArrayList(unidentifiedStatus_); - bitField0_ |= 0x00000010; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder> unidentifiedStatusBuilder_; - - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public java.util.List getUnidentifiedStatusList() { - if (unidentifiedStatusBuilder_ == null) { - return java.util.Collections.unmodifiableList(unidentifiedStatus_); - } else { - return unidentifiedStatusBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public int getUnidentifiedStatusCount() { - if (unidentifiedStatusBuilder_ == null) { - return unidentifiedStatus_.size(); - } else { - return unidentifiedStatusBuilder_.getCount(); - } - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus getUnidentifiedStatus(int index) { - if (unidentifiedStatusBuilder_ == null) { - return unidentifiedStatus_.get(index); - } else { - return unidentifiedStatusBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder setUnidentifiedStatus( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus value) { - if (unidentifiedStatusBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.set(index, value); - onChanged(); - } else { - unidentifiedStatusBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder setUnidentifiedStatus( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder builderForValue) { - if (unidentifiedStatusBuilder_ == null) { - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.set(index, builderForValue.build()); - onChanged(); - } else { - unidentifiedStatusBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder addUnidentifiedStatus(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus value) { - if (unidentifiedStatusBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.add(value); - onChanged(); - } else { - unidentifiedStatusBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder addUnidentifiedStatus( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus value) { - if (unidentifiedStatusBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.add(index, value); - onChanged(); - } else { - unidentifiedStatusBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder addUnidentifiedStatus( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder builderForValue) { - if (unidentifiedStatusBuilder_ == null) { - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.add(builderForValue.build()); - onChanged(); - } else { - unidentifiedStatusBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder addUnidentifiedStatus( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder builderForValue) { - if (unidentifiedStatusBuilder_ == null) { - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.add(index, builderForValue.build()); - onChanged(); - } else { - unidentifiedStatusBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder addAllUnidentifiedStatus( - java.lang.Iterable values) { - if (unidentifiedStatusBuilder_ == null) { - ensureUnidentifiedStatusIsMutable(); - super.addAll(values, unidentifiedStatus_); - onChanged(); - } else { - unidentifiedStatusBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder clearUnidentifiedStatus() { - if (unidentifiedStatusBuilder_ == null) { - unidentifiedStatus_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - } else { - unidentifiedStatusBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public Builder removeUnidentifiedStatus(int index) { - if (unidentifiedStatusBuilder_ == null) { - ensureUnidentifiedStatusIsMutable(); - unidentifiedStatus_.remove(index); - onChanged(); - } else { - unidentifiedStatusBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder getUnidentifiedStatusBuilder( - int index) { - return getUnidentifiedStatusFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder getUnidentifiedStatusOrBuilder( - int index) { - if (unidentifiedStatusBuilder_ == null) { - return unidentifiedStatus_.get(index); } else { - return unidentifiedStatusBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public java.util.List - getUnidentifiedStatusOrBuilderList() { - if (unidentifiedStatusBuilder_ != null) { - return unidentifiedStatusBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(unidentifiedStatus_); - } - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder addUnidentifiedStatusBuilder() { - return getUnidentifiedStatusFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder addUnidentifiedStatusBuilder( - int index) { - return getUnidentifiedStatusFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.Sent.UnidentifiedDeliveryStatus unidentifiedStatus = 5; - */ - public java.util.List - getUnidentifiedStatusBuilderList() { - return getUnidentifiedStatusFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder> - getUnidentifiedStatusFieldBuilder() { - if (unidentifiedStatusBuilder_ == null) { - unidentifiedStatusBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatus.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.UnidentifiedDeliveryStatusOrBuilder>( - unidentifiedStatus_, - ((bitField0_ & 0x00000010) == 0x00000010), - getParentForChildren(), - isClean()); - unidentifiedStatus_ = null; - } - return unidentifiedStatusBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Sent) - } - - static { - defaultInstance = new Sent(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Sent) - } - - public interface ContactsOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.AttachmentPointer blob = 1; - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - boolean hasBlob(); - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getBlob(); - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getBlobOrBuilder(); - - // optional bool complete = 2 [default = false]; - /** - * optional bool complete = 2 [default = false]; - */ - boolean hasComplete(); - /** - * optional bool complete = 2 [default = false]; - */ - boolean getComplete(); - - // optional bytes data = 101; - /** - * optional bytes data = 101; - */ - boolean hasData(); - /** - * optional bytes data = 101; - */ - com.google.protobuf.ByteString getData(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Contacts} - */ - public static final class Contacts extends - com.google.protobuf.GeneratedMessage - implements ContactsOrBuilder { - // Use Contacts.newBuilder() to construct. - private Contacts(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Contacts(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Contacts defaultInstance; - public static Contacts getDefaultInstance() { - return defaultInstance; - } - - public Contacts getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Contacts( - 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = blob_.toBuilder(); - } - blob_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(blob_); - blob_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 16: { - bitField0_ |= 0x00000002; - complete_ = input.readBool(); - break; - } - case 810: { - bitField0_ |= 0x00000004; - data_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Contacts_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Contacts_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Contacts parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Contacts(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional .signalservice.AttachmentPointer blob = 1; - public static final int BLOB_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer blob_; - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public boolean hasBlob() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getBlob() { - return blob_; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getBlobOrBuilder() { - return blob_; - } - - // optional bool complete = 2 [default = false]; - public static final int COMPLETE_FIELD_NUMBER = 2; - private boolean complete_; - /** - * optional bool complete = 2 [default = false]; - */ - public boolean hasComplete() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool complete = 2 [default = false]; - */ - public boolean getComplete() { - return complete_; - } - - // optional bytes data = 101; - public static final int DATA_FIELD_NUMBER = 101; - private com.google.protobuf.ByteString data_; - /** - * optional bytes data = 101; - */ - public boolean hasData() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes data = 101; - */ - public com.google.protobuf.ByteString getData() { - return data_; - } - - private void initFields() { - blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - complete_ = false; - data_ = 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.writeMessage(1, blob_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBool(2, complete_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(101, data_); - } - 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, blob_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, complete_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(101, data_); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts 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 signalservice.SyncMessage.Contacts} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Contacts_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Contacts_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getBlobFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (blobBuilder_ == null) { - blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - blobBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - complete_ = false; - bitField0_ = (bitField0_ & ~0x00000002); - data_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Contacts_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (blobBuilder_ == null) { - result.blob_ = blob_; - } else { - result.blob_ = blobBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.complete_ = complete_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.data_ = data_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance()) return this; - if (other.hasBlob()) { - mergeBlob(other.getBlob()); - } - if (other.hasComplete()) { - setComplete(other.getComplete()); - } - if (other.hasData()) { - setData(other.getData()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.AttachmentPointer blob = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> blobBuilder_; - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public boolean hasBlob() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getBlob() { - if (blobBuilder_ == null) { - return blob_; - } else { - return blobBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder setBlob(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (blobBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - blob_ = value; - onChanged(); - } else { - blobBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder setBlob( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (blobBuilder_ == null) { - blob_ = builderForValue.build(); - onChanged(); - } else { - blobBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder mergeBlob(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (blobBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - blob_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - blob_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(blob_).mergeFrom(value).buildPartial(); - } else { - blob_ = value; - } - onChanged(); - } else { - blobBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder clearBlob() { - if (blobBuilder_ == null) { - blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - blobBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getBlobBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getBlobFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getBlobOrBuilder() { - if (blobBuilder_ != null) { - return blobBuilder_.getMessageOrBuilder(); - } else { - return blob_; - } - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getBlobFieldBuilder() { - if (blobBuilder_ == null) { - blobBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - blob_, - getParentForChildren(), - isClean()); - blob_ = null; - } - return blobBuilder_; - } - - // optional bool complete = 2 [default = false]; - private boolean complete_ ; - /** - * optional bool complete = 2 [default = false]; - */ - public boolean hasComplete() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool complete = 2 [default = false]; - */ - public boolean getComplete() { - return complete_; - } - /** - * optional bool complete = 2 [default = false]; - */ - public Builder setComplete(boolean value) { - bitField0_ |= 0x00000002; - complete_ = value; - onChanged(); - return this; - } - /** - * optional bool complete = 2 [default = false]; - */ - public Builder clearComplete() { - bitField0_ = (bitField0_ & ~0x00000002); - complete_ = false; - onChanged(); - return this; - } - - // optional bytes data = 101; - private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes data = 101; - */ - public boolean hasData() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes data = 101; - */ - public com.google.protobuf.ByteString getData() { - return data_; - } - /** - * optional bytes data = 101; - */ - public Builder setData(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - data_ = value; - onChanged(); - return this; - } - /** - * optional bytes data = 101; - */ - public Builder clearData() { - bitField0_ = (bitField0_ & ~0x00000004); - data_ = getDefaultInstance().getData(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Contacts) - } - - static { - defaultInstance = new Contacts(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Contacts) - } - - public interface GroupsOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.AttachmentPointer blob = 1; - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - boolean hasBlob(); - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getBlob(); - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getBlobOrBuilder(); - - // optional bytes data = 101; - /** - * optional bytes data = 101; - */ - boolean hasData(); - /** - * optional bytes data = 101; - */ - com.google.protobuf.ByteString getData(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Groups} - */ - public static final class Groups extends - com.google.protobuf.GeneratedMessage - implements GroupsOrBuilder { - // Use Groups.newBuilder() to construct. - private Groups(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Groups(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Groups defaultInstance; - public static Groups getDefaultInstance() { - return defaultInstance; - } - - public Groups getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Groups( - 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - subBuilder = blob_.toBuilder(); - } - blob_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(blob_); - blob_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000001; - break; - } - case 810: { - bitField0_ |= 0x00000002; - data_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Groups_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Groups_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Groups parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Groups(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional .signalservice.AttachmentPointer blob = 1; - public static final int BLOB_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer blob_; - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public boolean hasBlob() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getBlob() { - return blob_; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getBlobOrBuilder() { - return blob_; - } - - // optional bytes data = 101; - public static final int DATA_FIELD_NUMBER = 101; - private com.google.protobuf.ByteString data_; - /** - * optional bytes data = 101; - */ - public boolean hasData() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes data = 101; - */ - public com.google.protobuf.ByteString getData() { - return data_; - } - - private void initFields() { - blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - data_ = 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.writeMessage(1, blob_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(101, data_); - } - 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, blob_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(101, data_); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups 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 signalservice.SyncMessage.Groups} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Groups_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Groups_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getBlobFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (blobBuilder_ == null) { - blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - blobBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - data_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Groups_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (blobBuilder_ == null) { - result.blob_ = blob_; - } else { - result.blob_ = blobBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.data_ = data_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance()) return this; - if (other.hasBlob()) { - mergeBlob(other.getBlob()); - } - if (other.hasData()) { - setData(other.getData()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.AttachmentPointer blob = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> blobBuilder_; - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public boolean hasBlob() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getBlob() { - if (blobBuilder_ == null) { - return blob_; - } else { - return blobBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder setBlob(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (blobBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - blob_ = value; - onChanged(); - } else { - blobBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder setBlob( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (blobBuilder_ == null) { - blob_ = builderForValue.build(); - onChanged(); - } else { - blobBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder mergeBlob(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (blobBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - blob_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - blob_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(blob_).mergeFrom(value).buildPartial(); - } else { - blob_ = value; - } - onChanged(); - } else { - blobBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public Builder clearBlob() { - if (blobBuilder_ == null) { - blob_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - blobBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getBlobBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getBlobFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getBlobOrBuilder() { - if (blobBuilder_ != null) { - return blobBuilder_.getMessageOrBuilder(); - } else { - return blob_; - } - } - /** - * optional .signalservice.AttachmentPointer blob = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getBlobFieldBuilder() { - if (blobBuilder_ == null) { - blobBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - blob_, - getParentForChildren(), - isClean()); - blob_ = null; - } - return blobBuilder_; - } - - // optional bytes data = 101; - private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes data = 101; - */ - public boolean hasData() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes data = 101; - */ - public com.google.protobuf.ByteString getData() { - return data_; - } - /** - * optional bytes data = 101; - */ - public Builder setData(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - data_ = value; - onChanged(); - return this; - } - /** - * optional bytes data = 101; - */ - public Builder clearData() { - bitField0_ = (bitField0_ & ~0x00000002); - data_ = getDefaultInstance().getData(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Groups) - } - - static { - defaultInstance = new Groups(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Groups) - } - - public interface BlockedOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // repeated string numbers = 1; - /** - * repeated string numbers = 1; - */ - java.util.List - getNumbersList(); - /** - * repeated string numbers = 1; - */ - int getNumbersCount(); - /** - * repeated string numbers = 1; - */ - java.lang.String getNumbers(int index); - /** - * repeated string numbers = 1; - */ - com.google.protobuf.ByteString - getNumbersBytes(int index); - - // repeated bytes groupIds = 2; - /** - * repeated bytes groupIds = 2; - */ - java.util.List getGroupIdsList(); - /** - * repeated bytes groupIds = 2; - */ - int getGroupIdsCount(); - /** - * repeated bytes groupIds = 2; - */ - com.google.protobuf.ByteString getGroupIds(int index); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Blocked} - */ - public static final class Blocked extends - com.google.protobuf.GeneratedMessage - implements BlockedOrBuilder { - // Use Blocked.newBuilder() to construct. - private Blocked(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Blocked(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Blocked defaultInstance; - public static Blocked getDefaultInstance() { - return defaultInstance; - } - - public Blocked getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Blocked( - 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)) { - numbers_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000001; - } - numbers_.add(input.readBytes()); - break; - } - case 18: { - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - groupIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - groupIds_.add(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_ & 0x00000001) == 0x00000001)) { - numbers_ = new com.google.protobuf.UnmodifiableLazyStringList(numbers_); - } - if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - groupIds_ = java.util.Collections.unmodifiableList(groupIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Blocked_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Blocked_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Blocked parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Blocked(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - // repeated string numbers = 1; - public static final int NUMBERS_FIELD_NUMBER = 1; - private com.google.protobuf.LazyStringList numbers_; - /** - * repeated string numbers = 1; - */ - public java.util.List - getNumbersList() { - return numbers_; - } - /** - * repeated string numbers = 1; - */ - public int getNumbersCount() { - return numbers_.size(); - } - /** - * repeated string numbers = 1; - */ - public java.lang.String getNumbers(int index) { - return numbers_.get(index); - } - /** - * repeated string numbers = 1; - */ - public com.google.protobuf.ByteString - getNumbersBytes(int index) { - return numbers_.getByteString(index); - } - - // repeated bytes groupIds = 2; - public static final int GROUPIDS_FIELD_NUMBER = 2; - private java.util.List groupIds_; - /** - * repeated bytes groupIds = 2; - */ - public java.util.List - getGroupIdsList() { - return groupIds_; - } - /** - * repeated bytes groupIds = 2; - */ - public int getGroupIdsCount() { - return groupIds_.size(); - } - /** - * repeated bytes groupIds = 2; - */ - public com.google.protobuf.ByteString getGroupIds(int index) { - return groupIds_.get(index); - } - - private void initFields() { - numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - groupIds_ = 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 < numbers_.size(); i++) { - output.writeBytes(1, numbers_.getByteString(i)); - } - for (int i = 0; i < groupIds_.size(); i++) { - output.writeBytes(2, groupIds_.get(i)); - } - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < numbers_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(numbers_.getByteString(i)); - } - size += dataSize; - size += 1 * getNumbersList().size(); - } - { - int dataSize = 0; - for (int i = 0; i < groupIds_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(groupIds_.get(i)); - } - size += dataSize; - size += 1 * getGroupIdsList().size(); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked 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 signalservice.SyncMessage.Blocked} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Blocked_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Blocked_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.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(); - numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - groupIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Blocked_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - numbers_ = new com.google.protobuf.UnmodifiableLazyStringList( - numbers_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.numbers_ = numbers_; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - groupIds_ = java.util.Collections.unmodifiableList(groupIds_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.groupIds_ = groupIds_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance()) return this; - if (!other.numbers_.isEmpty()) { - if (numbers_.isEmpty()) { - numbers_ = other.numbers_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureNumbersIsMutable(); - numbers_.addAll(other.numbers_); - } - onChanged(); - } - if (!other.groupIds_.isEmpty()) { - if (groupIds_.isEmpty()) { - groupIds_ = other.groupIds_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureGroupIdsIsMutable(); - groupIds_.addAll(other.groupIds_); - } - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // repeated string numbers = 1; - private com.google.protobuf.LazyStringList numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureNumbersIsMutable() { - if (!((bitField0_ & 0x00000001) == 0x00000001)) { - numbers_ = new com.google.protobuf.LazyStringArrayList(numbers_); - bitField0_ |= 0x00000001; - } - } - /** - * repeated string numbers = 1; - */ - public java.util.List - getNumbersList() { - return java.util.Collections.unmodifiableList(numbers_); - } - /** - * repeated string numbers = 1; - */ - public int getNumbersCount() { - return numbers_.size(); - } - /** - * repeated string numbers = 1; - */ - public java.lang.String getNumbers(int index) { - return numbers_.get(index); - } - /** - * repeated string numbers = 1; - */ - public com.google.protobuf.ByteString - getNumbersBytes(int index) { - return numbers_.getByteString(index); - } - /** - * repeated string numbers = 1; - */ - public Builder setNumbers( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumbersIsMutable(); - numbers_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string numbers = 1; - */ - public Builder addNumbers( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumbersIsMutable(); - numbers_.add(value); - onChanged(); - return this; - } - /** - * repeated string numbers = 1; - */ - public Builder addAllNumbers( - java.lang.Iterable values) { - ensureNumbersIsMutable(); - super.addAll(values, numbers_); - onChanged(); - return this; - } - /** - * repeated string numbers = 1; - */ - public Builder clearNumbers() { - numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * repeated string numbers = 1; - */ - public Builder addNumbersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumbersIsMutable(); - numbers_.add(value); - onChanged(); - return this; - } - - // repeated bytes groupIds = 2; - private java.util.List groupIds_ = java.util.Collections.emptyList(); - private void ensureGroupIdsIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - groupIds_ = new java.util.ArrayList(groupIds_); - bitField0_ |= 0x00000002; - } - } - /** - * repeated bytes groupIds = 2; - */ - public java.util.List - getGroupIdsList() { - return java.util.Collections.unmodifiableList(groupIds_); - } - /** - * repeated bytes groupIds = 2; - */ - public int getGroupIdsCount() { - return groupIds_.size(); - } - /** - * repeated bytes groupIds = 2; - */ - public com.google.protobuf.ByteString getGroupIds(int index) { - return groupIds_.get(index); - } - /** - * repeated bytes groupIds = 2; - */ - public Builder setGroupIds( - int index, com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureGroupIdsIsMutable(); - groupIds_.set(index, value); - onChanged(); - return this; - } - /** - * repeated bytes groupIds = 2; - */ - public Builder addGroupIds(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureGroupIdsIsMutable(); - groupIds_.add(value); - onChanged(); - return this; - } - /** - * repeated bytes groupIds = 2; - */ - public Builder addAllGroupIds( - java.lang.Iterable values) { - ensureGroupIdsIsMutable(); - super.addAll(values, groupIds_); - onChanged(); - return this; - } - /** - * repeated bytes groupIds = 2; - */ - public Builder clearGroupIds() { - groupIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Blocked) - } - - static { - defaultInstance = new Blocked(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Blocked) - } - - public interface RequestOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.SyncMessage.Request.Type type = 1; - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - boolean hasType(); - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type getType(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Request} - */ - public static final class Request extends - com.google.protobuf.GeneratedMessage - implements RequestOrBuilder { - // Use Request.newBuilder() to construct. - private Request(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Request(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Request defaultInstance; - public static Request getDefaultInstance() { - return defaultInstance; - } - - public Request getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Request( - 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: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(1, rawValue); - } else { - bitField0_ |= 0x00000001; - type_ = value; - } - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Request_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Request_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Request parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Request(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.SyncMessage.Request.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0, 0), - /** - * CONTACTS = 1; - */ - CONTACTS(1, 1), - /** - * GROUPS = 2; - */ - GROUPS(2, 2), - /** - * BLOCKED = 3; - */ - BLOCKED(3, 3), - /** - * CONFIGURATION = 4; - */ - CONFIGURATION(4, 4), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * CONTACTS = 1; - */ - public static final int CONTACTS_VALUE = 1; - /** - * GROUPS = 2; - */ - public static final int GROUPS_VALUE = 2; - /** - * BLOCKED = 3; - */ - public static final int BLOCKED_VALUE = 3; - /** - * CONFIGURATION = 4; - */ - public static final int CONFIGURATION_VALUE = 4; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return CONTACTS; - case 2: return GROUPS; - case 3: return BLOCKED; - case 4: return CONFIGURATION; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.SyncMessage.Request.Type) - } - - private int bitField0_; - // optional .signalservice.SyncMessage.Request.Type type = 1; - public static final int TYPE_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type type_; - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type getType() { - return type_; - } - - private void initFields() { - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type.UNKNOWN; - } - 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.writeEnum(1, type_.getNumber()); - } - 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 - .computeEnumSize(1, type_.getNumber()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request 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 signalservice.SyncMessage.Request} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Request_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Request_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.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(); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type.UNKNOWN; - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Request_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.type_ = type_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance()) return this; - if (other.hasType()) { - setType(other.getType()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.SyncMessage.Request.Type type = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type.UNKNOWN; - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type getType() { - return type_; - } - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.SyncMessage.Request.Type type = 1; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Type.UNKNOWN; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Request) - } - - static { - defaultInstance = new Request(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Request) - } - - public interface ReadOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string sender = 1; - /** - * optional string sender = 1; - */ - boolean hasSender(); - /** - * optional string sender = 1; - */ - java.lang.String getSender(); - /** - * optional string sender = 1; - */ - com.google.protobuf.ByteString - getSenderBytes(); - - // optional uint64 timestamp = 2; - /** - * optional uint64 timestamp = 2; - */ - boolean hasTimestamp(); - /** - * optional uint64 timestamp = 2; - */ - long getTimestamp(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Read} - */ - public static final class Read extends - com.google.protobuf.GeneratedMessage - implements ReadOrBuilder { - // Use Read.newBuilder() to construct. - private Read(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Read(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Read defaultInstance; - public static Read getDefaultInstance() { - return defaultInstance; - } - - public Read getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Read( - 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; - sender_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - timestamp_ = input.readUInt64(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Read_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Read_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Read parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Read(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string sender = 1; - public static final int SENDER_FIELD_NUMBER = 1; - private java.lang.Object sender_; - /** - * optional string sender = 1; - */ - public boolean hasSender() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string sender = 1; - */ - public java.lang.String getSender() { - java.lang.Object ref = sender_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - sender_ = s; - } - return s; - } - } - /** - * optional string sender = 1; - */ - public com.google.protobuf.ByteString - getSenderBytes() { - java.lang.Object ref = sender_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint64 timestamp = 2; - public static final int TIMESTAMP_FIELD_NUMBER = 2; - private long timestamp_; - /** - * optional uint64 timestamp = 2; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint64 timestamp = 2; - */ - public long getTimestamp() { - return timestamp_; - } - - private void initFields() { - sender_ = ""; - 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.writeBytes(1, getSenderBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt64(2, 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 - .computeBytesSize(1, getSenderBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read 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 signalservice.SyncMessage.Read} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Read_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Read_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.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(); - sender_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Read_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.sender_ = sender_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.timestamp_ = timestamp_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.getDefaultInstance()) return this; - if (other.hasSender()) { - bitField0_ |= 0x00000001; - sender_ = other.sender_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string sender = 1; - private java.lang.Object sender_ = ""; - /** - * optional string sender = 1; - */ - public boolean hasSender() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string sender = 1; - */ - public java.lang.String getSender() { - java.lang.Object ref = sender_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - sender_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string sender = 1; - */ - public com.google.protobuf.ByteString - getSenderBytes() { - java.lang.Object ref = sender_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string sender = 1; - */ - public Builder setSender( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - sender_ = value; - onChanged(); - return this; - } - /** - * optional string sender = 1; - */ - public Builder clearSender() { - bitField0_ = (bitField0_ & ~0x00000001); - sender_ = getDefaultInstance().getSender(); - onChanged(); - return this; - } - /** - * optional string sender = 1; - */ - public Builder setSenderBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - sender_ = value; - onChanged(); - return this; - } - - // optional uint64 timestamp = 2; - private long timestamp_ ; - /** - * optional uint64 timestamp = 2; - */ - public boolean hasTimestamp() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint64 timestamp = 2; - */ - public long getTimestamp() { - return timestamp_; - } - /** - * optional uint64 timestamp = 2; - */ - public Builder setTimestamp(long value) { - bitField0_ |= 0x00000002; - timestamp_ = value; - onChanged(); - return this; - } - /** - * optional uint64 timestamp = 2; - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000002); - timestamp_ = 0L; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Read) - } - - static { - defaultInstance = new Read(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Read) - } - - public interface ConfigurationOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bool readReceipts = 1; - /** - * optional bool readReceipts = 1; - */ - boolean hasReadReceipts(); - /** - * optional bool readReceipts = 1; - */ - boolean getReadReceipts(); - - // optional bool unidentifiedDeliveryIndicators = 2; - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - boolean hasUnidentifiedDeliveryIndicators(); - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - boolean getUnidentifiedDeliveryIndicators(); - - // optional bool typingIndicators = 3; - /** - * optional bool typingIndicators = 3; - */ - boolean hasTypingIndicators(); - /** - * optional bool typingIndicators = 3; - */ - boolean getTypingIndicators(); - - // optional bool linkPreviews = 4; - /** - * optional bool linkPreviews = 4; - */ - boolean hasLinkPreviews(); - /** - * optional bool linkPreviews = 4; - */ - boolean getLinkPreviews(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.Configuration} - */ - public static final class Configuration extends - com.google.protobuf.GeneratedMessage - implements ConfigurationOrBuilder { - // Use Configuration.newBuilder() to construct. - private Configuration(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Configuration(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Configuration defaultInstance; - public static Configuration getDefaultInstance() { - return defaultInstance; - } - - public Configuration getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Configuration( - 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; - readReceipts_ = input.readBool(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - unidentifiedDeliveryIndicators_ = input.readBool(); - break; - } - case 24: { - bitField0_ |= 0x00000004; - typingIndicators_ = input.readBool(); - break; - } - case 32: { - bitField0_ |= 0x00000008; - linkPreviews_ = input.readBool(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Configuration_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Configuration_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Configuration parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Configuration(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bool readReceipts = 1; - public static final int READRECEIPTS_FIELD_NUMBER = 1; - private boolean readReceipts_; - /** - * optional bool readReceipts = 1; - */ - public boolean hasReadReceipts() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bool readReceipts = 1; - */ - public boolean getReadReceipts() { - return readReceipts_; - } - - // optional bool unidentifiedDeliveryIndicators = 2; - public static final int UNIDENTIFIEDDELIVERYINDICATORS_FIELD_NUMBER = 2; - private boolean unidentifiedDeliveryIndicators_; - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - public boolean hasUnidentifiedDeliveryIndicators() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - public boolean getUnidentifiedDeliveryIndicators() { - return unidentifiedDeliveryIndicators_; - } - - // optional bool typingIndicators = 3; - public static final int TYPINGINDICATORS_FIELD_NUMBER = 3; - private boolean typingIndicators_; - /** - * optional bool typingIndicators = 3; - */ - public boolean hasTypingIndicators() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bool typingIndicators = 3; - */ - public boolean getTypingIndicators() { - return typingIndicators_; - } - - // optional bool linkPreviews = 4; - public static final int LINKPREVIEWS_FIELD_NUMBER = 4; - private boolean linkPreviews_; - /** - * optional bool linkPreviews = 4; - */ - public boolean hasLinkPreviews() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bool linkPreviews = 4; - */ - public boolean getLinkPreviews() { - return linkPreviews_; - } - - private void initFields() { - readReceipts_ = false; - unidentifiedDeliveryIndicators_ = false; - typingIndicators_ = false; - linkPreviews_ = false; - } - 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.writeBool(1, readReceipts_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBool(2, unidentifiedDeliveryIndicators_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBool(3, typingIndicators_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBool(4, linkPreviews_); - } - 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 - .computeBoolSize(1, readReceipts_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, unidentifiedDeliveryIndicators_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(3, typingIndicators_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(4, linkPreviews_); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration 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 signalservice.SyncMessage.Configuration} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Configuration_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Configuration_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.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(); - readReceipts_ = false; - bitField0_ = (bitField0_ & ~0x00000001); - unidentifiedDeliveryIndicators_ = false; - bitField0_ = (bitField0_ & ~0x00000002); - typingIndicators_ = false; - bitField0_ = (bitField0_ & ~0x00000004); - linkPreviews_ = false; - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_Configuration_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.readReceipts_ = readReceipts_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.unidentifiedDeliveryIndicators_ = unidentifiedDeliveryIndicators_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.typingIndicators_ = typingIndicators_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.linkPreviews_ = linkPreviews_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance()) return this; - if (other.hasReadReceipts()) { - setReadReceipts(other.getReadReceipts()); - } - if (other.hasUnidentifiedDeliveryIndicators()) { - setUnidentifiedDeliveryIndicators(other.getUnidentifiedDeliveryIndicators()); - } - if (other.hasTypingIndicators()) { - setTypingIndicators(other.getTypingIndicators()); - } - if (other.hasLinkPreviews()) { - setLinkPreviews(other.getLinkPreviews()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bool readReceipts = 1; - private boolean readReceipts_ ; - /** - * optional bool readReceipts = 1; - */ - public boolean hasReadReceipts() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bool readReceipts = 1; - */ - public boolean getReadReceipts() { - return readReceipts_; - } - /** - * optional bool readReceipts = 1; - */ - public Builder setReadReceipts(boolean value) { - bitField0_ |= 0x00000001; - readReceipts_ = value; - onChanged(); - return this; - } - /** - * optional bool readReceipts = 1; - */ - public Builder clearReadReceipts() { - bitField0_ = (bitField0_ & ~0x00000001); - readReceipts_ = false; - onChanged(); - return this; - } - - // optional bool unidentifiedDeliveryIndicators = 2; - private boolean unidentifiedDeliveryIndicators_ ; - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - public boolean hasUnidentifiedDeliveryIndicators() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - public boolean getUnidentifiedDeliveryIndicators() { - return unidentifiedDeliveryIndicators_; - } - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - public Builder setUnidentifiedDeliveryIndicators(boolean value) { - bitField0_ |= 0x00000002; - unidentifiedDeliveryIndicators_ = value; - onChanged(); - return this; - } - /** - * optional bool unidentifiedDeliveryIndicators = 2; - */ - public Builder clearUnidentifiedDeliveryIndicators() { - bitField0_ = (bitField0_ & ~0x00000002); - unidentifiedDeliveryIndicators_ = false; - onChanged(); - return this; - } - - // optional bool typingIndicators = 3; - private boolean typingIndicators_ ; - /** - * optional bool typingIndicators = 3; - */ - public boolean hasTypingIndicators() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bool typingIndicators = 3; - */ - public boolean getTypingIndicators() { - return typingIndicators_; - } - /** - * optional bool typingIndicators = 3; - */ - public Builder setTypingIndicators(boolean value) { - bitField0_ |= 0x00000004; - typingIndicators_ = value; - onChanged(); - return this; - } - /** - * optional bool typingIndicators = 3; - */ - public Builder clearTypingIndicators() { - bitField0_ = (bitField0_ & ~0x00000004); - typingIndicators_ = false; - onChanged(); - return this; - } - - // optional bool linkPreviews = 4; - private boolean linkPreviews_ ; - /** - * optional bool linkPreviews = 4; - */ - public boolean hasLinkPreviews() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bool linkPreviews = 4; - */ - public boolean getLinkPreviews() { - return linkPreviews_; - } - /** - * optional bool linkPreviews = 4; - */ - public Builder setLinkPreviews(boolean value) { - bitField0_ |= 0x00000008; - linkPreviews_ = value; - onChanged(); - return this; - } - /** - * optional bool linkPreviews = 4; - */ - public Builder clearLinkPreviews() { - bitField0_ = (bitField0_ & ~0x00000008); - linkPreviews_ = false; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.Configuration) - } - - static { - defaultInstance = new Configuration(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.Configuration) - } - - public interface StickerPackOperationOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes packId = 1; - /** - * optional bytes packId = 1; - */ - boolean hasPackId(); - /** - * optional bytes packId = 1; - */ - com.google.protobuf.ByteString getPackId(); - - // optional bytes packKey = 2; - /** - * optional bytes packKey = 2; - */ - boolean hasPackKey(); - /** - * optional bytes packKey = 2; - */ - com.google.protobuf.ByteString getPackKey(); - - // optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - boolean hasType(); - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type getType(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.StickerPackOperation} - */ - public static final class StickerPackOperation extends - com.google.protobuf.GeneratedMessage - implements StickerPackOperationOrBuilder { - // Use StickerPackOperation.newBuilder() to construct. - private StickerPackOperation(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private StickerPackOperation(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final StickerPackOperation defaultInstance; - public static StickerPackOperation getDefaultInstance() { - return defaultInstance; - } - - public StickerPackOperation getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private StickerPackOperation( - 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; - packId_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - packKey_ = input.readBytes(); - break; - } - case 24: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(3, rawValue); - } else { - bitField0_ |= 0x00000004; - type_ = value; - } - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_StickerPackOperation_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_StickerPackOperation_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public StickerPackOperation parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new StickerPackOperation(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.SyncMessage.StickerPackOperation.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * INSTALL = 0; - */ - INSTALL(0, 0), - /** - * REMOVE = 1; - */ - REMOVE(1, 1), - ; - - /** - * INSTALL = 0; - */ - public static final int INSTALL_VALUE = 0; - /** - * REMOVE = 1; - */ - public static final int REMOVE_VALUE = 1; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return INSTALL; - case 1: return REMOVE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.SyncMessage.StickerPackOperation.Type) - } - - private int bitField0_; - // optional bytes packId = 1; - public static final int PACKID_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString packId_; - /** - * optional bytes packId = 1; - */ - public boolean hasPackId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes packId = 1; - */ - public com.google.protobuf.ByteString getPackId() { - return packId_; - } - - // optional bytes packKey = 2; - public static final int PACKKEY_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString packKey_; - /** - * optional bytes packKey = 2; - */ - public boolean hasPackKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes packKey = 2; - */ - public com.google.protobuf.ByteString getPackKey() { - return packKey_; - } - - // optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - public static final int TYPE_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type type_; - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type getType() { - return type_; - } - - private void initFields() { - packId_ = com.google.protobuf.ByteString.EMPTY; - packKey_ = com.google.protobuf.ByteString.EMPTY; - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type.INSTALL; - } - 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, packId_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, packKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeEnum(3, type_.getNumber()); - } - 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, packId_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, packKey_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(3, type_.getNumber()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation 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 signalservice.SyncMessage.StickerPackOperation} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_StickerPackOperation_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_StickerPackOperation_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.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(); - packId_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - packKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type.INSTALL; - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_StickerPackOperation_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.packId_ = packId_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.packKey_ = packKey_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.type_ = type_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.getDefaultInstance()) return this; - if (other.hasPackId()) { - setPackId(other.getPackId()); - } - if (other.hasPackKey()) { - setPackKey(other.getPackKey()); - } - if (other.hasType()) { - setType(other.getType()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes packId = 1; - private com.google.protobuf.ByteString packId_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes packId = 1; - */ - public boolean hasPackId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes packId = 1; - */ - public com.google.protobuf.ByteString getPackId() { - return packId_; - } - /** - * optional bytes packId = 1; - */ - public Builder setPackId(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - packId_ = value; - onChanged(); - return this; - } - /** - * optional bytes packId = 1; - */ - public Builder clearPackId() { - bitField0_ = (bitField0_ & ~0x00000001); - packId_ = getDefaultInstance().getPackId(); - onChanged(); - return this; - } - - // optional bytes packKey = 2; - private com.google.protobuf.ByteString packKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes packKey = 2; - */ - public boolean hasPackKey() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes packKey = 2; - */ - public com.google.protobuf.ByteString getPackKey() { - return packKey_; - } - /** - * optional bytes packKey = 2; - */ - public Builder setPackKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - packKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes packKey = 2; - */ - public Builder clearPackKey() { - bitField0_ = (bitField0_ & ~0x00000002); - packKey_ = getDefaultInstance().getPackKey(); - onChanged(); - return this; - } - - // optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type.INSTALL; - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type getType() { - return type_; - } - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.SyncMessage.StickerPackOperation.Type type = 3; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000004); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Type.INSTALL; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.StickerPackOperation) - } - - static { - defaultInstance = new StickerPackOperation(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.StickerPackOperation) - } - - public interface OpenGroupDetailsOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string url = 1; - /** - * optional string url = 1; - */ - boolean hasUrl(); - /** - * optional string url = 1; - */ - java.lang.String getUrl(); - /** - * optional string url = 1; - */ - com.google.protobuf.ByteString - getUrlBytes(); - - // optional uint32 channelID = 2; - /** - * optional uint32 channelID = 2; - */ - boolean hasChannelID(); - /** - * optional uint32 channelID = 2; - */ - int getChannelID(); - } - /** - * Protobuf type {@code signalservice.SyncMessage.OpenGroupDetails} - */ - public static final class OpenGroupDetails extends - com.google.protobuf.GeneratedMessage - implements OpenGroupDetailsOrBuilder { - // Use OpenGroupDetails.newBuilder() to construct. - private OpenGroupDetails(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private OpenGroupDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final OpenGroupDetails defaultInstance; - public static OpenGroupDetails getDefaultInstance() { - return defaultInstance; - } - - public OpenGroupDetails getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private OpenGroupDetails( - 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; - url_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - channelID_ = input.readUInt32(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_OpenGroupDetails_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_OpenGroupDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public OpenGroupDetails parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new OpenGroupDetails(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string url = 1; - public static final int URL_FIELD_NUMBER = 1; - private java.lang.Object url_; - /** - * optional string url = 1; - */ - public boolean hasUrl() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string url = 1; - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - url_ = s; - } - return s; - } - } - /** - * optional string url = 1; - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 channelID = 2; - public static final int CHANNELID_FIELD_NUMBER = 2; - private int channelID_; - /** - * optional uint32 channelID = 2; - */ - public boolean hasChannelID() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 channelID = 2; - */ - public int getChannelID() { - return channelID_; - } - - private void initFields() { - url_ = ""; - channelID_ = 0; - } - 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, getUrlBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, channelID_); - } - 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, getUrlBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, channelID_); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails 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 signalservice.SyncMessage.OpenGroupDetails} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_OpenGroupDetails_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_OpenGroupDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.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(); - url_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - channelID_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_OpenGroupDetails_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.url_ = url_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.channelID_ = channelID_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.getDefaultInstance()) return this; - if (other.hasUrl()) { - bitField0_ |= 0x00000001; - url_ = other.url_; - onChanged(); - } - if (other.hasChannelID()) { - setChannelID(other.getChannelID()); - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string url = 1; - private java.lang.Object url_ = ""; - /** - * optional string url = 1; - */ - public boolean hasUrl() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string url = 1; - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - url_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string url = 1; - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string url = 1; - */ - public Builder setUrl( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - url_ = value; - onChanged(); - return this; - } - /** - * optional string url = 1; - */ - public Builder clearUrl() { - bitField0_ = (bitField0_ & ~0x00000001); - url_ = getDefaultInstance().getUrl(); - onChanged(); - return this; - } - /** - * optional string url = 1; - */ - public Builder setUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - url_ = value; - onChanged(); - return this; - } - - // optional uint32 channelID = 2; - private int channelID_ ; - /** - * optional uint32 channelID = 2; - */ - public boolean hasChannelID() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 channelID = 2; - */ - public int getChannelID() { - return channelID_; - } - /** - * optional uint32 channelID = 2; - */ - public Builder setChannelID(int value) { - bitField0_ |= 0x00000002; - channelID_ = value; - onChanged(); - return this; - } - /** - * optional uint32 channelID = 2; - */ - public Builder clearChannelID() { - bitField0_ = (bitField0_ & ~0x00000002); - channelID_ = 0; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage.OpenGroupDetails) - } - - static { - defaultInstance = new OpenGroupDetails(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage.OpenGroupDetails) - } - - private int bitField0_; - // optional .signalservice.SyncMessage.Sent sent = 1; - public static final int SENT_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent sent_; - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public boolean hasSent() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent getSent() { - return sent_; - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder getSentOrBuilder() { - return sent_; - } - - // optional .signalservice.SyncMessage.Contacts contacts = 2; - public static final int CONTACTS_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts contacts_; - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public boolean hasContacts() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts getContacts() { - return contacts_; - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder getContactsOrBuilder() { - return contacts_; - } - - // optional .signalservice.SyncMessage.Groups groups = 3; - public static final int GROUPS_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups groups_; - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public boolean hasGroups() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups getGroups() { - return groups_; - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder getGroupsOrBuilder() { - return groups_; - } - - // optional .signalservice.SyncMessage.Request request = 4; - public static final int REQUEST_FIELD_NUMBER = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request request_; - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public boolean hasRequest() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request getRequest() { - return request_; - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder getRequestOrBuilder() { - return request_; - } - - // repeated .signalservice.SyncMessage.Read read = 5; - public static final int READ_FIELD_NUMBER = 5; - private java.util.List read_; - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public java.util.List getReadList() { - return read_; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public java.util.List - getReadOrBuilderList() { - return read_; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public int getReadCount() { - return read_.size(); - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read getRead(int index) { - return read_.get(index); - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder getReadOrBuilder( - int index) { - return read_.get(index); - } - - // optional .signalservice.SyncMessage.Blocked blocked = 6; - public static final int BLOCKED_FIELD_NUMBER = 6; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked blocked_; - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public boolean hasBlocked() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked getBlocked() { - return blocked_; - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder getBlockedOrBuilder() { - return blocked_; - } - - // optional .signalservice.Verified verified = 7; - public static final int VERIFIED_FIELD_NUMBER = 7; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified verified_; - /** - * optional .signalservice.Verified verified = 7; - */ - public boolean hasVerified() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional .signalservice.Verified verified = 7; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getVerified() { - return verified_; - } - /** - * optional .signalservice.Verified verified = 7; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder getVerifiedOrBuilder() { - return verified_; - } - - // optional .signalservice.SyncMessage.Configuration configuration = 9; - public static final int CONFIGURATION_FIELD_NUMBER = 9; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration configuration_; - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public boolean hasConfiguration() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration getConfiguration() { - return configuration_; - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder getConfigurationOrBuilder() { - return configuration_; - } - - // optional bytes padding = 8; - public static final int PADDING_FIELD_NUMBER = 8; - private com.google.protobuf.ByteString padding_; - /** - * optional bytes padding = 8; - */ - public boolean hasPadding() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional bytes padding = 8; - */ - public com.google.protobuf.ByteString getPadding() { - return padding_; - } - - // repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - public static final int STICKERPACKOPERATION_FIELD_NUMBER = 10; - private java.util.List stickerPackOperation_; - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public java.util.List getStickerPackOperationList() { - return stickerPackOperation_; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public java.util.List - getStickerPackOperationOrBuilderList() { - return stickerPackOperation_; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public int getStickerPackOperationCount() { - return stickerPackOperation_.size(); - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation getStickerPackOperation(int index) { - return stickerPackOperation_.get(index); - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder getStickerPackOperationOrBuilder( - int index) { - return stickerPackOperation_.get(index); - } - - // repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - public static final int OPENGROUPS_FIELD_NUMBER = 100; - private java.util.List openGroups_; - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public java.util.List getOpenGroupsList() { - return openGroups_; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public java.util.List - getOpenGroupsOrBuilderList() { - return openGroups_; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public int getOpenGroupsCount() { - return openGroups_.size(); - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails getOpenGroups(int index) { - return openGroups_.get(index); - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder getOpenGroupsOrBuilder( - int index) { - return openGroups_.get(index); - } - - private void initFields() { - sent_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance(); - contacts_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance(); - groups_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance(); - request_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance(); - read_ = java.util.Collections.emptyList(); - blocked_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance(); - verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - configuration_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance(); - padding_ = com.google.protobuf.ByteString.EMPTY; - stickerPackOperation_ = java.util.Collections.emptyList(); - openGroups_ = 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, sent_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(2, contacts_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, groups_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeMessage(4, request_); - } - for (int i = 0; i < read_.size(); i++) { - output.writeMessage(5, read_.get(i)); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeMessage(6, blocked_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeMessage(7, verified_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeBytes(8, padding_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeMessage(9, configuration_); - } - for (int i = 0; i < stickerPackOperation_.size(); i++) { - output.writeMessage(10, stickerPackOperation_.get(i)); - } - for (int i = 0; i < openGroups_.size(); i++) { - output.writeMessage(100, openGroups_.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, sent_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, contacts_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, groups_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, request_); - } - for (int i = 0; i < read_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, read_.get(i)); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, blocked_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, verified_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(8, padding_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, configuration_); - } - for (int i = 0; i < stickerPackOperation_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, stickerPackOperation_.get(i)); - } - for (int i = 0; i < openGroups_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(100, openGroups_.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.signalservice.internal.push.SignalServiceProtos.SyncMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage 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.signalservice.internal.push.SignalServiceProtos.SyncMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage 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.signalservice.internal.push.SignalServiceProtos.SyncMessage 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 signalservice.SyncMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getSentFieldBuilder(); - getContactsFieldBuilder(); - getGroupsFieldBuilder(); - getRequestFieldBuilder(); - getReadFieldBuilder(); - getBlockedFieldBuilder(); - getVerifiedFieldBuilder(); - getConfigurationFieldBuilder(); - getStickerPackOperationFieldBuilder(); - getOpenGroupsFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - if (sentBuilder_ == null) { - sent_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance(); - } else { - sentBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - if (contactsBuilder_ == null) { - contacts_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance(); - } else { - contactsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - if (groupsBuilder_ == null) { - groups_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance(); - } else { - groupsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - if (requestBuilder_ == null) { - request_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance(); - } else { - requestBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - if (readBuilder_ == null) { - read_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - } else { - readBuilder_.clear(); - } - if (blockedBuilder_ == null) { - blocked_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance(); - } else { - blockedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000020); - if (verifiedBuilder_ == null) { - verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - } else { - verifiedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000040); - if (configurationBuilder_ == null) { - configuration_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance(); - } else { - configurationBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - padding_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000100); - if (stickerPackOperationBuilder_ == null) { - stickerPackOperation_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000200); - } else { - stickerPackOperationBuilder_.clear(); - } - if (openGroupsBuilder_ == null) { - openGroups_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000400); - } else { - openGroupsBuilder_.clear(); - } - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_SyncMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - if (sentBuilder_ == null) { - result.sent_ = sent_; - } else { - result.sent_ = sentBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - if (contactsBuilder_ == null) { - result.contacts_ = contacts_; - } else { - result.contacts_ = contactsBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (groupsBuilder_ == null) { - result.groups_ = groups_; - } else { - result.groups_ = groupsBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - if (requestBuilder_ == null) { - result.request_ = request_; - } else { - result.request_ = requestBuilder_.build(); - } - if (readBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010)) { - read_ = java.util.Collections.unmodifiableList(read_); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.read_ = read_; - } else { - result.read_ = readBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000010; - } - if (blockedBuilder_ == null) { - result.blocked_ = blocked_; - } else { - result.blocked_ = blockedBuilder_.build(); - } - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000020; - } - if (verifiedBuilder_ == null) { - result.verified_ = verified_; - } else { - result.verified_ = verifiedBuilder_.build(); - } - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000040; - } - if (configurationBuilder_ == null) { - result.configuration_ = configuration_; - } else { - result.configuration_ = configurationBuilder_.build(); - } - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000080; - } - result.padding_ = padding_; - if (stickerPackOperationBuilder_ == null) { - if (((bitField0_ & 0x00000200) == 0x00000200)) { - stickerPackOperation_ = java.util.Collections.unmodifiableList(stickerPackOperation_); - bitField0_ = (bitField0_ & ~0x00000200); - } - result.stickerPackOperation_ = stickerPackOperation_; - } else { - result.stickerPackOperation_ = stickerPackOperationBuilder_.build(); - } - if (openGroupsBuilder_ == null) { - if (((bitField0_ & 0x00000400) == 0x00000400)) { - openGroups_ = java.util.Collections.unmodifiableList(openGroups_); - bitField0_ = (bitField0_ & ~0x00000400); - } - result.openGroups_ = openGroups_; - } else { - result.openGroups_ = openGroupsBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.getDefaultInstance()) return this; - if (other.hasSent()) { - mergeSent(other.getSent()); - } - if (other.hasContacts()) { - mergeContacts(other.getContacts()); - } - if (other.hasGroups()) { - mergeGroups(other.getGroups()); - } - if (other.hasRequest()) { - mergeRequest(other.getRequest()); - } - if (readBuilder_ == null) { - if (!other.read_.isEmpty()) { - if (read_.isEmpty()) { - read_ = other.read_; - bitField0_ = (bitField0_ & ~0x00000010); - } else { - ensureReadIsMutable(); - read_.addAll(other.read_); - } - onChanged(); - } - } else { - if (!other.read_.isEmpty()) { - if (readBuilder_.isEmpty()) { - readBuilder_.dispose(); - readBuilder_ = null; - read_ = other.read_; - bitField0_ = (bitField0_ & ~0x00000010); - readBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getReadFieldBuilder() : null; - } else { - readBuilder_.addAllMessages(other.read_); - } - } - } - if (other.hasBlocked()) { - mergeBlocked(other.getBlocked()); - } - if (other.hasVerified()) { - mergeVerified(other.getVerified()); - } - if (other.hasConfiguration()) { - mergeConfiguration(other.getConfiguration()); - } - if (other.hasPadding()) { - setPadding(other.getPadding()); - } - if (stickerPackOperationBuilder_ == null) { - if (!other.stickerPackOperation_.isEmpty()) { - if (stickerPackOperation_.isEmpty()) { - stickerPackOperation_ = other.stickerPackOperation_; - bitField0_ = (bitField0_ & ~0x00000200); - } else { - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.addAll(other.stickerPackOperation_); - } - onChanged(); - } - } else { - if (!other.stickerPackOperation_.isEmpty()) { - if (stickerPackOperationBuilder_.isEmpty()) { - stickerPackOperationBuilder_.dispose(); - stickerPackOperationBuilder_ = null; - stickerPackOperation_ = other.stickerPackOperation_; - bitField0_ = (bitField0_ & ~0x00000200); - stickerPackOperationBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getStickerPackOperationFieldBuilder() : null; - } else { - stickerPackOperationBuilder_.addAllMessages(other.stickerPackOperation_); - } - } - } - if (openGroupsBuilder_ == null) { - if (!other.openGroups_.isEmpty()) { - if (openGroups_.isEmpty()) { - openGroups_ = other.openGroups_; - bitField0_ = (bitField0_ & ~0x00000400); - } else { - ensureOpenGroupsIsMutable(); - openGroups_.addAll(other.openGroups_); - } - onChanged(); - } - } else { - if (!other.openGroups_.isEmpty()) { - if (openGroupsBuilder_.isEmpty()) { - openGroupsBuilder_.dispose(); - openGroupsBuilder_ = null; - openGroups_ = other.openGroups_; - bitField0_ = (bitField0_ & ~0x00000400); - openGroupsBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getOpenGroupsFieldBuilder() : null; - } else { - openGroupsBuilder_.addAllMessages(other.openGroups_); - } - } - } - 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.signalservice.internal.push.SignalServiceProtos.SyncMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.SyncMessage.Sent sent = 1; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent sent_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder> sentBuilder_; - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public boolean hasSent() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent getSent() { - if (sentBuilder_ == null) { - return sent_; - } else { - return sentBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public Builder setSent(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent value) { - if (sentBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - sent_ = value; - onChanged(); - } else { - sentBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public Builder setSent( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder builderForValue) { - if (sentBuilder_ == null) { - sent_ = builderForValue.build(); - onChanged(); - } else { - sentBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public Builder mergeSent(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent value) { - if (sentBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001) && - sent_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance()) { - sent_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.newBuilder(sent_).mergeFrom(value).buildPartial(); - } else { - sent_ = value; - } - onChanged(); - } else { - sentBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - return this; - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public Builder clearSent() { - if (sentBuilder_ == null) { - sent_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.getDefaultInstance(); - onChanged(); - } else { - sentBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder getSentBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getSentFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder getSentOrBuilder() { - if (sentBuilder_ != null) { - return sentBuilder_.getMessageOrBuilder(); - } else { - return sent_; - } - } - /** - * optional .signalservice.SyncMessage.Sent sent = 1; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder> - getSentFieldBuilder() { - if (sentBuilder_ == null) { - sentBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Sent.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.SentOrBuilder>( - sent_, - getParentForChildren(), - isClean()); - sent_ = null; - } - return sentBuilder_; - } - - // optional .signalservice.SyncMessage.Contacts contacts = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts contacts_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder> contactsBuilder_; - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public boolean hasContacts() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts getContacts() { - if (contactsBuilder_ == null) { - return contacts_; - } else { - return contactsBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public Builder setContacts(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts value) { - if (contactsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contacts_ = value; - onChanged(); - } else { - contactsBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public Builder setContacts( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder builderForValue) { - if (contactsBuilder_ == null) { - contacts_ = builderForValue.build(); - onChanged(); - } else { - contactsBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public Builder mergeContacts(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts value) { - if (contactsBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - contacts_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance()) { - contacts_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.newBuilder(contacts_).mergeFrom(value).buildPartial(); - } else { - contacts_ = value; - } - onChanged(); - } else { - contactsBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public Builder clearContacts() { - if (contactsBuilder_ == null) { - contacts_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.getDefaultInstance(); - onChanged(); - } else { - contactsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder getContactsBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getContactsFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder getContactsOrBuilder() { - if (contactsBuilder_ != null) { - return contactsBuilder_.getMessageOrBuilder(); - } else { - return contacts_; - } - } - /** - * optional .signalservice.SyncMessage.Contacts contacts = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder> - getContactsFieldBuilder() { - if (contactsBuilder_ == null) { - contactsBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Contacts.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ContactsOrBuilder>( - contacts_, - getParentForChildren(), - isClean()); - contacts_ = null; - } - return contactsBuilder_; - } - - // optional .signalservice.SyncMessage.Groups groups = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups groups_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder> groupsBuilder_; - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public boolean hasGroups() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups getGroups() { - if (groupsBuilder_ == null) { - return groups_; - } else { - return groupsBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public Builder setGroups(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups value) { - if (groupsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - groups_ = value; - onChanged(); - } else { - groupsBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public Builder setGroups( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder builderForValue) { - if (groupsBuilder_ == null) { - groups_ = builderForValue.build(); - onChanged(); - } else { - groupsBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public Builder mergeGroups(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups value) { - if (groupsBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - groups_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance()) { - groups_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.newBuilder(groups_).mergeFrom(value).buildPartial(); - } else { - groups_ = value; - } - onChanged(); - } else { - groupsBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public Builder clearGroups() { - if (groupsBuilder_ == null) { - groups_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.getDefaultInstance(); - onChanged(); - } else { - groupsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder getGroupsBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getGroupsFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder getGroupsOrBuilder() { - if (groupsBuilder_ != null) { - return groupsBuilder_.getMessageOrBuilder(); - } else { - return groups_; - } - } - /** - * optional .signalservice.SyncMessage.Groups groups = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder> - getGroupsFieldBuilder() { - if (groupsBuilder_ == null) { - groupsBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Groups.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.GroupsOrBuilder>( - groups_, - getParentForChildren(), - isClean()); - groups_ = null; - } - return groupsBuilder_; - } - - // optional .signalservice.SyncMessage.Request request = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request request_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder> requestBuilder_; - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public boolean hasRequest() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request getRequest() { - if (requestBuilder_ == null) { - return request_; - } else { - return requestBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public Builder setRequest(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request value) { - if (requestBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - request_ = value; - onChanged(); - } else { - requestBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public Builder setRequest( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder builderForValue) { - if (requestBuilder_ == null) { - request_ = builderForValue.build(); - onChanged(); - } else { - requestBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public Builder mergeRequest(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request value) { - if (requestBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008) && - request_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance()) { - request_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.newBuilder(request_).mergeFrom(value).buildPartial(); - } else { - request_ = value; - } - onChanged(); - } else { - requestBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public Builder clearRequest() { - if (requestBuilder_ == null) { - request_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.getDefaultInstance(); - onChanged(); - } else { - requestBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder getRequestBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getRequestFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder getRequestOrBuilder() { - if (requestBuilder_ != null) { - return requestBuilder_.getMessageOrBuilder(); - } else { - return request_; - } - } - /** - * optional .signalservice.SyncMessage.Request request = 4; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder> - getRequestFieldBuilder() { - if (requestBuilder_ == null) { - requestBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Request.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.RequestOrBuilder>( - request_, - getParentForChildren(), - isClean()); - request_ = null; - } - return requestBuilder_; - } - - // repeated .signalservice.SyncMessage.Read read = 5; - private java.util.List read_ = - java.util.Collections.emptyList(); - private void ensureReadIsMutable() { - if (!((bitField0_ & 0x00000010) == 0x00000010)) { - read_ = new java.util.ArrayList(read_); - bitField0_ |= 0x00000010; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder> readBuilder_; - - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public java.util.List getReadList() { - if (readBuilder_ == null) { - return java.util.Collections.unmodifiableList(read_); - } else { - return readBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public int getReadCount() { - if (readBuilder_ == null) { - return read_.size(); - } else { - return readBuilder_.getCount(); - } - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read getRead(int index) { - if (readBuilder_ == null) { - return read_.get(index); - } else { - return readBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder setRead( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read value) { - if (readBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureReadIsMutable(); - read_.set(index, value); - onChanged(); - } else { - readBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder setRead( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder builderForValue) { - if (readBuilder_ == null) { - ensureReadIsMutable(); - read_.set(index, builderForValue.build()); - onChanged(); - } else { - readBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder addRead(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read value) { - if (readBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureReadIsMutable(); - read_.add(value); - onChanged(); - } else { - readBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder addRead( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read value) { - if (readBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureReadIsMutable(); - read_.add(index, value); - onChanged(); - } else { - readBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder addRead( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder builderForValue) { - if (readBuilder_ == null) { - ensureReadIsMutable(); - read_.add(builderForValue.build()); - onChanged(); - } else { - readBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder addRead( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder builderForValue) { - if (readBuilder_ == null) { - ensureReadIsMutable(); - read_.add(index, builderForValue.build()); - onChanged(); - } else { - readBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder addAllRead( - java.lang.Iterable values) { - if (readBuilder_ == null) { - ensureReadIsMutable(); - super.addAll(values, read_); - onChanged(); - } else { - readBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder clearRead() { - if (readBuilder_ == null) { - read_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - } else { - readBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public Builder removeRead(int index) { - if (readBuilder_ == null) { - ensureReadIsMutable(); - read_.remove(index); - onChanged(); - } else { - readBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder getReadBuilder( - int index) { - return getReadFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder getReadOrBuilder( - int index) { - if (readBuilder_ == null) { - return read_.get(index); } else { - return readBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public java.util.List - getReadOrBuilderList() { - if (readBuilder_ != null) { - return readBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(read_); - } - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder addReadBuilder() { - return getReadFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder addReadBuilder( - int index) { - return getReadFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.Read read = 5; - */ - public java.util.List - getReadBuilderList() { - return getReadFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder> - getReadFieldBuilder() { - if (readBuilder_ == null) { - readBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Read.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ReadOrBuilder>( - read_, - ((bitField0_ & 0x00000010) == 0x00000010), - getParentForChildren(), - isClean()); - read_ = null; - } - return readBuilder_; - } - - // optional .signalservice.SyncMessage.Blocked blocked = 6; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked blocked_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder> blockedBuilder_; - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public boolean hasBlocked() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked getBlocked() { - if (blockedBuilder_ == null) { - return blocked_; - } else { - return blockedBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public Builder setBlocked(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked value) { - if (blockedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - blocked_ = value; - onChanged(); - } else { - blockedBuilder_.setMessage(value); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public Builder setBlocked( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder builderForValue) { - if (blockedBuilder_ == null) { - blocked_ = builderForValue.build(); - onChanged(); - } else { - blockedBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public Builder mergeBlocked(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked value) { - if (blockedBuilder_ == null) { - if (((bitField0_ & 0x00000020) == 0x00000020) && - blocked_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance()) { - blocked_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.newBuilder(blocked_).mergeFrom(value).buildPartial(); - } else { - blocked_ = value; - } - onChanged(); - } else { - blockedBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000020; - return this; - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public Builder clearBlocked() { - if (blockedBuilder_ == null) { - blocked_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.getDefaultInstance(); - onChanged(); - } else { - blockedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000020); - return this; - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder getBlockedBuilder() { - bitField0_ |= 0x00000020; - onChanged(); - return getBlockedFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder getBlockedOrBuilder() { - if (blockedBuilder_ != null) { - return blockedBuilder_.getMessageOrBuilder(); - } else { - return blocked_; - } - } - /** - * optional .signalservice.SyncMessage.Blocked blocked = 6; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder> - getBlockedFieldBuilder() { - if (blockedBuilder_ == null) { - blockedBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Blocked.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.BlockedOrBuilder>( - blocked_, - getParentForChildren(), - isClean()); - blocked_ = null; - } - return blockedBuilder_; - } - - // optional .signalservice.Verified verified = 7; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder> verifiedBuilder_; - /** - * optional .signalservice.Verified verified = 7; - */ - public boolean hasVerified() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional .signalservice.Verified verified = 7; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getVerified() { - if (verifiedBuilder_ == null) { - return verified_; - } else { - return verifiedBuilder_.getMessage(); - } - } - /** - * optional .signalservice.Verified verified = 7; - */ - public Builder setVerified(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified value) { - if (verifiedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - verified_ = value; - onChanged(); - } else { - verifiedBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - return this; - } - /** - * optional .signalservice.Verified verified = 7; - */ - public Builder setVerified( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder builderForValue) { - if (verifiedBuilder_ == null) { - verified_ = builderForValue.build(); - onChanged(); - } else { - verifiedBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - return this; - } - /** - * optional .signalservice.Verified verified = 7; - */ - public Builder mergeVerified(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified value) { - if (verifiedBuilder_ == null) { - if (((bitField0_ & 0x00000040) == 0x00000040) && - verified_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance()) { - verified_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.newBuilder(verified_).mergeFrom(value).buildPartial(); - } else { - verified_ = value; - } - onChanged(); - } else { - verifiedBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - return this; - } - /** - * optional .signalservice.Verified verified = 7; - */ - public Builder clearVerified() { - if (verifiedBuilder_ == null) { - verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - onChanged(); - } else { - verifiedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000040); - return this; - } - /** - * optional .signalservice.Verified verified = 7; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder getVerifiedBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return getVerifiedFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.Verified verified = 7; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder getVerifiedOrBuilder() { - if (verifiedBuilder_ != null) { - return verifiedBuilder_.getMessageOrBuilder(); - } else { - return verified_; - } - } - /** - * optional .signalservice.Verified verified = 7; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder> - getVerifiedFieldBuilder() { - if (verifiedBuilder_ == null) { - verifiedBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder>( - verified_, - getParentForChildren(), - isClean()); - verified_ = null; - } - return verifiedBuilder_; - } - - // optional .signalservice.SyncMessage.Configuration configuration = 9; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration configuration_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder> configurationBuilder_; - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public boolean hasConfiguration() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration getConfiguration() { - if (configurationBuilder_ == null) { - return configuration_; - } else { - return configurationBuilder_.getMessage(); - } - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public Builder setConfiguration(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration value) { - if (configurationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - configuration_ = value; - onChanged(); - } else { - configurationBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public Builder setConfiguration( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder builderForValue) { - if (configurationBuilder_ == null) { - configuration_ = builderForValue.build(); - onChanged(); - } else { - configurationBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public Builder mergeConfiguration(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration value) { - if (configurationBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080) && - configuration_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance()) { - configuration_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.newBuilder(configuration_).mergeFrom(value).buildPartial(); - } else { - configuration_ = value; - } - onChanged(); - } else { - configurationBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - return this; - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public Builder clearConfiguration() { - if (configurationBuilder_ == null) { - configuration_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.getDefaultInstance(); - onChanged(); - } else { - configurationBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - return this; - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder getConfigurationBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getConfigurationFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder getConfigurationOrBuilder() { - if (configurationBuilder_ != null) { - return configurationBuilder_.getMessageOrBuilder(); - } else { - return configuration_; - } - } - /** - * optional .signalservice.SyncMessage.Configuration configuration = 9; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder> - getConfigurationFieldBuilder() { - if (configurationBuilder_ == null) { - configurationBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.Configuration.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.ConfigurationOrBuilder>( - configuration_, - getParentForChildren(), - isClean()); - configuration_ = null; - } - return configurationBuilder_; - } - - // optional bytes padding = 8; - private com.google.protobuf.ByteString padding_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes padding = 8; - */ - public boolean hasPadding() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional bytes padding = 8; - */ - public com.google.protobuf.ByteString getPadding() { - return padding_; - } - /** - * optional bytes padding = 8; - */ - public Builder setPadding(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000100; - padding_ = value; - onChanged(); - return this; - } - /** - * optional bytes padding = 8; - */ - public Builder clearPadding() { - bitField0_ = (bitField0_ & ~0x00000100); - padding_ = getDefaultInstance().getPadding(); - onChanged(); - return this; - } - - // repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - private java.util.List stickerPackOperation_ = - java.util.Collections.emptyList(); - private void ensureStickerPackOperationIsMutable() { - if (!((bitField0_ & 0x00000200) == 0x00000200)) { - stickerPackOperation_ = new java.util.ArrayList(stickerPackOperation_); - bitField0_ |= 0x00000200; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder> stickerPackOperationBuilder_; - - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public java.util.List getStickerPackOperationList() { - if (stickerPackOperationBuilder_ == null) { - return java.util.Collections.unmodifiableList(stickerPackOperation_); - } else { - return stickerPackOperationBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public int getStickerPackOperationCount() { - if (stickerPackOperationBuilder_ == null) { - return stickerPackOperation_.size(); - } else { - return stickerPackOperationBuilder_.getCount(); - } - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation getStickerPackOperation(int index) { - if (stickerPackOperationBuilder_ == null) { - return stickerPackOperation_.get(index); - } else { - return stickerPackOperationBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder setStickerPackOperation( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation value) { - if (stickerPackOperationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.set(index, value); - onChanged(); - } else { - stickerPackOperationBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder setStickerPackOperation( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder builderForValue) { - if (stickerPackOperationBuilder_ == null) { - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.set(index, builderForValue.build()); - onChanged(); - } else { - stickerPackOperationBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder addStickerPackOperation(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation value) { - if (stickerPackOperationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.add(value); - onChanged(); - } else { - stickerPackOperationBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder addStickerPackOperation( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation value) { - if (stickerPackOperationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.add(index, value); - onChanged(); - } else { - stickerPackOperationBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder addStickerPackOperation( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder builderForValue) { - if (stickerPackOperationBuilder_ == null) { - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.add(builderForValue.build()); - onChanged(); - } else { - stickerPackOperationBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder addStickerPackOperation( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder builderForValue) { - if (stickerPackOperationBuilder_ == null) { - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.add(index, builderForValue.build()); - onChanged(); - } else { - stickerPackOperationBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder addAllStickerPackOperation( - java.lang.Iterable values) { - if (stickerPackOperationBuilder_ == null) { - ensureStickerPackOperationIsMutable(); - super.addAll(values, stickerPackOperation_); - onChanged(); - } else { - stickerPackOperationBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder clearStickerPackOperation() { - if (stickerPackOperationBuilder_ == null) { - stickerPackOperation_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000200); - onChanged(); - } else { - stickerPackOperationBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public Builder removeStickerPackOperation(int index) { - if (stickerPackOperationBuilder_ == null) { - ensureStickerPackOperationIsMutable(); - stickerPackOperation_.remove(index); - onChanged(); - } else { - stickerPackOperationBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder getStickerPackOperationBuilder( - int index) { - return getStickerPackOperationFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder getStickerPackOperationOrBuilder( - int index) { - if (stickerPackOperationBuilder_ == null) { - return stickerPackOperation_.get(index); } else { - return stickerPackOperationBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public java.util.List - getStickerPackOperationOrBuilderList() { - if (stickerPackOperationBuilder_ != null) { - return stickerPackOperationBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(stickerPackOperation_); - } - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder addStickerPackOperationBuilder() { - return getStickerPackOperationFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder addStickerPackOperationBuilder( - int index) { - return getStickerPackOperationFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.StickerPackOperation stickerPackOperation = 10; - */ - public java.util.List - getStickerPackOperationBuilderList() { - return getStickerPackOperationFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder> - getStickerPackOperationFieldBuilder() { - if (stickerPackOperationBuilder_ == null) { - stickerPackOperationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperation.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.StickerPackOperationOrBuilder>( - stickerPackOperation_, - ((bitField0_ & 0x00000200) == 0x00000200), - getParentForChildren(), - isClean()); - stickerPackOperation_ = null; - } - return stickerPackOperationBuilder_; - } - - // repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - private java.util.List openGroups_ = - java.util.Collections.emptyList(); - private void ensureOpenGroupsIsMutable() { - if (!((bitField0_ & 0x00000400) == 0x00000400)) { - openGroups_ = new java.util.ArrayList(openGroups_); - bitField0_ |= 0x00000400; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder> openGroupsBuilder_; - - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public java.util.List getOpenGroupsList() { - if (openGroupsBuilder_ == null) { - return java.util.Collections.unmodifiableList(openGroups_); - } else { - return openGroupsBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public int getOpenGroupsCount() { - if (openGroupsBuilder_ == null) { - return openGroups_.size(); - } else { - return openGroupsBuilder_.getCount(); - } - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails getOpenGroups(int index) { - if (openGroupsBuilder_ == null) { - return openGroups_.get(index); - } else { - return openGroupsBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder setOpenGroups( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails value) { - if (openGroupsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureOpenGroupsIsMutable(); - openGroups_.set(index, value); - onChanged(); - } else { - openGroupsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder setOpenGroups( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder builderForValue) { - if (openGroupsBuilder_ == null) { - ensureOpenGroupsIsMutable(); - openGroups_.set(index, builderForValue.build()); - onChanged(); - } else { - openGroupsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder addOpenGroups(org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails value) { - if (openGroupsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureOpenGroupsIsMutable(); - openGroups_.add(value); - onChanged(); - } else { - openGroupsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder addOpenGroups( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails value) { - if (openGroupsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureOpenGroupsIsMutable(); - openGroups_.add(index, value); - onChanged(); - } else { - openGroupsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder addOpenGroups( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder builderForValue) { - if (openGroupsBuilder_ == null) { - ensureOpenGroupsIsMutable(); - openGroups_.add(builderForValue.build()); - onChanged(); - } else { - openGroupsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder addOpenGroups( - int index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder builderForValue) { - if (openGroupsBuilder_ == null) { - ensureOpenGroupsIsMutable(); - openGroups_.add(index, builderForValue.build()); - onChanged(); - } else { - openGroupsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder addAllOpenGroups( - java.lang.Iterable values) { - if (openGroupsBuilder_ == null) { - ensureOpenGroupsIsMutable(); - super.addAll(values, openGroups_); - onChanged(); - } else { - openGroupsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder clearOpenGroups() { - if (openGroupsBuilder_ == null) { - openGroups_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000400); - onChanged(); - } else { - openGroupsBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public Builder removeOpenGroups(int index) { - if (openGroupsBuilder_ == null) { - ensureOpenGroupsIsMutable(); - openGroups_.remove(index); - onChanged(); - } else { - openGroupsBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder getOpenGroupsBuilder( - int index) { - return getOpenGroupsFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder getOpenGroupsOrBuilder( - int index) { - if (openGroupsBuilder_ == null) { - return openGroups_.get(index); } else { - return openGroupsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public java.util.List - getOpenGroupsOrBuilderList() { - if (openGroupsBuilder_ != null) { - return openGroupsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(openGroups_); - } - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder addOpenGroupsBuilder() { - return getOpenGroupsFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder addOpenGroupsBuilder( - int index) { - return getOpenGroupsFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.getDefaultInstance()); - } - /** - * repeated .signalservice.SyncMessage.OpenGroupDetails openGroups = 100; - */ - public java.util.List - getOpenGroupsBuilderList() { - return getOpenGroupsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder> - getOpenGroupsFieldBuilder() { - if (openGroupsBuilder_ == null) { - openGroupsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetails.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.OpenGroupDetailsOrBuilder>( - openGroups_, - ((bitField0_ & 0x00000400) == 0x00000400), - getParentForChildren(), - isClean()); - openGroups_ = null; - } - return openGroupsBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.SyncMessage) - } - - static { - defaultInstance = new SyncMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.SyncMessage) - } - - public interface AttachmentPointerOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional fixed64 id = 1; - /** - * optional fixed64 id = 1; - */ - boolean hasId(); - /** - * optional fixed64 id = 1; - */ - long getId(); - - // optional string contentType = 2; - /** - * optional string contentType = 2; - */ - boolean hasContentType(); - /** - * optional string contentType = 2; - */ - java.lang.String getContentType(); - /** - * optional string contentType = 2; - */ - com.google.protobuf.ByteString - getContentTypeBytes(); - - // optional bytes key = 3; - /** - * optional bytes key = 3; - */ - boolean hasKey(); - /** - * optional bytes key = 3; - */ - com.google.protobuf.ByteString getKey(); - - // optional uint32 size = 4; - /** - * optional uint32 size = 4; - */ - boolean hasSize(); - /** - * optional uint32 size = 4; - */ - int getSize(); - - // optional bytes thumbnail = 5; - /** - * optional bytes thumbnail = 5; - */ - boolean hasThumbnail(); - /** - * optional bytes thumbnail = 5; - */ - com.google.protobuf.ByteString getThumbnail(); - - // optional bytes digest = 6; - /** - * optional bytes digest = 6; - */ - boolean hasDigest(); - /** - * optional bytes digest = 6; - */ - com.google.protobuf.ByteString getDigest(); - - // optional string fileName = 7; - /** - * optional string fileName = 7; - */ - boolean hasFileName(); - /** - * optional string fileName = 7; - */ - java.lang.String getFileName(); - /** - * optional string fileName = 7; - */ - com.google.protobuf.ByteString - getFileNameBytes(); - - // optional uint32 flags = 8; - /** - * optional uint32 flags = 8; - */ - boolean hasFlags(); - /** - * optional uint32 flags = 8; - */ - int getFlags(); - - // optional uint32 width = 9; - /** - * optional uint32 width = 9; - */ - boolean hasWidth(); - /** - * optional uint32 width = 9; - */ - int getWidth(); - - // optional uint32 height = 10; - /** - * optional uint32 height = 10; - */ - boolean hasHeight(); - /** - * optional uint32 height = 10; - */ - int getHeight(); - - // optional string caption = 11; - /** - * optional string caption = 11; - */ - boolean hasCaption(); - /** - * optional string caption = 11; - */ - java.lang.String getCaption(); - /** - * optional string caption = 11; - */ - com.google.protobuf.ByteString - getCaptionBytes(); - - // optional string url = 101; - /** - * optional string url = 101; - */ - boolean hasUrl(); - /** - * optional string url = 101; - */ - java.lang.String getUrl(); - /** - * optional string url = 101; - */ - com.google.protobuf.ByteString - getUrlBytes(); - } - /** - * Protobuf type {@code signalservice.AttachmentPointer} - */ - public static final class AttachmentPointer extends - com.google.protobuf.GeneratedMessage - implements AttachmentPointerOrBuilder { - // Use AttachmentPointer.newBuilder() to construct. - private AttachmentPointer(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private AttachmentPointer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final AttachmentPointer defaultInstance; - public static AttachmentPointer getDefaultInstance() { - return defaultInstance; - } - - public AttachmentPointer getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AttachmentPointer( - 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 9: { - bitField0_ |= 0x00000001; - id_ = input.readFixed64(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - contentType_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - key_ = input.readBytes(); - break; - } - case 32: { - bitField0_ |= 0x00000008; - size_ = input.readUInt32(); - break; - } - case 42: { - bitField0_ |= 0x00000010; - thumbnail_ = input.readBytes(); - break; - } - case 50: { - bitField0_ |= 0x00000020; - digest_ = input.readBytes(); - break; - } - case 58: { - bitField0_ |= 0x00000040; - fileName_ = input.readBytes(); - break; - } - case 64: { - bitField0_ |= 0x00000080; - flags_ = input.readUInt32(); - break; - } - case 72: { - bitField0_ |= 0x00000100; - width_ = input.readUInt32(); - break; - } - case 80: { - bitField0_ |= 0x00000200; - height_ = input.readUInt32(); - break; - } - case 90: { - bitField0_ |= 0x00000400; - caption_ = input.readBytes(); - break; - } - case 810: { - bitField0_ |= 0x00000800; - url_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_AttachmentPointer_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_AttachmentPointer_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public AttachmentPointer parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new AttachmentPointer(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.AttachmentPointer.Flags} - */ - public enum Flags - implements com.google.protobuf.ProtocolMessageEnum { - /** - * VOICE_MESSAGE = 1; - */ - VOICE_MESSAGE(0, 1), - ; - - /** - * VOICE_MESSAGE = 1; - */ - public static final int VOICE_MESSAGE_VALUE = 1; - - - public final int getNumber() { return value; } - - public static Flags valueOf(int value) { - switch (value) { - case 1: return VOICE_MESSAGE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Flags findValueByNumber(int number) { - return Flags.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDescriptor().getEnumTypes().get(0); - } - - private static final Flags[] VALUES = values(); - - public static Flags valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Flags(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.AttachmentPointer.Flags) - } - - private int bitField0_; - // optional fixed64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional fixed64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional fixed64 id = 1; - */ - public long getId() { - return id_; - } - - // optional string contentType = 2; - public static final int CONTENTTYPE_FIELD_NUMBER = 2; - private java.lang.Object contentType_; - /** - * optional string contentType = 2; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string contentType = 2; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - contentType_ = s; - } - return s; - } - } - /** - * optional string contentType = 2; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bytes key = 3; - public static final int KEY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString key_; - /** - * optional bytes key = 3; - */ - public boolean hasKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes key = 3; - */ - public com.google.protobuf.ByteString getKey() { - return key_; - } - - // optional uint32 size = 4; - public static final int SIZE_FIELD_NUMBER = 4; - private int size_; - /** - * optional uint32 size = 4; - */ - public boolean hasSize() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint32 size = 4; - */ - public int getSize() { - return size_; - } - - // optional bytes thumbnail = 5; - public static final int THUMBNAIL_FIELD_NUMBER = 5; - private com.google.protobuf.ByteString thumbnail_; - /** - * optional bytes thumbnail = 5; - */ - public boolean hasThumbnail() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes thumbnail = 5; - */ - public com.google.protobuf.ByteString getThumbnail() { - return thumbnail_; - } - - // optional bytes digest = 6; - public static final int DIGEST_FIELD_NUMBER = 6; - private com.google.protobuf.ByteString digest_; - /** - * optional bytes digest = 6; - */ - public boolean hasDigest() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes digest = 6; - */ - public com.google.protobuf.ByteString getDigest() { - return digest_; - } - - // optional string fileName = 7; - public static final int FILENAME_FIELD_NUMBER = 7; - private java.lang.Object fileName_; - /** - * optional string fileName = 7; - */ - public boolean hasFileName() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional string fileName = 7; - */ - public java.lang.String getFileName() { - java.lang.Object ref = fileName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fileName_ = s; - } - return s; - } - } - /** - * optional string fileName = 7; - */ - public com.google.protobuf.ByteString - getFileNameBytes() { - java.lang.Object ref = fileName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fileName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 flags = 8; - public static final int FLAGS_FIELD_NUMBER = 8; - private int flags_; - /** - * optional uint32 flags = 8; - */ - public boolean hasFlags() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional uint32 flags = 8; - */ - public int getFlags() { - return flags_; - } - - // optional uint32 width = 9; - public static final int WIDTH_FIELD_NUMBER = 9; - private int width_; - /** - * optional uint32 width = 9; - */ - public boolean hasWidth() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional uint32 width = 9; - */ - public int getWidth() { - return width_; - } - - // optional uint32 height = 10; - public static final int HEIGHT_FIELD_NUMBER = 10; - private int height_; - /** - * optional uint32 height = 10; - */ - public boolean hasHeight() { - return ((bitField0_ & 0x00000200) == 0x00000200); - } - /** - * optional uint32 height = 10; - */ - public int getHeight() { - return height_; - } - - // optional string caption = 11; - public static final int CAPTION_FIELD_NUMBER = 11; - private java.lang.Object caption_; - /** - * optional string caption = 11; - */ - public boolean hasCaption() { - return ((bitField0_ & 0x00000400) == 0x00000400); - } - /** - * optional string caption = 11; - */ - public java.lang.String getCaption() { - java.lang.Object ref = caption_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - caption_ = s; - } - return s; - } - } - /** - * optional string caption = 11; - */ - public com.google.protobuf.ByteString - getCaptionBytes() { - java.lang.Object ref = caption_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - caption_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string url = 101; - public static final int URL_FIELD_NUMBER = 101; - private java.lang.Object url_; - /** - * optional string url = 101; - */ - public boolean hasUrl() { - return ((bitField0_ & 0x00000800) == 0x00000800); - } - /** - * optional string url = 101; - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - url_ = s; - } - return s; - } - } - /** - * optional string url = 101; - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - id_ = 0L; - contentType_ = ""; - key_ = com.google.protobuf.ByteString.EMPTY; - size_ = 0; - thumbnail_ = com.google.protobuf.ByteString.EMPTY; - digest_ = com.google.protobuf.ByteString.EMPTY; - fileName_ = ""; - flags_ = 0; - width_ = 0; - height_ = 0; - caption_ = ""; - url_ = ""; - } - 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.writeFixed64(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, key_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeUInt32(4, size_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, thumbnail_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, digest_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBytes(7, getFileNameBytes()); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeUInt32(8, flags_); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - output.writeUInt32(9, width_); - } - if (((bitField0_ & 0x00000200) == 0x00000200)) { - output.writeUInt32(10, height_); - } - if (((bitField0_ & 0x00000400) == 0x00000400)) { - output.writeBytes(11, getCaptionBytes()); - } - if (((bitField0_ & 0x00000800) == 0x00000800)) { - output.writeBytes(101, getUrlBytes()); - } - 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 - .computeFixed64Size(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, key_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, size_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, thumbnail_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, digest_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(7, getFileNameBytes()); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(8, flags_); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(9, width_); - } - if (((bitField0_ & 0x00000200) == 0x00000200)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(10, height_); - } - if (((bitField0_ & 0x00000400) == 0x00000400)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(11, getCaptionBytes()); - } - if (((bitField0_ & 0x00000800) == 0x00000800)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(101, getUrlBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer 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 signalservice.AttachmentPointer} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_AttachmentPointer_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_AttachmentPointer_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - contentType_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - key_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - size_ = 0; - bitField0_ = (bitField0_ & ~0x00000008); - thumbnail_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); - digest_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - fileName_ = ""; - bitField0_ = (bitField0_ & ~0x00000040); - flags_ = 0; - bitField0_ = (bitField0_ & ~0x00000080); - width_ = 0; - bitField0_ = (bitField0_ & ~0x00000100); - height_ = 0; - bitField0_ = (bitField0_ & ~0x00000200); - caption_ = ""; - bitField0_ = (bitField0_ & ~0x00000400); - url_ = ""; - bitField0_ = (bitField0_ & ~0x00000800); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_AttachmentPointer_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer(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.contentType_ = contentType_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.key_ = key_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.size_ = size_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.thumbnail_ = thumbnail_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.digest_ = digest_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - result.fileName_ = fileName_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000080; - } - result.flags_ = flags_; - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000100; - } - result.width_ = width_; - if (((from_bitField0_ & 0x00000200) == 0x00000200)) { - to_bitField0_ |= 0x00000200; - } - result.height_ = height_; - if (((from_bitField0_ & 0x00000400) == 0x00000400)) { - to_bitField0_ |= 0x00000400; - } - result.caption_ = caption_; - if (((from_bitField0_ & 0x00000800) == 0x00000800)) { - to_bitField0_ |= 0x00000800; - } - result.url_ = url_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasContentType()) { - bitField0_ |= 0x00000002; - contentType_ = other.contentType_; - onChanged(); - } - if (other.hasKey()) { - setKey(other.getKey()); - } - if (other.hasSize()) { - setSize(other.getSize()); - } - if (other.hasThumbnail()) { - setThumbnail(other.getThumbnail()); - } - if (other.hasDigest()) { - setDigest(other.getDigest()); - } - if (other.hasFileName()) { - bitField0_ |= 0x00000040; - fileName_ = other.fileName_; - onChanged(); - } - if (other.hasFlags()) { - setFlags(other.getFlags()); - } - if (other.hasWidth()) { - setWidth(other.getWidth()); - } - if (other.hasHeight()) { - setHeight(other.getHeight()); - } - if (other.hasCaption()) { - bitField0_ |= 0x00000400; - caption_ = other.caption_; - onChanged(); - } - if (other.hasUrl()) { - bitField0_ |= 0x00000800; - url_ = other.url_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.AttachmentPointer parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional fixed64 id = 1; - private long id_ ; - /** - * optional fixed64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional fixed64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional fixed64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional fixed64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // optional string contentType = 2; - private java.lang.Object contentType_ = ""; - /** - * optional string contentType = 2; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string contentType = 2; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - contentType_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string contentType = 2; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string contentType = 2; - */ - public Builder setContentType( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - contentType_ = value; - onChanged(); - return this; - } - /** - * optional string contentType = 2; - */ - public Builder clearContentType() { - bitField0_ = (bitField0_ & ~0x00000002); - contentType_ = getDefaultInstance().getContentType(); - onChanged(); - return this; - } - /** - * optional string contentType = 2; - */ - public Builder setContentTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - contentType_ = value; - onChanged(); - return this; - } - - // optional bytes key = 3; - private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes key = 3; - */ - public boolean hasKey() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes key = 3; - */ - public com.google.protobuf.ByteString getKey() { - return key_; - } - /** - * optional bytes key = 3; - */ - public Builder setKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - key_ = value; - onChanged(); - return this; - } - /** - * optional bytes key = 3; - */ - public Builder clearKey() { - bitField0_ = (bitField0_ & ~0x00000004); - key_ = getDefaultInstance().getKey(); - onChanged(); - return this; - } - - // optional uint32 size = 4; - private int size_ ; - /** - * optional uint32 size = 4; - */ - public boolean hasSize() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint32 size = 4; - */ - public int getSize() { - return size_; - } - /** - * optional uint32 size = 4; - */ - public Builder setSize(int value) { - bitField0_ |= 0x00000008; - size_ = value; - onChanged(); - return this; - } - /** - * optional uint32 size = 4; - */ - public Builder clearSize() { - bitField0_ = (bitField0_ & ~0x00000008); - size_ = 0; - onChanged(); - return this; - } - - // optional bytes thumbnail = 5; - private com.google.protobuf.ByteString thumbnail_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes thumbnail = 5; - */ - public boolean hasThumbnail() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes thumbnail = 5; - */ - public com.google.protobuf.ByteString getThumbnail() { - return thumbnail_; - } - /** - * optional bytes thumbnail = 5; - */ - public Builder setThumbnail(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - thumbnail_ = value; - onChanged(); - return this; - } - /** - * optional bytes thumbnail = 5; - */ - public Builder clearThumbnail() { - bitField0_ = (bitField0_ & ~0x00000010); - thumbnail_ = getDefaultInstance().getThumbnail(); - onChanged(); - return this; - } - - // optional bytes digest = 6; - private com.google.protobuf.ByteString digest_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes digest = 6; - */ - public boolean hasDigest() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes digest = 6; - */ - public com.google.protobuf.ByteString getDigest() { - return digest_; - } - /** - * optional bytes digest = 6; - */ - public Builder setDigest(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - digest_ = value; - onChanged(); - return this; - } - /** - * optional bytes digest = 6; - */ - public Builder clearDigest() { - bitField0_ = (bitField0_ & ~0x00000020); - digest_ = getDefaultInstance().getDigest(); - onChanged(); - return this; - } - - // optional string fileName = 7; - private java.lang.Object fileName_ = ""; - /** - * optional string fileName = 7; - */ - public boolean hasFileName() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional string fileName = 7; - */ - public java.lang.String getFileName() { - java.lang.Object ref = fileName_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - fileName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string fileName = 7; - */ - public com.google.protobuf.ByteString - getFileNameBytes() { - java.lang.Object ref = fileName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fileName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string fileName = 7; - */ - public Builder setFileName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - fileName_ = value; - onChanged(); - return this; - } - /** - * optional string fileName = 7; - */ - public Builder clearFileName() { - bitField0_ = (bitField0_ & ~0x00000040); - fileName_ = getDefaultInstance().getFileName(); - onChanged(); - return this; - } - /** - * optional string fileName = 7; - */ - public Builder setFileNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - fileName_ = value; - onChanged(); - return this; - } - - // optional uint32 flags = 8; - private int flags_ ; - /** - * optional uint32 flags = 8; - */ - public boolean hasFlags() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional uint32 flags = 8; - */ - public int getFlags() { - return flags_; - } - /** - * optional uint32 flags = 8; - */ - public Builder setFlags(int value) { - bitField0_ |= 0x00000080; - flags_ = value; - onChanged(); - return this; - } - /** - * optional uint32 flags = 8; - */ - public Builder clearFlags() { - bitField0_ = (bitField0_ & ~0x00000080); - flags_ = 0; - onChanged(); - return this; - } - - // optional uint32 width = 9; - private int width_ ; - /** - * optional uint32 width = 9; - */ - public boolean hasWidth() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional uint32 width = 9; - */ - public int getWidth() { - return width_; - } - /** - * optional uint32 width = 9; - */ - public Builder setWidth(int value) { - bitField0_ |= 0x00000100; - width_ = value; - onChanged(); - return this; - } - /** - * optional uint32 width = 9; - */ - public Builder clearWidth() { - bitField0_ = (bitField0_ & ~0x00000100); - width_ = 0; - onChanged(); - return this; - } - - // optional uint32 height = 10; - private int height_ ; - /** - * optional uint32 height = 10; - */ - public boolean hasHeight() { - return ((bitField0_ & 0x00000200) == 0x00000200); - } - /** - * optional uint32 height = 10; - */ - public int getHeight() { - return height_; - } - /** - * optional uint32 height = 10; - */ - public Builder setHeight(int value) { - bitField0_ |= 0x00000200; - height_ = value; - onChanged(); - return this; - } - /** - * optional uint32 height = 10; - */ - public Builder clearHeight() { - bitField0_ = (bitField0_ & ~0x00000200); - height_ = 0; - onChanged(); - return this; - } - - // optional string caption = 11; - private java.lang.Object caption_ = ""; - /** - * optional string caption = 11; - */ - public boolean hasCaption() { - return ((bitField0_ & 0x00000400) == 0x00000400); - } - /** - * optional string caption = 11; - */ - public java.lang.String getCaption() { - java.lang.Object ref = caption_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - caption_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string caption = 11; - */ - public com.google.protobuf.ByteString - getCaptionBytes() { - java.lang.Object ref = caption_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - caption_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string caption = 11; - */ - public Builder setCaption( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000400; - caption_ = value; - onChanged(); - return this; - } - /** - * optional string caption = 11; - */ - public Builder clearCaption() { - bitField0_ = (bitField0_ & ~0x00000400); - caption_ = getDefaultInstance().getCaption(); - onChanged(); - return this; - } - /** - * optional string caption = 11; - */ - public Builder setCaptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000400; - caption_ = value; - onChanged(); - return this; - } - - // optional string url = 101; - private java.lang.Object url_ = ""; - /** - * optional string url = 101; - */ - public boolean hasUrl() { - return ((bitField0_ & 0x00000800) == 0x00000800); - } - /** - * optional string url = 101; - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - url_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string url = 101; - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string url = 101; - */ - public Builder setUrl( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000800; - url_ = value; - onChanged(); - return this; - } - /** - * optional string url = 101; - */ - public Builder clearUrl() { - bitField0_ = (bitField0_ & ~0x00000800); - url_ = getDefaultInstance().getUrl(); - onChanged(); - return this; - } - /** - * optional string url = 101; - */ - public Builder setUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000800; - url_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.AttachmentPointer) - } - - static { - defaultInstance = new AttachmentPointer(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.AttachmentPointer) - } - - public interface GroupContextOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes id = 1; - /** - * optional bytes id = 1; - */ - boolean hasId(); - /** - * optional bytes id = 1; - */ - com.google.protobuf.ByteString getId(); - - // optional .signalservice.GroupContext.Type type = 2; - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - boolean hasType(); - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type getType(); - - // optional string name = 3; - /** - * optional string name = 3; - */ - boolean hasName(); - /** - * optional string name = 3; - */ - java.lang.String getName(); - /** - * optional string name = 3; - */ - com.google.protobuf.ByteString - getNameBytes(); - - // repeated string members = 4; - /** - * repeated string members = 4; - */ - java.util.List - getMembersList(); - /** - * repeated string members = 4; - */ - int getMembersCount(); - /** - * repeated string members = 4; - */ - java.lang.String getMembers(int index); - /** - * repeated string members = 4; - */ - com.google.protobuf.ByteString - getMembersBytes(int index); - - // optional .signalservice.AttachmentPointer avatar = 5; - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - boolean hasAvatar(); - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAvatar(); - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder(); - - // repeated string admins = 6; - /** - * repeated string admins = 6; - */ - java.util.List - getAdminsList(); - /** - * repeated string admins = 6; - */ - int getAdminsCount(); - /** - * repeated string admins = 6; - */ - java.lang.String getAdmins(int index); - /** - * repeated string admins = 6; - */ - com.google.protobuf.ByteString - getAdminsBytes(int index); - - // repeated string newMembers = 998; - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - java.util.List - getNewMembersList(); - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - int getNewMembersCount(); - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - java.lang.String getNewMembers(int index); - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - com.google.protobuf.ByteString - getNewMembersBytes(int index); - - // repeated string removedMembers = 999; - /** - * repeated string removedMembers = 999; - */ - java.util.List - getRemovedMembersList(); - /** - * repeated string removedMembers = 999; - */ - int getRemovedMembersCount(); - /** - * repeated string removedMembers = 999; - */ - java.lang.String getRemovedMembers(int index); - /** - * repeated string removedMembers = 999; - */ - com.google.protobuf.ByteString - getRemovedMembersBytes(int index); - } - /** - * Protobuf type {@code signalservice.GroupContext} - */ - public static final class GroupContext extends - com.google.protobuf.GeneratedMessage - implements GroupContextOrBuilder { - // Use GroupContext.newBuilder() to construct. - private GroupContext(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private GroupContext(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final GroupContext defaultInstance; - public static GroupContext getDefaultInstance() { - return defaultInstance; - } - - public GroupContext getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GroupContext( - 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; - id_ = input.readBytes(); - break; - } - case 16: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type value = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(2, rawValue); - } else { - bitField0_ |= 0x00000002; - type_ = value; - } - break; - } - case 26: { - bitField0_ |= 0x00000004; - name_ = input.readBytes(); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - members_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000008; - } - members_.add(input.readBytes()); - break; - } - case 42: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - subBuilder = avatar_.toBuilder(); - } - avatar_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(avatar_); - avatar_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000008; - break; - } - case 50: { - if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000020; - } - admins_.add(input.readBytes()); - break; - } - case 7986: { - if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) { - newMembers_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000040; - } - newMembers_.add(input.readBytes()); - break; - } - case 7994: { - if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) { - removedMembers_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000080; - } - removedMembers_.add(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_ & 0x00000008) == 0x00000008)) { - members_ = new com.google.protobuf.UnmodifiableLazyStringList(members_); - } - if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = new com.google.protobuf.UnmodifiableLazyStringList(admins_); - } - if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) { - newMembers_ = new com.google.protobuf.UnmodifiableLazyStringList(newMembers_); - } - if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) { - removedMembers_ = new com.google.protobuf.UnmodifiableLazyStringList(removedMembers_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupContext_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupContext_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public GroupContext parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GroupContext(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.GroupContext.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0, 0), - /** - * UPDATE = 1; - */ - UPDATE(1, 1), - /** - * DELIVER = 2; - */ - DELIVER(2, 2), - /** - * QUIT = 3; - */ - QUIT(3, 3), - /** - * REQUEST_INFO = 4; - */ - REQUEST_INFO(4, 4), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * UPDATE = 1; - */ - public static final int UPDATE_VALUE = 1; - /** - * DELIVER = 2; - */ - public static final int DELIVER_VALUE = 2; - /** - * QUIT = 3; - */ - public static final int QUIT_VALUE = 3; - /** - * REQUEST_INFO = 4; - */ - public static final int REQUEST_INFO_VALUE = 4; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return UPDATE; - case 2: return DELIVER; - case 3: return QUIT; - case 4: return REQUEST_INFO; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.GroupContext.Type) - } - - private int bitField0_; - // optional bytes id = 1; - public static final int ID_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString id_; - /** - * optional bytes id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes id = 1; - */ - public com.google.protobuf.ByteString getId() { - return id_; - } - - // optional .signalservice.GroupContext.Type type = 2; - public static final int TYPE_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type type_; - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type getType() { - return type_; - } - - // optional string name = 3; - public static final int NAME_FIELD_NUMBER = 3; - private java.lang.Object name_; - /** - * optional string name = 3; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string name = 3; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * optional string name = 3; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated string members = 4; - public static final int MEMBERS_FIELD_NUMBER = 4; - private com.google.protobuf.LazyStringList members_; - /** - * repeated string members = 4; - */ - public java.util.List - getMembersList() { - return members_; - } - /** - * repeated string members = 4; - */ - public int getMembersCount() { - return members_.size(); - } - /** - * repeated string members = 4; - */ - public java.lang.String getMembers(int index) { - return members_.get(index); - } - /** - * repeated string members = 4; - */ - public com.google.protobuf.ByteString - getMembersBytes(int index) { - return members_.getByteString(index); - } - - // optional .signalservice.AttachmentPointer avatar = 5; - public static final int AVATAR_FIELD_NUMBER = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer avatar_; - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAvatar() { - return avatar_; - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder() { - return avatar_; - } - - // repeated string admins = 6; - public static final int ADMINS_FIELD_NUMBER = 6; - private com.google.protobuf.LazyStringList admins_; - /** - * repeated string admins = 6; - */ - public java.util.List - getAdminsList() { - return admins_; - } - /** - * repeated string admins = 6; - */ - public int getAdminsCount() { - return admins_.size(); - } - /** - * repeated string admins = 6; - */ - public java.lang.String getAdmins(int index) { - return admins_.get(index); - } - /** - * repeated string admins = 6; - */ - public com.google.protobuf.ByteString - getAdminsBytes(int index) { - return admins_.getByteString(index); - } - - // repeated string newMembers = 998; - public static final int NEWMEMBERS_FIELD_NUMBER = 998; - private com.google.protobuf.LazyStringList newMembers_; - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - public java.util.List - getNewMembersList() { - return newMembers_; - } - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - public int getNewMembersCount() { - return newMembers_.size(); - } - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - public java.lang.String getNewMembers(int index) { - return newMembers_.get(index); - } - /** - * repeated string newMembers = 998; - * - *
-     * Loki - These fields are only used internally for the Android code base.
-     * This is so that we can differentiate adding/kicking.
-     * DO NOT USE WHEN SENDING MESSAGES.
-     * 
- */ - public com.google.protobuf.ByteString - getNewMembersBytes(int index) { - return newMembers_.getByteString(index); - } - - // repeated string removedMembers = 999; - public static final int REMOVEDMEMBERS_FIELD_NUMBER = 999; - private com.google.protobuf.LazyStringList removedMembers_; - /** - * repeated string removedMembers = 999; - */ - public java.util.List - getRemovedMembersList() { - return removedMembers_; - } - /** - * repeated string removedMembers = 999; - */ - public int getRemovedMembersCount() { - return removedMembers_.size(); - } - /** - * repeated string removedMembers = 999; - */ - public java.lang.String getRemovedMembers(int index) { - return removedMembers_.get(index); - } - /** - * repeated string removedMembers = 999; - */ - public com.google.protobuf.ByteString - getRemovedMembersBytes(int index) { - return removedMembers_.getByteString(index); - } - - private void initFields() { - id_ = com.google.protobuf.ByteString.EMPTY; - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.UNKNOWN; - name_ = ""; - members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - newMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - removedMembers_ = com.google.protobuf.LazyStringArrayList.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, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeEnum(2, type_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getNameBytes()); - } - for (int i = 0; i < members_.size(); i++) { - output.writeBytes(4, members_.getByteString(i)); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeMessage(5, avatar_); - } - for (int i = 0; i < admins_.size(); i++) { - output.writeBytes(6, admins_.getByteString(i)); - } - for (int i = 0; i < newMembers_.size(); i++) { - output.writeBytes(998, newMembers_.getByteString(i)); - } - for (int i = 0; i < removedMembers_.size(); i++) { - output.writeBytes(999, removedMembers_.getByteString(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, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, type_.getNumber()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getNameBytes()); - } - { - int dataSize = 0; - for (int i = 0; i < members_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(members_.getByteString(i)); - } - size += dataSize; - size += 1 * getMembersList().size(); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, avatar_); - } - { - int dataSize = 0; - for (int i = 0; i < admins_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(admins_.getByteString(i)); - } - size += dataSize; - size += 1 * getAdminsList().size(); - } - { - int dataSize = 0; - for (int i = 0; i < newMembers_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(newMembers_.getByteString(i)); - } - size += dataSize; - size += 2 * getNewMembersList().size(); - } - { - int dataSize = 0; - for (int i = 0; i < removedMembers_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(removedMembers_.getByteString(i)); - } - size += dataSize; - size += 2 * getRemovedMembersList().size(); - } - 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.signalservice.internal.push.SignalServiceProtos.GroupContext parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext 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.signalservice.internal.push.SignalServiceProtos.GroupContext parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext 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.signalservice.internal.push.SignalServiceProtos.GroupContext 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 signalservice.GroupContext} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContextOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupContext_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupContext_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getAvatarFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - id_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.UNKNOWN; - bitField0_ = (bitField0_ & ~0x00000002); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - newMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000040); - removedMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000080); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupContext_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext(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.type_ = type_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.name_ = name_; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - members_ = new com.google.protobuf.UnmodifiableLazyStringList( - members_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.members_ = members_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000008; - } - if (avatarBuilder_ == null) { - result.avatar_ = avatar_; - } else { - result.avatar_ = avatarBuilder_.build(); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = new com.google.protobuf.UnmodifiableLazyStringList( - admins_); - bitField0_ = (bitField0_ & ~0x00000020); - } - result.admins_ = admins_; - if (((bitField0_ & 0x00000040) == 0x00000040)) { - newMembers_ = new com.google.protobuf.UnmodifiableLazyStringList( - newMembers_); - bitField0_ = (bitField0_ & ~0x00000040); - } - result.newMembers_ = newMembers_; - if (((bitField0_ & 0x00000080) == 0x00000080)) { - removedMembers_ = new com.google.protobuf.UnmodifiableLazyStringList( - removedMembers_); - bitField0_ = (bitField0_ & ~0x00000080); - } - result.removedMembers_ = removedMembers_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasName()) { - bitField0_ |= 0x00000004; - name_ = other.name_; - onChanged(); - } - if (!other.members_.isEmpty()) { - if (members_.isEmpty()) { - members_ = other.members_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureMembersIsMutable(); - members_.addAll(other.members_); - } - onChanged(); - } - if (other.hasAvatar()) { - mergeAvatar(other.getAvatar()); - } - if (!other.admins_.isEmpty()) { - if (admins_.isEmpty()) { - admins_ = other.admins_; - bitField0_ = (bitField0_ & ~0x00000020); - } else { - ensureAdminsIsMutable(); - admins_.addAll(other.admins_); - } - onChanged(); - } - if (!other.newMembers_.isEmpty()) { - if (newMembers_.isEmpty()) { - newMembers_ = other.newMembers_; - bitField0_ = (bitField0_ & ~0x00000040); - } else { - ensureNewMembersIsMutable(); - newMembers_.addAll(other.newMembers_); - } - onChanged(); - } - if (!other.removedMembers_.isEmpty()) { - if (removedMembers_.isEmpty()) { - removedMembers_ = other.removedMembers_; - bitField0_ = (bitField0_ & ~0x00000080); - } else { - ensureRemovedMembersIsMutable(); - removedMembers_.addAll(other.removedMembers_); - } - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.GroupContext parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes id = 1; - private com.google.protobuf.ByteString id_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes id = 1; - */ - public com.google.protobuf.ByteString getId() { - return id_; - } - /** - * optional bytes id = 1; - */ - public Builder setId(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional bytes id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = getDefaultInstance().getId(); - onChanged(); - return this; - } - - // optional .signalservice.GroupContext.Type type = 2; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.UNKNOWN; - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type getType() { - return type_; - } - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - public Builder setType(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.GroupContext.Type type = 2; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000002); - type_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.UNKNOWN; - onChanged(); - return this; - } - - // optional string name = 3; - private java.lang.Object name_ = ""; - /** - * optional string name = 3; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string name = 3; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string name = 3; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string name = 3; - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - name_ = value; - onChanged(); - return this; - } - /** - * optional string name = 3; - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000004); - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * optional string name = 3; - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - name_ = value; - onChanged(); - return this; - } - - // repeated string members = 4; - private com.google.protobuf.LazyStringList members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureMembersIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - members_ = new com.google.protobuf.LazyStringArrayList(members_); - bitField0_ |= 0x00000008; - } - } - /** - * repeated string members = 4; - */ - public java.util.List - getMembersList() { - return java.util.Collections.unmodifiableList(members_); - } - /** - * repeated string members = 4; - */ - public int getMembersCount() { - return members_.size(); - } - /** - * repeated string members = 4; - */ - public java.lang.String getMembers(int index) { - return members_.get(index); - } - /** - * repeated string members = 4; - */ - public com.google.protobuf.ByteString - getMembersBytes(int index) { - return members_.getByteString(index); - } - /** - * repeated string members = 4; - */ - public Builder setMembers( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string members = 4; - */ - public Builder addMembers( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.add(value); - onChanged(); - return this; - } - /** - * repeated string members = 4; - */ - public Builder addAllMembers( - java.lang.Iterable values) { - ensureMembersIsMutable(); - super.addAll(values, members_); - onChanged(); - return this; - } - /** - * repeated string members = 4; - */ - public Builder clearMembers() { - members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * repeated string members = 4; - */ - public Builder addMembersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.add(value); - onChanged(); - return this; - } - - // optional .signalservice.AttachmentPointer avatar = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> avatarBuilder_; - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer getAvatar() { - if (avatarBuilder_ == null) { - return avatar_; - } else { - return avatarBuilder_.getMessage(); - } - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public Builder setAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (avatarBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatar_ = value; - onChanged(); - } else { - avatarBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public Builder setAvatar( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { - if (avatarBuilder_ == null) { - avatar_ = builderForValue.build(); - onChanged(); - } else { - avatarBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public Builder mergeAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer value) { - if (avatarBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010) && - avatar_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { - avatar_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.newBuilder(avatar_).mergeFrom(value).buildPartial(); - } else { - avatar_ = value; - } - onChanged(); - } else { - avatarBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public Builder clearAvatar() { - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); - onChanged(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder getAvatarBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getAvatarFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder() { - if (avatarBuilder_ != null) { - return avatarBuilder_.getMessageOrBuilder(); - } else { - return avatar_; - } - } - /** - * optional .signalservice.AttachmentPointer avatar = 5; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder> - getAvatarFieldBuilder() { - if (avatarBuilder_ == null) { - avatarBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointer.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.AttachmentPointerOrBuilder>( - avatar_, - getParentForChildren(), - isClean()); - avatar_ = null; - } - return avatarBuilder_; - } - - // repeated string admins = 6; - private com.google.protobuf.LazyStringList admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureAdminsIsMutable() { - if (!((bitField0_ & 0x00000020) == 0x00000020)) { - admins_ = new com.google.protobuf.LazyStringArrayList(admins_); - bitField0_ |= 0x00000020; - } - } - /** - * repeated string admins = 6; - */ - public java.util.List - getAdminsList() { - return java.util.Collections.unmodifiableList(admins_); - } - /** - * repeated string admins = 6; - */ - public int getAdminsCount() { - return admins_.size(); - } - /** - * repeated string admins = 6; - */ - public java.lang.String getAdmins(int index) { - return admins_.get(index); - } - /** - * repeated string admins = 6; - */ - public com.google.protobuf.ByteString - getAdminsBytes(int index) { - return admins_.getByteString(index); - } - /** - * repeated string admins = 6; - */ - public Builder setAdmins( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string admins = 6; - */ - public Builder addAdmins( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.add(value); - onChanged(); - return this; - } - /** - * repeated string admins = 6; - */ - public Builder addAllAdmins( - java.lang.Iterable values) { - ensureAdminsIsMutable(); - super.addAll(values, admins_); - onChanged(); - return this; - } - /** - * repeated string admins = 6; - */ - public Builder clearAdmins() { - admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * repeated string admins = 6; - */ - public Builder addAdminsBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.add(value); - onChanged(); - return this; - } - - // repeated string newMembers = 998; - private com.google.protobuf.LazyStringList newMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureNewMembersIsMutable() { - if (!((bitField0_ & 0x00000040) == 0x00000040)) { - newMembers_ = new com.google.protobuf.LazyStringArrayList(newMembers_); - bitField0_ |= 0x00000040; - } - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public java.util.List - getNewMembersList() { - return java.util.Collections.unmodifiableList(newMembers_); - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public int getNewMembersCount() { - return newMembers_.size(); - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public java.lang.String getNewMembers(int index) { - return newMembers_.get(index); - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public com.google.protobuf.ByteString - getNewMembersBytes(int index) { - return newMembers_.getByteString(index); - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public Builder setNewMembers( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNewMembersIsMutable(); - newMembers_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public Builder addNewMembers( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNewMembersIsMutable(); - newMembers_.add(value); - onChanged(); - return this; - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public Builder addAllNewMembers( - java.lang.Iterable values) { - ensureNewMembersIsMutable(); - super.addAll(values, newMembers_); - onChanged(); - return this; - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public Builder clearNewMembers() { - newMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * repeated string newMembers = 998; - * - *
-       * Loki - These fields are only used internally for the Android code base.
-       * This is so that we can differentiate adding/kicking.
-       * DO NOT USE WHEN SENDING MESSAGES.
-       * 
- */ - public Builder addNewMembersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNewMembersIsMutable(); - newMembers_.add(value); - onChanged(); - return this; - } - - // repeated string removedMembers = 999; - private com.google.protobuf.LazyStringList removedMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureRemovedMembersIsMutable() { - if (!((bitField0_ & 0x00000080) == 0x00000080)) { - removedMembers_ = new com.google.protobuf.LazyStringArrayList(removedMembers_); - bitField0_ |= 0x00000080; - } - } - /** - * repeated string removedMembers = 999; - */ - public java.util.List - getRemovedMembersList() { - return java.util.Collections.unmodifiableList(removedMembers_); - } - /** - * repeated string removedMembers = 999; - */ - public int getRemovedMembersCount() { - return removedMembers_.size(); - } - /** - * repeated string removedMembers = 999; - */ - public java.lang.String getRemovedMembers(int index) { - return removedMembers_.get(index); - } - /** - * repeated string removedMembers = 999; - */ - public com.google.protobuf.ByteString - getRemovedMembersBytes(int index) { - return removedMembers_.getByteString(index); - } - /** - * repeated string removedMembers = 999; - */ - public Builder setRemovedMembers( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRemovedMembersIsMutable(); - removedMembers_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string removedMembers = 999; - */ - public Builder addRemovedMembers( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRemovedMembersIsMutable(); - removedMembers_.add(value); - onChanged(); - return this; - } - /** - * repeated string removedMembers = 999; - */ - public Builder addAllRemovedMembers( - java.lang.Iterable values) { - ensureRemovedMembersIsMutable(); - super.addAll(values, removedMembers_); - onChanged(); - return this; - } - /** - * repeated string removedMembers = 999; - */ - public Builder clearRemovedMembers() { - removedMembers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); - return this; - } - /** - * repeated string removedMembers = 999; - */ - public Builder addRemovedMembersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureRemovedMembersIsMutable(); - removedMembers_.add(value); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.GroupContext) - } - - static { - defaultInstance = new GroupContext(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.GroupContext) - } - - public interface ContactDetailsOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string number = 1; - /** - * optional string number = 1; - */ - boolean hasNumber(); - /** - * optional string number = 1; - */ - java.lang.String getNumber(); - /** - * optional string number = 1; - */ - com.google.protobuf.ByteString - getNumberBytes(); - - // optional string name = 2; - /** - * optional string name = 2; - */ - boolean hasName(); - /** - * optional string name = 2; - */ - java.lang.String getName(); - /** - * optional string name = 2; - */ - com.google.protobuf.ByteString - getNameBytes(); - - // optional .signalservice.ContactDetails.Avatar avatar = 3; - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - boolean hasAvatar(); - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar getAvatar(); - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder getAvatarOrBuilder(); - - // optional string color = 4; - /** - * optional string color = 4; - */ - boolean hasColor(); - /** - * optional string color = 4; - */ - java.lang.String getColor(); - /** - * optional string color = 4; - */ - com.google.protobuf.ByteString - getColorBytes(); - - // optional .signalservice.Verified verified = 5; - /** - * optional .signalservice.Verified verified = 5; - */ - boolean hasVerified(); - /** - * optional .signalservice.Verified verified = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getVerified(); - /** - * optional .signalservice.Verified verified = 5; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder getVerifiedOrBuilder(); - - // optional bytes profileKey = 6; - /** - * optional bytes profileKey = 6; - */ - boolean hasProfileKey(); - /** - * optional bytes profileKey = 6; - */ - com.google.protobuf.ByteString getProfileKey(); - - // optional bool blocked = 7; - /** - * optional bool blocked = 7; - */ - boolean hasBlocked(); - /** - * optional bool blocked = 7; - */ - boolean getBlocked(); - - // optional uint32 expireTimer = 8; - /** - * optional uint32 expireTimer = 8; - */ - boolean hasExpireTimer(); - /** - * optional uint32 expireTimer = 8; - */ - int getExpireTimer(); - - // optional string nickname = 101; - /** - * optional string nickname = 101; - * - *
-     * Loki
-     * 
- */ - boolean hasNickname(); - /** - * optional string nickname = 101; - * - *
-     * Loki
-     * 
- */ - java.lang.String getNickname(); - /** - * optional string nickname = 101; - * - *
-     * Loki
-     * 
- */ - com.google.protobuf.ByteString - getNicknameBytes(); - } - /** - * Protobuf type {@code signalservice.ContactDetails} - */ - public static final class ContactDetails extends - com.google.protobuf.GeneratedMessage - implements ContactDetailsOrBuilder { - // Use ContactDetails.newBuilder() to construct. - private ContactDetails(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ContactDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ContactDetails defaultInstance; - public static ContactDetails getDefaultInstance() { - return defaultInstance; - } - - public ContactDetails getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ContactDetails( - 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; - number_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - name_ = input.readBytes(); - break; - } - case 26: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = avatar_.toBuilder(); - } - avatar_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(avatar_); - avatar_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 34: { - bitField0_ |= 0x00000008; - color_ = input.readBytes(); - break; - } - case 42: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder subBuilder = null; - if (((bitField0_ & 0x00000010) == 0x00000010)) { - subBuilder = verified_.toBuilder(); - } - verified_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(verified_); - verified_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000010; - break; - } - case 50: { - bitField0_ |= 0x00000020; - profileKey_ = input.readBytes(); - break; - } - case 56: { - bitField0_ |= 0x00000040; - blocked_ = input.readBool(); - break; - } - case 64: { - bitField0_ |= 0x00000080; - expireTimer_ = input.readUInt32(); - break; - } - case 810: { - bitField0_ |= 0x00000100; - nickname_ = 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ContactDetails parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ContactDetails(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface AvatarOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string contentType = 1; - /** - * optional string contentType = 1; - */ - boolean hasContentType(); - /** - * optional string contentType = 1; - */ - java.lang.String getContentType(); - /** - * optional string contentType = 1; - */ - com.google.protobuf.ByteString - getContentTypeBytes(); - - // optional uint32 length = 2; - /** - * optional uint32 length = 2; - */ - boolean hasLength(); - /** - * optional uint32 length = 2; - */ - int getLength(); - } - /** - * Protobuf type {@code signalservice.ContactDetails.Avatar} - */ - public static final class Avatar extends - com.google.protobuf.GeneratedMessage - implements AvatarOrBuilder { - // Use Avatar.newBuilder() to construct. - private Avatar(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Avatar(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Avatar defaultInstance; - public static Avatar getDefaultInstance() { - return defaultInstance; - } - - public Avatar getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Avatar( - 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; - contentType_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - length_ = input.readUInt32(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_Avatar_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_Avatar_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Avatar parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Avatar(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string contentType = 1; - public static final int CONTENTTYPE_FIELD_NUMBER = 1; - private java.lang.Object contentType_; - /** - * optional string contentType = 1; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string contentType = 1; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - contentType_ = s; - } - return s; - } - } - /** - * optional string contentType = 1; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 length = 2; - public static final int LENGTH_FIELD_NUMBER = 2; - private int length_; - /** - * optional uint32 length = 2; - */ - public boolean hasLength() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 length = 2; - */ - public int getLength() { - return length_; - } - - private void initFields() { - contentType_ = ""; - length_ = 0; - } - 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, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, length_); - } - 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, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, length_); - } - 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.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar 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.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar 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.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar 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 signalservice.ContactDetails.Avatar} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_Avatar_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_Avatar_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.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(); - contentType_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - length_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_Avatar_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.contentType_ = contentType_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.length_ = length_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance()) return this; - if (other.hasContentType()) { - bitField0_ |= 0x00000001; - contentType_ = other.contentType_; - onChanged(); - } - if (other.hasLength()) { - setLength(other.getLength()); - } - 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.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string contentType = 1; - private java.lang.Object contentType_ = ""; - /** - * optional string contentType = 1; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string contentType = 1; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - contentType_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string contentType = 1; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string contentType = 1; - */ - public Builder setContentType( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - contentType_ = value; - onChanged(); - return this; - } - /** - * optional string contentType = 1; - */ - public Builder clearContentType() { - bitField0_ = (bitField0_ & ~0x00000001); - contentType_ = getDefaultInstance().getContentType(); - onChanged(); - return this; - } - /** - * optional string contentType = 1; - */ - public Builder setContentTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - contentType_ = value; - onChanged(); - return this; - } - - // optional uint32 length = 2; - private int length_ ; - /** - * optional uint32 length = 2; - */ - public boolean hasLength() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 length = 2; - */ - public int getLength() { - return length_; - } - /** - * optional uint32 length = 2; - */ - public Builder setLength(int value) { - bitField0_ |= 0x00000002; - length_ = value; - onChanged(); - return this; - } - /** - * optional uint32 length = 2; - */ - public Builder clearLength() { - bitField0_ = (bitField0_ & ~0x00000002); - length_ = 0; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ContactDetails.Avatar) - } - - static { - defaultInstance = new Avatar(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ContactDetails.Avatar) - } - - private int bitField0_; - // optional string number = 1; - public static final int NUMBER_FIELD_NUMBER = 1; - private java.lang.Object number_; - /** - * optional string number = 1; - */ - public boolean hasNumber() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string number = 1; - */ - public java.lang.String getNumber() { - java.lang.Object ref = number_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - number_ = s; - } - return s; - } - } - /** - * optional string number = 1; - */ - public com.google.protobuf.ByteString - getNumberBytes() { - java.lang.Object ref = number_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - number_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string name = 2; - public static final int NAME_FIELD_NUMBER = 2; - private java.lang.Object name_; - /** - * optional string name = 2; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string name = 2; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * optional string name = 2; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.ContactDetails.Avatar avatar = 3; - public static final int AVATAR_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar avatar_; - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar getAvatar() { - return avatar_; - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder getAvatarOrBuilder() { - return avatar_; - } - - // optional string color = 4; - public static final int COLOR_FIELD_NUMBER = 4; - private java.lang.Object color_; - /** - * optional string color = 4; - */ - public boolean hasColor() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string color = 4; - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - color_ = s; - } - return s; - } - } - /** - * optional string color = 4; - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.Verified verified = 5; - public static final int VERIFIED_FIELD_NUMBER = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified verified_; - /** - * optional .signalservice.Verified verified = 5; - */ - public boolean hasVerified() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.Verified verified = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getVerified() { - return verified_; - } - /** - * optional .signalservice.Verified verified = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder getVerifiedOrBuilder() { - return verified_; - } - - // optional bytes profileKey = 6; - public static final int PROFILEKEY_FIELD_NUMBER = 6; - private com.google.protobuf.ByteString profileKey_; - /** - * optional bytes profileKey = 6; - */ - public boolean hasProfileKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes profileKey = 6; - */ - public com.google.protobuf.ByteString getProfileKey() { - return profileKey_; - } - - // optional bool blocked = 7; - public static final int BLOCKED_FIELD_NUMBER = 7; - private boolean blocked_; - /** - * optional bool blocked = 7; - */ - public boolean hasBlocked() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bool blocked = 7; - */ - public boolean getBlocked() { - return blocked_; - } - - // optional uint32 expireTimer = 8; - public static final int EXPIRETIMER_FIELD_NUMBER = 8; - private int expireTimer_; - /** - * optional uint32 expireTimer = 8; - */ - public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional uint32 expireTimer = 8; - */ - public int getExpireTimer() { - return expireTimer_; - } - - // optional string nickname = 101; - public static final int NICKNAME_FIELD_NUMBER = 101; - private java.lang.Object nickname_; - /** - * optional string nickname = 101; - * - *
-     * Loki
-     * 
- */ - public boolean hasNickname() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional string nickname = 101; - * - *
-     * Loki
-     * 
- */ - public java.lang.String getNickname() { - java.lang.Object ref = nickname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - nickname_ = s; - } - return s; - } - } - /** - * optional string nickname = 101; - * - *
-     * Loki
-     * 
- */ - public com.google.protobuf.ByteString - getNicknameBytes() { - java.lang.Object ref = nickname_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nickname_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - number_ = ""; - name_ = ""; - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance(); - color_ = ""; - verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - profileKey_ = com.google.protobuf.ByteString.EMPTY; - blocked_ = false; - expireTimer_ = 0; - nickname_ = ""; - } - 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, getNumberBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getNameBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, avatar_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getColorBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeMessage(5, verified_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(6, profileKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBool(7, blocked_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - output.writeUInt32(8, expireTimer_); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - output.writeBytes(101, getNicknameBytes()); - } - 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, getNumberBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getNameBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, avatar_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, getColorBytes()); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, verified_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, profileKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(7, blocked_); - } - if (((bitField0_ & 0x00000080) == 0x00000080)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(8, expireTimer_); - } - if (((bitField0_ & 0x00000100) == 0x00000100)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(101, getNicknameBytes()); - } - 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.signalservice.internal.push.SignalServiceProtos.ContactDetails parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails 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.signalservice.internal.push.SignalServiceProtos.ContactDetails parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails 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.signalservice.internal.push.SignalServiceProtos.ContactDetails 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 signalservice.ContactDetails} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetailsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getAvatarFieldBuilder(); - getVerifiedFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - number_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - color_ = ""; - bitField0_ = (bitField0_ & ~0x00000008); - if (verifiedBuilder_ == null) { - verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - } else { - verifiedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - profileKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000020); - blocked_ = false; - bitField0_ = (bitField0_ & ~0x00000040); - expireTimer_ = 0; - bitField0_ = (bitField0_ & ~0x00000080); - nickname_ = ""; - bitField0_ = (bitField0_ & ~0x00000100); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_ContactDetails_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.number_ = number_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.name_ = name_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (avatarBuilder_ == null) { - result.avatar_ = avatar_; - } else { - result.avatar_ = avatarBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000008; - } - result.color_ = color_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - if (verifiedBuilder_ == null) { - result.verified_ = verified_; - } else { - result.verified_ = verifiedBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000020; - } - result.profileKey_ = profileKey_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000040; - } - result.blocked_ = blocked_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000080; - } - result.expireTimer_ = expireTimer_; - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000100; - } - result.nickname_ = nickname_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.getDefaultInstance()) return this; - if (other.hasNumber()) { - bitField0_ |= 0x00000001; - number_ = other.number_; - onChanged(); - } - if (other.hasName()) { - bitField0_ |= 0x00000002; - name_ = other.name_; - onChanged(); - } - if (other.hasAvatar()) { - mergeAvatar(other.getAvatar()); - } - if (other.hasColor()) { - bitField0_ |= 0x00000008; - color_ = other.color_; - onChanged(); - } - if (other.hasVerified()) { - mergeVerified(other.getVerified()); - } - if (other.hasProfileKey()) { - setProfileKey(other.getProfileKey()); - } - if (other.hasBlocked()) { - setBlocked(other.getBlocked()); - } - if (other.hasExpireTimer()) { - setExpireTimer(other.getExpireTimer()); - } - if (other.hasNickname()) { - bitField0_ |= 0x00000100; - nickname_ = other.nickname_; - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.ContactDetails parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string number = 1; - private java.lang.Object number_ = ""; - /** - * optional string number = 1; - */ - public boolean hasNumber() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string number = 1; - */ - public java.lang.String getNumber() { - java.lang.Object ref = number_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - number_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string number = 1; - */ - public com.google.protobuf.ByteString - getNumberBytes() { - java.lang.Object ref = number_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - number_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string number = 1; - */ - public Builder setNumber( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - number_ = value; - onChanged(); - return this; - } - /** - * optional string number = 1; - */ - public Builder clearNumber() { - bitField0_ = (bitField0_ & ~0x00000001); - number_ = getDefaultInstance().getNumber(); - onChanged(); - return this; - } - /** - * optional string number = 1; - */ - public Builder setNumberBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - number_ = value; - onChanged(); - return this; - } - - // optional string name = 2; - private java.lang.Object name_ = ""; - /** - * optional string name = 2; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string name = 2; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string name = 2; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string name = 2; - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - onChanged(); - return this; - } - /** - * optional string name = 2; - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000002); - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * optional string name = 2; - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - onChanged(); - return this; - } - - // optional .signalservice.ContactDetails.Avatar avatar = 3; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder> avatarBuilder_; - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar getAvatar() { - if (avatarBuilder_ == null) { - return avatar_; - } else { - return avatarBuilder_.getMessage(); - } - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public Builder setAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar value) { - if (avatarBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatar_ = value; - onChanged(); - } else { - avatarBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public Builder setAvatar( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder builderForValue) { - if (avatarBuilder_ == null) { - avatar_ = builderForValue.build(); - onChanged(); - } else { - avatarBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public Builder mergeAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar value) { - if (avatarBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - avatar_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance()) { - avatar_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.newBuilder(avatar_).mergeFrom(value).buildPartial(); - } else { - avatar_ = value; - } - onChanged(); - } else { - avatarBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public Builder clearAvatar() { - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.getDefaultInstance(); - onChanged(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder getAvatarBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getAvatarFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder getAvatarOrBuilder() { - if (avatarBuilder_ != null) { - return avatarBuilder_.getMessageOrBuilder(); - } else { - return avatar_; - } - } - /** - * optional .signalservice.ContactDetails.Avatar avatar = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder> - getAvatarFieldBuilder() { - if (avatarBuilder_ == null) { - avatarBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.ContactDetails.AvatarOrBuilder>( - avatar_, - getParentForChildren(), - isClean()); - avatar_ = null; - } - return avatarBuilder_; - } - - // optional string color = 4; - private java.lang.Object color_ = ""; - /** - * optional string color = 4; - */ - public boolean hasColor() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional string color = 4; - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - color_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string color = 4; - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string color = 4; - */ - public Builder setColor( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - color_ = value; - onChanged(); - return this; - } - /** - * optional string color = 4; - */ - public Builder clearColor() { - bitField0_ = (bitField0_ & ~0x00000008); - color_ = getDefaultInstance().getColor(); - onChanged(); - return this; - } - /** - * optional string color = 4; - */ - public Builder setColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - color_ = value; - onChanged(); - return this; - } - - // optional .signalservice.Verified verified = 5; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder> verifiedBuilder_; - /** - * optional .signalservice.Verified verified = 5; - */ - public boolean hasVerified() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional .signalservice.Verified verified = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified getVerified() { - if (verifiedBuilder_ == null) { - return verified_; - } else { - return verifiedBuilder_.getMessage(); - } - } - /** - * optional .signalservice.Verified verified = 5; - */ - public Builder setVerified(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified value) { - if (verifiedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - verified_ = value; - onChanged(); - } else { - verifiedBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.Verified verified = 5; - */ - public Builder setVerified( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder builderForValue) { - if (verifiedBuilder_ == null) { - verified_ = builderForValue.build(); - onChanged(); - } else { - verifiedBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.Verified verified = 5; - */ - public Builder mergeVerified(org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified value) { - if (verifiedBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010) && - verified_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance()) { - verified_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.newBuilder(verified_).mergeFrom(value).buildPartial(); - } else { - verified_ = value; - } - onChanged(); - } else { - verifiedBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - return this; - } - /** - * optional .signalservice.Verified verified = 5; - */ - public Builder clearVerified() { - if (verifiedBuilder_ == null) { - verified_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.getDefaultInstance(); - onChanged(); - } else { - verifiedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - /** - * optional .signalservice.Verified verified = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder getVerifiedBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getVerifiedFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.Verified verified = 5; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder getVerifiedOrBuilder() { - if (verifiedBuilder_ != null) { - return verifiedBuilder_.getMessageOrBuilder(); - } else { - return verified_; - } - } - /** - * optional .signalservice.Verified verified = 5; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder> - getVerifiedFieldBuilder() { - if (verifiedBuilder_ == null) { - verifiedBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified, org.whispersystems.signalservice.internal.push.SignalServiceProtos.Verified.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.VerifiedOrBuilder>( - verified_, - getParentForChildren(), - isClean()); - verified_ = null; - } - return verifiedBuilder_; - } - - // optional bytes profileKey = 6; - private com.google.protobuf.ByteString profileKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes profileKey = 6; - */ - public boolean hasProfileKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes profileKey = 6; - */ - public com.google.protobuf.ByteString getProfileKey() { - return profileKey_; - } - /** - * optional bytes profileKey = 6; - */ - public Builder setProfileKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - profileKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes profileKey = 6; - */ - public Builder clearProfileKey() { - bitField0_ = (bitField0_ & ~0x00000020); - profileKey_ = getDefaultInstance().getProfileKey(); - onChanged(); - return this; - } - - // optional bool blocked = 7; - private boolean blocked_ ; - /** - * optional bool blocked = 7; - */ - public boolean hasBlocked() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bool blocked = 7; - */ - public boolean getBlocked() { - return blocked_; - } - /** - * optional bool blocked = 7; - */ - public Builder setBlocked(boolean value) { - bitField0_ |= 0x00000040; - blocked_ = value; - onChanged(); - return this; - } - /** - * optional bool blocked = 7; - */ - public Builder clearBlocked() { - bitField0_ = (bitField0_ & ~0x00000040); - blocked_ = false; - onChanged(); - return this; - } - - // optional uint32 expireTimer = 8; - private int expireTimer_ ; - /** - * optional uint32 expireTimer = 8; - */ - public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional uint32 expireTimer = 8; - */ - public int getExpireTimer() { - return expireTimer_; - } - /** - * optional uint32 expireTimer = 8; - */ - public Builder setExpireTimer(int value) { - bitField0_ |= 0x00000080; - expireTimer_ = value; - onChanged(); - return this; - } - /** - * optional uint32 expireTimer = 8; - */ - public Builder clearExpireTimer() { - bitField0_ = (bitField0_ & ~0x00000080); - expireTimer_ = 0; - onChanged(); - return this; - } - - // optional string nickname = 101; - private java.lang.Object nickname_ = ""; - /** - * optional string nickname = 101; - * - *
-       * Loki
-       * 
- */ - public boolean hasNickname() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional string nickname = 101; - * - *
-       * Loki
-       * 
- */ - public java.lang.String getNickname() { - java.lang.Object ref = nickname_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - nickname_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string nickname = 101; - * - *
-       * Loki
-       * 
- */ - public com.google.protobuf.ByteString - getNicknameBytes() { - java.lang.Object ref = nickname_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nickname_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string nickname = 101; - * - *
-       * Loki
-       * 
- */ - public Builder setNickname( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000100; - nickname_ = value; - onChanged(); - return this; - } - /** - * optional string nickname = 101; - * - *
-       * Loki
-       * 
- */ - public Builder clearNickname() { - bitField0_ = (bitField0_ & ~0x00000100); - nickname_ = getDefaultInstance().getNickname(); - onChanged(); - return this; - } - /** - * optional string nickname = 101; - * - *
-       * Loki
-       * 
- */ - public Builder setNicknameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000100; - nickname_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.ContactDetails) - } - - static { - defaultInstance = new ContactDetails(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.ContactDetails) - } - - public interface GroupDetailsOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional bytes id = 1; - /** - * optional bytes id = 1; - */ - boolean hasId(); - /** - * optional bytes id = 1; - */ - com.google.protobuf.ByteString getId(); - - // optional string name = 2; - /** - * optional string name = 2; - */ - boolean hasName(); - /** - * optional string name = 2; - */ - java.lang.String getName(); - /** - * optional string name = 2; - */ - com.google.protobuf.ByteString - getNameBytes(); - - // repeated string members = 3; - /** - * repeated string members = 3; - */ - java.util.List - getMembersList(); - /** - * repeated string members = 3; - */ - int getMembersCount(); - /** - * repeated string members = 3; - */ - java.lang.String getMembers(int index); - /** - * repeated string members = 3; - */ - com.google.protobuf.ByteString - getMembersBytes(int index); - - // optional .signalservice.GroupDetails.Avatar avatar = 4; - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - boolean hasAvatar(); - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar getAvatar(); - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder getAvatarOrBuilder(); - - // optional bool active = 5 [default = true]; - /** - * optional bool active = 5 [default = true]; - */ - boolean hasActive(); - /** - * optional bool active = 5 [default = true]; - */ - boolean getActive(); - - // optional uint32 expireTimer = 6; - /** - * optional uint32 expireTimer = 6; - */ - boolean hasExpireTimer(); - /** - * optional uint32 expireTimer = 6; - */ - int getExpireTimer(); - - // optional string color = 7; - /** - * optional string color = 7; - */ - boolean hasColor(); - /** - * optional string color = 7; - */ - java.lang.String getColor(); - /** - * optional string color = 7; - */ - com.google.protobuf.ByteString - getColorBytes(); - - // optional bool blocked = 8; - /** - * optional bool blocked = 8; - */ - boolean hasBlocked(); - /** - * optional bool blocked = 8; - */ - boolean getBlocked(); - - // repeated string admins = 9; - /** - * repeated string admins = 9; - */ - java.util.List - getAdminsList(); - /** - * repeated string admins = 9; - */ - int getAdminsCount(); - /** - * repeated string admins = 9; - */ - java.lang.String getAdmins(int index); - /** - * repeated string admins = 9; - */ - com.google.protobuf.ByteString - getAdminsBytes(int index); - } - /** - * Protobuf type {@code signalservice.GroupDetails} - */ - public static final class GroupDetails extends - com.google.protobuf.GeneratedMessage - implements GroupDetailsOrBuilder { - // Use GroupDetails.newBuilder() to construct. - private GroupDetails(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private GroupDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final GroupDetails defaultInstance; - public static GroupDetails getDefaultInstance() { - return defaultInstance; - } - - public GroupDetails getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GroupDetails( - 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; - id_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - name_ = input.readBytes(); - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { - members_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000004; - } - members_.add(input.readBytes()); - break; - } - case 34: { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = avatar_.toBuilder(); - } - avatar_ = input.readMessage(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(avatar_); - avatar_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 40: { - bitField0_ |= 0x00000008; - active_ = input.readBool(); - break; - } - case 48: { - bitField0_ |= 0x00000010; - expireTimer_ = input.readUInt32(); - break; - } - case 58: { - bitField0_ |= 0x00000020; - color_ = input.readBytes(); - break; - } - case 64: { - bitField0_ |= 0x00000040; - blocked_ = input.readBool(); - break; - } - case 74: { - if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) { - admins_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000100; - } - admins_.add(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_ & 0x00000004) == 0x00000004)) { - members_ = new com.google.protobuf.UnmodifiableLazyStringList(members_); - } - if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) { - admins_ = new com.google.protobuf.UnmodifiableLazyStringList(admins_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public GroupDetails parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GroupDetails(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface AvatarOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string contentType = 1; - /** - * optional string contentType = 1; - */ - boolean hasContentType(); - /** - * optional string contentType = 1; - */ - java.lang.String getContentType(); - /** - * optional string contentType = 1; - */ - com.google.protobuf.ByteString - getContentTypeBytes(); - - // optional uint32 length = 2; - /** - * optional uint32 length = 2; - */ - boolean hasLength(); - /** - * optional uint32 length = 2; - */ - int getLength(); - } - /** - * Protobuf type {@code signalservice.GroupDetails.Avatar} - */ - public static final class Avatar extends - com.google.protobuf.GeneratedMessage - implements AvatarOrBuilder { - // Use Avatar.newBuilder() to construct. - private Avatar(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Avatar(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Avatar defaultInstance; - public static Avatar getDefaultInstance() { - return defaultInstance; - } - - public Avatar getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Avatar( - 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; - contentType_ = input.readBytes(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - length_ = input.readUInt32(); - 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.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_Avatar_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_Avatar_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Avatar parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Avatar(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string contentType = 1; - public static final int CONTENTTYPE_FIELD_NUMBER = 1; - private java.lang.Object contentType_; - /** - * optional string contentType = 1; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string contentType = 1; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - contentType_ = s; - } - return s; - } - } - /** - * optional string contentType = 1; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional uint32 length = 2; - public static final int LENGTH_FIELD_NUMBER = 2; - private int length_; - /** - * optional uint32 length = 2; - */ - public boolean hasLength() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 length = 2; - */ - public int getLength() { - return length_; - } - - private void initFields() { - contentType_ = ""; - length_ = 0; - } - 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, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, length_); - } - 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, getContentTypeBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, length_); - } - 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.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar 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.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar 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.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar 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 signalservice.GroupDetails.Avatar} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_Avatar_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_Avatar_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.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(); - contentType_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - length_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_Avatar_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.contentType_ = contentType_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.length_ = length_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance()) return this; - if (other.hasContentType()) { - bitField0_ |= 0x00000001; - contentType_ = other.contentType_; - onChanged(); - } - if (other.hasLength()) { - setLength(other.getLength()); - } - 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.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string contentType = 1; - private java.lang.Object contentType_ = ""; - /** - * optional string contentType = 1; - */ - public boolean hasContentType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string contentType = 1; - */ - public java.lang.String getContentType() { - java.lang.Object ref = contentType_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - contentType_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string contentType = 1; - */ - public com.google.protobuf.ByteString - getContentTypeBytes() { - java.lang.Object ref = contentType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - contentType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string contentType = 1; - */ - public Builder setContentType( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - contentType_ = value; - onChanged(); - return this; - } - /** - * optional string contentType = 1; - */ - public Builder clearContentType() { - bitField0_ = (bitField0_ & ~0x00000001); - contentType_ = getDefaultInstance().getContentType(); - onChanged(); - return this; - } - /** - * optional string contentType = 1; - */ - public Builder setContentTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - contentType_ = value; - onChanged(); - return this; - } - - // optional uint32 length = 2; - private int length_ ; - /** - * optional uint32 length = 2; - */ - public boolean hasLength() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 length = 2; - */ - public int getLength() { - return length_; - } - /** - * optional uint32 length = 2; - */ - public Builder setLength(int value) { - bitField0_ |= 0x00000002; - length_ = value; - onChanged(); - return this; - } - /** - * optional uint32 length = 2; - */ - public Builder clearLength() { - bitField0_ = (bitField0_ & ~0x00000002); - length_ = 0; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.GroupDetails.Avatar) - } - - static { - defaultInstance = new Avatar(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.GroupDetails.Avatar) - } - - private int bitField0_; - // optional bytes id = 1; - public static final int ID_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString id_; - /** - * optional bytes id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes id = 1; - */ - public com.google.protobuf.ByteString getId() { - return id_; - } - - // optional string name = 2; - public static final int NAME_FIELD_NUMBER = 2; - private java.lang.Object name_; - /** - * optional string name = 2; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string name = 2; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * optional string name = 2; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated string members = 3; - public static final int MEMBERS_FIELD_NUMBER = 3; - private com.google.protobuf.LazyStringList members_; - /** - * repeated string members = 3; - */ - public java.util.List - getMembersList() { - return members_; - } - /** - * repeated string members = 3; - */ - public int getMembersCount() { - return members_.size(); - } - /** - * repeated string members = 3; - */ - public java.lang.String getMembers(int index) { - return members_.get(index); - } - /** - * repeated string members = 3; - */ - public com.google.protobuf.ByteString - getMembersBytes(int index) { - return members_.getByteString(index); - } - - // optional .signalservice.GroupDetails.Avatar avatar = 4; - public static final int AVATAR_FIELD_NUMBER = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar avatar_; - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar getAvatar() { - return avatar_; - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder getAvatarOrBuilder() { - return avatar_; - } - - // optional bool active = 5 [default = true]; - public static final int ACTIVE_FIELD_NUMBER = 5; - private boolean active_; - /** - * optional bool active = 5 [default = true]; - */ - public boolean hasActive() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bool active = 5 [default = true]; - */ - public boolean getActive() { - return active_; - } - - // optional uint32 expireTimer = 6; - public static final int EXPIRETIMER_FIELD_NUMBER = 6; - private int expireTimer_; - /** - * optional uint32 expireTimer = 6; - */ - public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint32 expireTimer = 6; - */ - public int getExpireTimer() { - return expireTimer_; - } - - // optional string color = 7; - public static final int COLOR_FIELD_NUMBER = 7; - private java.lang.Object color_; - /** - * optional string color = 7; - */ - public boolean hasColor() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional string color = 7; - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - color_ = s; - } - return s; - } - } - /** - * optional string color = 7; - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bool blocked = 8; - public static final int BLOCKED_FIELD_NUMBER = 8; - private boolean blocked_; - /** - * optional bool blocked = 8; - */ - public boolean hasBlocked() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bool blocked = 8; - */ - public boolean getBlocked() { - return blocked_; - } - - // repeated string admins = 9; - public static final int ADMINS_FIELD_NUMBER = 9; - private com.google.protobuf.LazyStringList admins_; - /** - * repeated string admins = 9; - */ - public java.util.List - getAdminsList() { - return admins_; - } - /** - * repeated string admins = 9; - */ - public int getAdminsCount() { - return admins_.size(); - } - /** - * repeated string admins = 9; - */ - public java.lang.String getAdmins(int index) { - return admins_.get(index); - } - /** - * repeated string admins = 9; - */ - public com.google.protobuf.ByteString - getAdminsBytes(int index) { - return admins_.getByteString(index); - } - - private void initFields() { - id_ = com.google.protobuf.ByteString.EMPTY; - name_ = ""; - members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance(); - active_ = true; - expireTimer_ = 0; - color_ = ""; - blocked_ = false; - admins_ = com.google.protobuf.LazyStringArrayList.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, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getNameBytes()); - } - for (int i = 0; i < members_.size(); i++) { - output.writeBytes(3, members_.getByteString(i)); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(4, avatar_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBool(5, active_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeUInt32(6, expireTimer_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(7, getColorBytes()); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBool(8, blocked_); - } - for (int i = 0; i < admins_.size(); i++) { - output.writeBytes(9, admins_.getByteString(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, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getNameBytes()); - } - { - int dataSize = 0; - for (int i = 0; i < members_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(members_.getByteString(i)); - } - size += dataSize; - size += 1 * getMembersList().size(); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, avatar_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(5, active_); - } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, expireTimer_); - } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(7, getColorBytes()); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(8, blocked_); - } - { - int dataSize = 0; - for (int i = 0; i < admins_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(admins_.getByteString(i)); - } - size += dataSize; - size += 1 * getAdminsList().size(); - } - 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.signalservice.internal.push.SignalServiceProtos.GroupDetails parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails 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.signalservice.internal.push.SignalServiceProtos.GroupDetails parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails 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.signalservice.internal.push.SignalServiceProtos.GroupDetails 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 signalservice.GroupDetails} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetailsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.class, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getAvatarFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - id_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - active_ = true; - bitField0_ = (bitField0_ & ~0x00000010); - expireTimer_ = 0; - bitField0_ = (bitField0_ & ~0x00000020); - color_ = ""; - bitField0_ = (bitField0_ & ~0x00000040); - blocked_ = false; - bitField0_ = (bitField0_ & ~0x00000080); - admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000100); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.internal_static_signalservice_GroupDetails_descriptor; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails build() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails buildPartial() { - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails result = new org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails(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.name_ = name_; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - members_ = new com.google.protobuf.UnmodifiableLazyStringList( - members_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.members_ = members_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000004; - } - if (avatarBuilder_ == null) { - result.avatar_ = avatar_; - } else { - result.avatar_ = avatarBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000008; - } - result.active_ = active_; - if (((from_bitField0_ & 0x00000020) == 0x00000020)) { - to_bitField0_ |= 0x00000010; - } - result.expireTimer_ = expireTimer_; - if (((from_bitField0_ & 0x00000040) == 0x00000040)) { - to_bitField0_ |= 0x00000020; - } - result.color_ = color_; - if (((from_bitField0_ & 0x00000080) == 0x00000080)) { - to_bitField0_ |= 0x00000040; - } - result.blocked_ = blocked_; - if (((bitField0_ & 0x00000100) == 0x00000100)) { - admins_ = new com.google.protobuf.UnmodifiableLazyStringList( - admins_); - bitField0_ = (bitField0_ & ~0x00000100); - } - result.admins_ = admins_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails) { - return mergeFrom((org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails other) { - if (other == org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasName()) { - bitField0_ |= 0x00000002; - name_ = other.name_; - onChanged(); - } - if (!other.members_.isEmpty()) { - if (members_.isEmpty()) { - members_ = other.members_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureMembersIsMutable(); - members_.addAll(other.members_); - } - onChanged(); - } - if (other.hasAvatar()) { - mergeAvatar(other.getAvatar()); - } - if (other.hasActive()) { - setActive(other.getActive()); - } - if (other.hasExpireTimer()) { - setExpireTimer(other.getExpireTimer()); - } - if (other.hasColor()) { - bitField0_ |= 0x00000040; - color_ = other.color_; - onChanged(); - } - if (other.hasBlocked()) { - setBlocked(other.getBlocked()); - } - if (!other.admins_.isEmpty()) { - if (admins_.isEmpty()) { - admins_ = other.admins_; - bitField0_ = (bitField0_ & ~0x00000100); - } else { - ensureAdminsIsMutable(); - admins_.addAll(other.admins_); - } - onChanged(); - } - 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.signalservice.internal.push.SignalServiceProtos.GroupDetails parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bytes id = 1; - private com.google.protobuf.ByteString id_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bytes id = 1; - */ - public com.google.protobuf.ByteString getId() { - return id_; - } - /** - * optional bytes id = 1; - */ - public Builder setId(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional bytes id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = getDefaultInstance().getId(); - onChanged(); - return this; - } - - // optional string name = 2; - private java.lang.Object name_ = ""; - /** - * optional string name = 2; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string name = 2; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string name = 2; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string name = 2; - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - onChanged(); - return this; - } - /** - * optional string name = 2; - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000002); - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * optional string name = 2; - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - onChanged(); - return this; - } - - // repeated string members = 3; - private com.google.protobuf.LazyStringList members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureMembersIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { - members_ = new com.google.protobuf.LazyStringArrayList(members_); - bitField0_ |= 0x00000004; - } - } - /** - * repeated string members = 3; - */ - public java.util.List - getMembersList() { - return java.util.Collections.unmodifiableList(members_); - } - /** - * repeated string members = 3; - */ - public int getMembersCount() { - return members_.size(); - } - /** - * repeated string members = 3; - */ - public java.lang.String getMembers(int index) { - return members_.get(index); - } - /** - * repeated string members = 3; - */ - public com.google.protobuf.ByteString - getMembersBytes(int index) { - return members_.getByteString(index); - } - /** - * repeated string members = 3; - */ - public Builder setMembers( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string members = 3; - */ - public Builder addMembers( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.add(value); - onChanged(); - return this; - } - /** - * repeated string members = 3; - */ - public Builder addAllMembers( - java.lang.Iterable values) { - ensureMembersIsMutable(); - super.addAll(values, members_); - onChanged(); - return this; - } - /** - * repeated string members = 3; - */ - public Builder clearMembers() { - members_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * repeated string members = 3; - */ - public Builder addMembersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureMembersIsMutable(); - members_.add(value); - onChanged(); - return this; - } - - // optional .signalservice.GroupDetails.Avatar avatar = 4; - private org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder> avatarBuilder_; - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public boolean hasAvatar() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar getAvatar() { - if (avatarBuilder_ == null) { - return avatar_; - } else { - return avatarBuilder_.getMessage(); - } - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public Builder setAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar value) { - if (avatarBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatar_ = value; - onChanged(); - } else { - avatarBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public Builder setAvatar( - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder builderForValue) { - if (avatarBuilder_ == null) { - avatar_ = builderForValue.build(); - onChanged(); - } else { - avatarBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public Builder mergeAvatar(org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar value) { - if (avatarBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008) && - avatar_ != org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance()) { - avatar_ = - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.newBuilder(avatar_).mergeFrom(value).buildPartial(); - } else { - avatar_ = value; - } - onChanged(); - } else { - avatarBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - return this; - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public Builder clearAvatar() { - if (avatarBuilder_ == null) { - avatar_ = org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.getDefaultInstance(); - onChanged(); - } else { - avatarBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder getAvatarBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getAvatarFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - public org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder getAvatarOrBuilder() { - if (avatarBuilder_ != null) { - return avatarBuilder_.getMessageOrBuilder(); - } else { - return avatar_; - } - } - /** - * optional .signalservice.GroupDetails.Avatar avatar = 4; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder> - getAvatarFieldBuilder() { - if (avatarBuilder_ == null) { - avatarBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.Avatar.Builder, org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupDetails.AvatarOrBuilder>( - avatar_, - getParentForChildren(), - isClean()); - avatar_ = null; - } - return avatarBuilder_; - } - - // optional bool active = 5 [default = true]; - private boolean active_ = true; - /** - * optional bool active = 5 [default = true]; - */ - public boolean hasActive() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bool active = 5 [default = true]; - */ - public boolean getActive() { - return active_; - } - /** - * optional bool active = 5 [default = true]; - */ - public Builder setActive(boolean value) { - bitField0_ |= 0x00000010; - active_ = value; - onChanged(); - return this; - } - /** - * optional bool active = 5 [default = true]; - */ - public Builder clearActive() { - bitField0_ = (bitField0_ & ~0x00000010); - active_ = true; - onChanged(); - return this; - } - - // optional uint32 expireTimer = 6; - private int expireTimer_ ; - /** - * optional uint32 expireTimer = 6; - */ - public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional uint32 expireTimer = 6; - */ - public int getExpireTimer() { - return expireTimer_; - } - /** - * optional uint32 expireTimer = 6; - */ - public Builder setExpireTimer(int value) { - bitField0_ |= 0x00000020; - expireTimer_ = value; - onChanged(); - return this; - } - /** - * optional uint32 expireTimer = 6; - */ - public Builder clearExpireTimer() { - bitField0_ = (bitField0_ & ~0x00000020); - expireTimer_ = 0; - onChanged(); - return this; - } - - // optional string color = 7; - private java.lang.Object color_ = ""; - /** - * optional string color = 7; - */ - public boolean hasColor() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional string color = 7; - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - color_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string color = 7; - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string color = 7; - */ - public Builder setColor( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - color_ = value; - onChanged(); - return this; - } - /** - * optional string color = 7; - */ - public Builder clearColor() { - bitField0_ = (bitField0_ & ~0x00000040); - color_ = getDefaultInstance().getColor(); - onChanged(); - return this; - } - /** - * optional string color = 7; - */ - public Builder setColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - color_ = value; - onChanged(); - return this; - } - - // optional bool blocked = 8; - private boolean blocked_ ; - /** - * optional bool blocked = 8; - */ - public boolean hasBlocked() { - return ((bitField0_ & 0x00000080) == 0x00000080); - } - /** - * optional bool blocked = 8; - */ - public boolean getBlocked() { - return blocked_; - } - /** - * optional bool blocked = 8; - */ - public Builder setBlocked(boolean value) { - bitField0_ |= 0x00000080; - blocked_ = value; - onChanged(); - return this; - } - /** - * optional bool blocked = 8; - */ - public Builder clearBlocked() { - bitField0_ = (bitField0_ & ~0x00000080); - blocked_ = false; - onChanged(); - return this; - } - - // repeated string admins = 9; - private com.google.protobuf.LazyStringList admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureAdminsIsMutable() { - if (!((bitField0_ & 0x00000100) == 0x00000100)) { - admins_ = new com.google.protobuf.LazyStringArrayList(admins_); - bitField0_ |= 0x00000100; - } - } - /** - * repeated string admins = 9; - */ - public java.util.List - getAdminsList() { - return java.util.Collections.unmodifiableList(admins_); - } - /** - * repeated string admins = 9; - */ - public int getAdminsCount() { - return admins_.size(); - } - /** - * repeated string admins = 9; - */ - public java.lang.String getAdmins(int index) { - return admins_.get(index); - } - /** - * repeated string admins = 9; - */ - public com.google.protobuf.ByteString - getAdminsBytes(int index) { - return admins_.getByteString(index); - } - /** - * repeated string admins = 9; - */ - public Builder setAdmins( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string admins = 9; - */ - public Builder addAdmins( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.add(value); - onChanged(); - return this; - } - /** - * repeated string admins = 9; - */ - public Builder addAllAdmins( - java.lang.Iterable values) { - ensureAdminsIsMutable(); - super.addAll(values, admins_); - onChanged(); - return this; - } - /** - * repeated string admins = 9; - */ - public Builder clearAdmins() { - admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000100); - onChanged(); - return this; - } - /** - * repeated string admins = 9; - */ - public Builder addAdminsBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdminsIsMutable(); - admins_.add(value); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.GroupDetails) - } - - static { - defaultInstance = new GroupDetails(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.GroupDetails) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_Envelope_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_Envelope_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_Content_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_Content_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DeviceLinkMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DeviceLinkMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_PreKeyBundleMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_PreKeyBundleMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_CallMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_CallMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_CallMessage_Offer_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_CallMessage_Offer_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_CallMessage_Answer_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_CallMessage_Answer_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_CallMessage_IceUpdate_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_CallMessage_IceUpdate_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_CallMessage_Busy_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_CallMessage_Busy_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_CallMessage_Hangup_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_CallMessage_Hangup_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Quote_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Quote_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Quote_QuotedAttachment_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Quote_QuotedAttachment_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Contact_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Contact_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Contact_Name_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Contact_Name_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Contact_Phone_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Contact_Phone_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Contact_Email_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Contact_Email_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Contact_PostalAddress_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Contact_PostalAddress_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Contact_Avatar_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Contact_Avatar_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Preview_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Preview_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_DataMessage_Sticker_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_DataMessage_Sticker_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_LokiUserProfile_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_LokiUserProfile_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ClosedGroupUpdate_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ClosedGroupUpdate_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ClosedGroupUpdate_SenderKey_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ClosedGroupUpdate_SenderKey_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_NullMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_NullMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ReceiptMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ReceiptMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_TypingMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_TypingMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_Verified_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_Verified_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Sent_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Sent_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Contacts_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Contacts_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Groups_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Groups_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Blocked_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Blocked_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Request_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Request_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Read_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Read_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_Configuration_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_Configuration_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_StickerPackOperation_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_StickerPackOperation_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_SyncMessage_OpenGroupDetails_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_SyncMessage_OpenGroupDetails_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_AttachmentPointer_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_AttachmentPointer_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_GroupContext_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_GroupContext_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ContactDetails_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ContactDetails_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_ContactDetails_Avatar_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_ContactDetails_Avatar_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_GroupDetails_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_GroupDetails_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_GroupDetails_Avatar_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_GroupDetails_Avatar_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\023SignalService.proto\022\rsignalservice\"\367\002\n" + - "\010Envelope\022*\n\004type\030\001 \001(\0162\034.signalservice." + - "Envelope.Type\022\016\n\006source\030\002 \001(\t\022\024\n\014sourceD" + - "evice\030\007 \001(\r\022\r\n\005relay\030\003 \001(\t\022\021\n\ttimestamp\030" + - "\005 \001(\004\022\025\n\rlegacyMessage\030\006 \001(\014\022\017\n\007content\030" + - "\010 \001(\014\022\022\n\nserverGuid\030\t \001(\t\022\027\n\017serverTimes" + - "tamp\030\n \001(\004\"\241\001\n\004Type\022\013\n\007UNKNOWN\020\000\022\016\n\nCIPH" + - "ERTEXT\020\001\022\020\n\014KEY_EXCHANGE\020\002\022\021\n\rPREKEY_BUN" + - "DLE\020\003\022\013\n\007RECEIPT\020\005\022\027\n\023UNIDENTIFIED_SENDE" + - "R\020\006\022\033\n\027CLOSED_GROUP_CIPHERTEXT\020\007\022\024\n\020FALL", - "BACK_MESSAGE\020e\"\267\003\n\007Content\022/\n\013dataMessag" + - "e\030\001 \001(\0132\032.signalservice.DataMessage\022/\n\013s" + - "yncMessage\030\002 \001(\0132\032.signalservice.SyncMes" + - "sage\022/\n\013callMessage\030\003 \001(\0132\032.signalservic" + - "e.CallMessage\022/\n\013nullMessage\030\004 \001(\0132\032.sig" + - "nalservice.NullMessage\0225\n\016receiptMessage" + - "\030\005 \001(\0132\035.signalservice.ReceiptMessage\0223\n" + - "\rtypingMessage\030\006 \001(\0132\034.signalservice.Typ" + - "ingMessage\022?\n\023preKeyBundleMessage\030e \001(\0132" + - "\".signalservice.PreKeyBundleMessage\022;\n\021d", - "eviceLinkMessage\030g \001(\0132 .signalservice.D" + - "eviceLinkMessage\"\203\001\n\021DeviceLinkMessage\022\030" + - "\n\020primaryPublicKey\030\001 \001(\t\022\032\n\022secondaryPub" + - "licKey\030\002 \001(\t\022\030\n\020requestSignature\030\003 \001(\014\022\036" + - "\n\026authorizationSignature\030\004 \001(\014\"\231\001\n\023PreKe" + - "yBundleMessage\022\023\n\013identityKey\030\001 \001(\014\022\020\n\010d" + - "eviceId\030\002 \001(\r\022\020\n\010preKeyId\030\003 \001(\r\022\023\n\013signe" + - "dKeyId\030\004 \001(\r\022\016\n\006preKey\030\005 \001(\014\022\021\n\tsignedKe" + - "y\030\006 \001(\014\022\021\n\tsignature\030\007 \001(\014\"\330\003\n\013CallMessa" + - "ge\022/\n\005offer\030\001 \001(\0132 .signalservice.CallMe", - "ssage.Offer\0221\n\006answer\030\002 \001(\0132!.signalserv" + - "ice.CallMessage.Answer\0227\n\ticeUpdate\030\003 \003(" + - "\0132$.signalservice.CallMessage.IceUpdate\022" + - "1\n\006hangup\030\004 \001(\0132!.signalservice.CallMess" + - "age.Hangup\022-\n\004busy\030\005 \001(\0132\037.signalservice" + - ".CallMessage.Busy\032(\n\005Offer\022\n\n\002id\030\001 \001(\004\022\023" + - "\n\013description\030\002 \001(\t\032)\n\006Answer\022\n\n\002id\030\001 \001(" + - "\004\022\023\n\013description\030\002 \001(\t\032K\n\tIceUpdate\022\n\n\002i" + - "d\030\001 \001(\004\022\016\n\006sdpMid\030\002 \001(\t\022\025\n\rsdpMLineIndex" + - "\030\003 \001(\r\022\013\n\003sdp\030\004 \001(\t\032\022\n\004Busy\022\n\n\002id\030\001 \001(\004\032", - "\024\n\006Hangup\022\n\n\002id\030\001 \001(\004\"U\n#ClosedGroupCiph" + - "ertextMessageWrapper\022\022\n\nciphertext\030\001 \001(\014" + - "\022\032\n\022ephemeralPublicKey\030\002 \001(\014\"\357\020\n\013DataMes" + - "sage\022\014\n\004body\030\001 \001(\t\0225\n\013attachments\030\002 \003(\0132" + - " .signalservice.AttachmentPointer\022*\n\005gro" + - "up\030\003 \001(\0132\033.signalservice.GroupContext\022\r\n" + - "\005flags\030\004 \001(\r\022\023\n\013expireTimer\030\005 \001(\r\022\022\n\npro" + - "fileKey\030\006 \001(\014\022\021\n\ttimestamp\030\007 \001(\004\022/\n\005quot" + - "e\030\010 \001(\0132 .signalservice.DataMessage.Quot" + - "e\0223\n\007contact\030\t \003(\0132\".signalservice.DataM", - "essage.Contact\0223\n\007preview\030\n \003(\0132\".signal" + - "service.DataMessage.Preview\0223\n\007sticker\030\013" + - " \001(\0132\".signalservice.DataMessage.Sticker" + - "\022/\n\007profile\030e \001(\0132\036.signalservice.LokiUs" + - "erProfile\022;\n\021closedGroupUpdate\030g \001(\0132 .s" + - "ignalservice.ClosedGroupUpdate\032\351\001\n\005Quote" + - "\022\n\n\002id\030\001 \001(\004\022\016\n\006author\030\002 \001(\t\022\014\n\004text\030\003 \001" + - "(\t\022F\n\013attachments\030\004 \003(\01321.signalservice." + - "DataMessage.Quote.QuotedAttachment\032n\n\020Qu" + - "otedAttachment\022\023\n\013contentType\030\001 \001(\t\022\020\n\010f", - "ileName\030\002 \001(\t\0223\n\tthumbnail\030\003 \001(\0132 .signa" + - "lservice.AttachmentPointer\032\304\010\n\007Contact\0225" + - "\n\004name\030\001 \001(\0132\'.signalservice.DataMessage" + - ".Contact.Name\0228\n\006number\030\003 \003(\0132(.signalse" + - "rvice.DataMessage.Contact.Phone\0227\n\005email" + - "\030\004 \003(\0132(.signalservice.DataMessage.Conta" + - "ct.Email\022A\n\007address\030\005 \003(\01320.signalservic" + - "e.DataMessage.Contact.PostalAddress\0229\n\006a" + - "vatar\030\006 \001(\0132).signalservice.DataMessage." + - "Contact.Avatar\022\024\n\014organization\030\007 \001(\t\032v\n\004", - "Name\022\021\n\tgivenName\030\001 \001(\t\022\022\n\nfamilyName\030\002 " + - "\001(\t\022\016\n\006prefix\030\003 \001(\t\022\016\n\006suffix\030\004 \001(\t\022\022\n\nm" + - "iddleName\030\005 \001(\t\022\023\n\013displayName\030\006 \001(\t\032\226\001\n" + - "\005Phone\022\r\n\005value\030\001 \001(\t\022;\n\004type\030\002 \001(\0162-.si" + - "gnalservice.DataMessage.Contact.Phone.Ty" + - "pe\022\r\n\005label\030\003 \001(\t\"2\n\004Type\022\010\n\004HOME\020\001\022\n\n\006M" + - "OBILE\020\002\022\010\n\004WORK\020\003\022\n\n\006CUSTOM\020\004\032\226\001\n\005Email\022" + - "\r\n\005value\030\001 \001(\t\022;\n\004type\030\002 \001(\0162-.signalser" + - "vice.DataMessage.Contact.Email.Type\022\r\n\005l" + - "abel\030\003 \001(\t\"2\n\004Type\022\010\n\004HOME\020\001\022\n\n\006MOBILE\020\002", - "\022\010\n\004WORK\020\003\022\n\n\006CUSTOM\020\004\032\201\002\n\rPostalAddress" + - "\022C\n\004type\030\001 \001(\01625.signalservice.DataMessa" + - "ge.Contact.PostalAddress.Type\022\r\n\005label\030\002" + - " \001(\t\022\016\n\006street\030\003 \001(\t\022\r\n\005pobox\030\004 \001(\t\022\024\n\014n" + - "eighborhood\030\005 \001(\t\022\014\n\004city\030\006 \001(\t\022\016\n\006regio" + - "n\030\007 \001(\t\022\020\n\010postcode\030\010 \001(\t\022\017\n\007country\030\t \001" + - "(\t\"&\n\004Type\022\010\n\004HOME\020\001\022\010\n\004WORK\020\002\022\n\n\006CUSTOM" + - "\020\003\032M\n\006Avatar\0220\n\006avatar\030\001 \001(\0132 .signalser" + - "vice.AttachmentPointer\022\021\n\tisProfile\030\002 \001(" + - "\010\032V\n\007Preview\022\013\n\003url\030\001 \001(\t\022\r\n\005title\030\002 \001(\t", - "\022/\n\005image\030\003 \001(\0132 .signalservice.Attachme" + - "ntPointer\032m\n\007Sticker\022\016\n\006packId\030\001 \001(\014\022\017\n\007" + - "packKey\030\002 \001(\014\022\021\n\tstickerId\030\003 \001(\r\022.\n\004data" + - "\030\004 \001(\0132 .signalservice.AttachmentPointer" + - "\"l\n\005Flags\022\017\n\013END_SESSION\020\001\022\033\n\027EXPIRATION" + - "_TIMER_UPDATE\020\002\022\026\n\022PROFILE_KEY_UPDATE\020\004\022" + - "\035\n\030DEVICE_UNLINKING_REQUEST\020\200\001\"A\n\017LokiUs" + - "erProfile\022\023\n\013displayName\030\001 \001(\t\022\031\n\021profil" + - "ePictureURL\030\002 \001(\t\"\357\002\n\021ClosedGroupUpdate\022" + - "\014\n\004name\030\001 \001(\t\022\026\n\016groupPublicKey\030\002 \001(\014\022\027\n", - "\017groupPrivateKey\030\003 \001(\014\022>\n\nsenderKeys\030\004 \003" + - "(\0132*.signalservice.ClosedGroupUpdate.Sen" + - "derKey\022\017\n\007members\030\005 \003(\014\022\016\n\006admins\030\006 \003(\014\022" + - "3\n\004type\030\007 \001(\0162%.signalservice.ClosedGrou" + - "pUpdate.Type\032B\n\tSenderKey\022\020\n\010chainKey\030\001 " + - "\001(\014\022\020\n\010keyIndex\030\002 \001(\r\022\021\n\tpublicKey\030\003 \001(\014" + - "\"A\n\004Type\022\007\n\003NEW\020\000\022\010\n\004INFO\020\001\022\026\n\022SENDER_KE" + - "Y_REQUEST\020\002\022\016\n\nSENDER_KEY\020\003\"\036\n\013NullMessa" + - "ge\022\017\n\007padding\030\001 \001(\014\"u\n\016ReceiptMessage\0220\n" + - "\004type\030\001 \001(\0162\".signalservice.ReceiptMessa", - "ge.Type\022\021\n\ttimestamp\030\002 \003(\004\"\036\n\004Type\022\014\n\010DE" + - "LIVERY\020\000\022\010\n\004READ\020\001\"\214\001\n\rTypingMessage\022\021\n\t" + - "timestamp\030\001 \001(\004\0223\n\006action\030\002 \001(\0162#.signal" + - "service.TypingMessage.Action\022\017\n\007groupId\030" + - "\003 \001(\014\"\"\n\006Action\022\013\n\007STARTED\020\000\022\013\n\007STOPPED\020" + - "\001\"\253\001\n\010Verified\022\023\n\013destination\030\001 \001(\t\022\023\n\013i" + - "dentityKey\030\002 \001(\014\022,\n\005state\030\003 \001(\0162\035.signal" + - "service.Verified.State\022\023\n\013nullMessage\030\004 " + - "\001(\014\"2\n\005State\022\013\n\007DEFAULT\020\000\022\014\n\010VERIFIED\020\001\022" + - "\016\n\nUNVERIFIED\020\002\"\325\014\n\013SyncMessage\022-\n\004sent\030", - "\001 \001(\0132\037.signalservice.SyncMessage.Sent\0225" + - "\n\010contacts\030\002 \001(\0132#.signalservice.SyncMes" + - "sage.Contacts\0221\n\006groups\030\003 \001(\0132!.signalse" + - "rvice.SyncMessage.Groups\0223\n\007request\030\004 \001(" + - "\0132\".signalservice.SyncMessage.Request\022-\n" + - "\004read\030\005 \003(\0132\037.signalservice.SyncMessage." + - "Read\0223\n\007blocked\030\006 \001(\0132\".signalservice.Sy" + - "ncMessage.Blocked\022)\n\010verified\030\007 \001(\0132\027.si" + - "gnalservice.Verified\022?\n\rconfiguration\030\t " + - "\001(\0132(.signalservice.SyncMessage.Configur", - "ation\022\017\n\007padding\030\010 \001(\014\022M\n\024stickerPackOpe" + - "ration\030\n \003(\0132/.signalservice.SyncMessage" + - ".StickerPackOperation\022?\n\nopenGroups\030d \003(" + - "\0132+.signalservice.SyncMessage.OpenGroupD" + - "etails\032\236\002\n\004Sent\022\023\n\013destination\030\001 \001(\t\022\021\n\t" + - "timestamp\030\002 \001(\004\022+\n\007message\030\003 \001(\0132\032.signa" + - "lservice.DataMessage\022 \n\030expirationStartT" + - "imestamp\030\004 \001(\004\022V\n\022unidentifiedStatus\030\005 \003" + - "(\0132:.signalservice.SyncMessage.Sent.Unid" + - "entifiedDeliveryStatus\032G\n\032UnidentifiedDe", - "liveryStatus\022\023\n\013destination\030\001 \001(\t\022\024\n\014uni" + - "dentified\030\002 \001(\010\032a\n\010Contacts\022.\n\004blob\030\001 \001(" + - "\0132 .signalservice.AttachmentPointer\022\027\n\010c" + - "omplete\030\002 \001(\010:\005false\022\014\n\004data\030e \001(\014\032F\n\006Gr" + - "oups\022.\n\004blob\030\001 \001(\0132 .signalservice.Attac" + - "hmentPointer\022\014\n\004data\030e \001(\014\032,\n\007Blocked\022\017\n" + - "\007numbers\030\001 \003(\t\022\020\n\010groupIds\030\002 \003(\014\032\217\001\n\007Req" + - "uest\0225\n\004type\030\001 \001(\0162\'.signalservice.SyncM" + - "essage.Request.Type\"M\n\004Type\022\013\n\007UNKNOWN\020\000" + - "\022\014\n\010CONTACTS\020\001\022\n\n\006GROUPS\020\002\022\013\n\007BLOCKED\020\003\022", - "\021\n\rCONFIGURATION\020\004\032)\n\004Read\022\016\n\006sender\030\001 \001" + - "(\t\022\021\n\ttimestamp\030\002 \001(\004\032}\n\rConfiguration\022\024" + - "\n\014readReceipts\030\001 \001(\010\022&\n\036unidentifiedDeli" + - "veryIndicators\030\002 \001(\010\022\030\n\020typingIndicators" + - "\030\003 \001(\010\022\024\n\014linkPreviews\030\004 \001(\010\032\234\001\n\024Sticker" + - "PackOperation\022\016\n\006packId\030\001 \001(\014\022\017\n\007packKey" + - "\030\002 \001(\014\022B\n\004type\030\003 \001(\01624.signalservice.Syn" + - "cMessage.StickerPackOperation.Type\"\037\n\004Ty" + - "pe\022\013\n\007INSTALL\020\000\022\n\n\006REMOVE\020\001\0322\n\020OpenGroup" + - "Details\022\013\n\003url\030\001 \001(\t\022\021\n\tchannelID\030\002 \001(\r\"", - "\354\001\n\021AttachmentPointer\022\n\n\002id\030\001 \001(\006\022\023\n\013con" + - "tentType\030\002 \001(\t\022\013\n\003key\030\003 \001(\014\022\014\n\004size\030\004 \001(" + - "\r\022\021\n\tthumbnail\030\005 \001(\014\022\016\n\006digest\030\006 \001(\014\022\020\n\010" + - "fileName\030\007 \001(\t\022\r\n\005flags\030\010 \001(\r\022\r\n\005width\030\t" + - " \001(\r\022\016\n\006height\030\n \001(\r\022\017\n\007caption\030\013 \001(\t\022\013\n" + - "\003url\030e \001(\t\"\032\n\005Flags\022\021\n\rVOICE_MESSAGE\020\001\"\243" + - "\002\n\014GroupContext\022\n\n\002id\030\001 \001(\014\022.\n\004type\030\002 \001(" + - "\0162 .signalservice.GroupContext.Type\022\014\n\004n" + - "ame\030\003 \001(\t\022\017\n\007members\030\004 \003(\t\0220\n\006avatar\030\005 \001" + - "(\0132 .signalservice.AttachmentPointer\022\016\n\006", - "admins\030\006 \003(\t\022\023\n\nnewMembers\030\346\007 \003(\t\022\027\n\016rem" + - "ovedMembers\030\347\007 \003(\t\"H\n\004Type\022\013\n\007UNKNOWN\020\000\022" + - "\n\n\006UPDATE\020\001\022\013\n\007DELIVER\020\002\022\010\n\004QUIT\020\003\022\020\n\014RE" + - "QUEST_INFO\020\004\"\231\002\n\016ContactDetails\022\016\n\006numbe" + - "r\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\0224\n\006avatar\030\003 \001(\0132$." + - "signalservice.ContactDetails.Avatar\022\r\n\005c" + - "olor\030\004 \001(\t\022)\n\010verified\030\005 \001(\0132\027.signalser" + - "vice.Verified\022\022\n\nprofileKey\030\006 \001(\014\022\017\n\007blo" + - "cked\030\007 \001(\010\022\023\n\013expireTimer\030\010 \001(\r\022\020\n\010nickn" + - "ame\030e \001(\t\032-\n\006Avatar\022\023\n\013contentType\030\001 \001(\t", - "\022\016\n\006length\030\002 \001(\r\"\367\001\n\014GroupDetails\022\n\n\002id\030" + - "\001 \001(\014\022\014\n\004name\030\002 \001(\t\022\017\n\007members\030\003 \003(\t\0222\n\006" + - "avatar\030\004 \001(\0132\".signalservice.GroupDetail" + - "s.Avatar\022\024\n\006active\030\005 \001(\010:\004true\022\023\n\013expire" + - "Timer\030\006 \001(\r\022\r\n\005color\030\007 \001(\t\022\017\n\007blocked\030\010 " + - "\001(\010\022\016\n\006admins\030\t \003(\t\032-\n\006Avatar\022\023\n\013content" + - "Type\030\001 \001(\t\022\016\n\006length\030\002 \001(\rBE\n.org.whispe" + - "rsystems.signalservice.internal.pushB\023Si" + - "gnalServiceProtos" - }; - 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_signalservice_Envelope_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_signalservice_Envelope_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_Envelope_descriptor, - new java.lang.String[] { "Type", "Source", "SourceDevice", "Relay", "Timestamp", "LegacyMessage", "Content", "ServerGuid", "ServerTimestamp", }); - internal_static_signalservice_Content_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_signalservice_Content_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_Content_descriptor, - new java.lang.String[] { "DataMessage", "SyncMessage", "CallMessage", "NullMessage", "ReceiptMessage", "TypingMessage", "PreKeyBundleMessage", "DeviceLinkMessage", }); - internal_static_signalservice_DeviceLinkMessage_descriptor = - getDescriptor().getMessageTypes().get(2); - internal_static_signalservice_DeviceLinkMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DeviceLinkMessage_descriptor, - new java.lang.String[] { "PrimaryPublicKey", "SecondaryPublicKey", "RequestSignature", "AuthorizationSignature", }); - internal_static_signalservice_PreKeyBundleMessage_descriptor = - getDescriptor().getMessageTypes().get(3); - internal_static_signalservice_PreKeyBundleMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_PreKeyBundleMessage_descriptor, - new java.lang.String[] { "IdentityKey", "DeviceId", "PreKeyId", "SignedKeyId", "PreKey", "SignedKey", "Signature", }); - internal_static_signalservice_CallMessage_descriptor = - getDescriptor().getMessageTypes().get(4); - internal_static_signalservice_CallMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_CallMessage_descriptor, - new java.lang.String[] { "Offer", "Answer", "IceUpdate", "Hangup", "Busy", }); - internal_static_signalservice_CallMessage_Offer_descriptor = - internal_static_signalservice_CallMessage_descriptor.getNestedTypes().get(0); - internal_static_signalservice_CallMessage_Offer_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_CallMessage_Offer_descriptor, - new java.lang.String[] { "Id", "Description", }); - internal_static_signalservice_CallMessage_Answer_descriptor = - internal_static_signalservice_CallMessage_descriptor.getNestedTypes().get(1); - internal_static_signalservice_CallMessage_Answer_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_CallMessage_Answer_descriptor, - new java.lang.String[] { "Id", "Description", }); - internal_static_signalservice_CallMessage_IceUpdate_descriptor = - internal_static_signalservice_CallMessage_descriptor.getNestedTypes().get(2); - internal_static_signalservice_CallMessage_IceUpdate_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_CallMessage_IceUpdate_descriptor, - new java.lang.String[] { "Id", "SdpMid", "SdpMLineIndex", "Sdp", }); - internal_static_signalservice_CallMessage_Busy_descriptor = - internal_static_signalservice_CallMessage_descriptor.getNestedTypes().get(3); - internal_static_signalservice_CallMessage_Busy_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_CallMessage_Busy_descriptor, - new java.lang.String[] { "Id", }); - internal_static_signalservice_CallMessage_Hangup_descriptor = - internal_static_signalservice_CallMessage_descriptor.getNestedTypes().get(4); - internal_static_signalservice_CallMessage_Hangup_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_CallMessage_Hangup_descriptor, - new java.lang.String[] { "Id", }); - internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_descriptor = - getDescriptor().getMessageTypes().get(5); - internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ClosedGroupCiphertextMessageWrapper_descriptor, - new java.lang.String[] { "Ciphertext", "EphemeralPublicKey", }); - internal_static_signalservice_DataMessage_descriptor = - getDescriptor().getMessageTypes().get(6); - internal_static_signalservice_DataMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_descriptor, - new java.lang.String[] { "Body", "Attachments", "Group", "Flags", "ExpireTimer", "ProfileKey", "Timestamp", "Quote", "Contact", "Preview", "Sticker", "Profile", "ClosedGroupUpdate", }); - internal_static_signalservice_DataMessage_Quote_descriptor = - internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(0); - internal_static_signalservice_DataMessage_Quote_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Quote_descriptor, - new java.lang.String[] { "Id", "Author", "Text", "Attachments", }); - internal_static_signalservice_DataMessage_Quote_QuotedAttachment_descriptor = - internal_static_signalservice_DataMessage_Quote_descriptor.getNestedTypes().get(0); - internal_static_signalservice_DataMessage_Quote_QuotedAttachment_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Quote_QuotedAttachment_descriptor, - new java.lang.String[] { "ContentType", "FileName", "Thumbnail", }); - internal_static_signalservice_DataMessage_Contact_descriptor = - internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(1); - internal_static_signalservice_DataMessage_Contact_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Contact_descriptor, - new java.lang.String[] { "Name", "Number", "Email", "Address", "Avatar", "Organization", }); - internal_static_signalservice_DataMessage_Contact_Name_descriptor = - internal_static_signalservice_DataMessage_Contact_descriptor.getNestedTypes().get(0); - internal_static_signalservice_DataMessage_Contact_Name_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Contact_Name_descriptor, - new java.lang.String[] { "GivenName", "FamilyName", "Prefix", "Suffix", "MiddleName", "DisplayName", }); - internal_static_signalservice_DataMessage_Contact_Phone_descriptor = - internal_static_signalservice_DataMessage_Contact_descriptor.getNestedTypes().get(1); - internal_static_signalservice_DataMessage_Contact_Phone_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Contact_Phone_descriptor, - new java.lang.String[] { "Value", "Type", "Label", }); - internal_static_signalservice_DataMessage_Contact_Email_descriptor = - internal_static_signalservice_DataMessage_Contact_descriptor.getNestedTypes().get(2); - internal_static_signalservice_DataMessage_Contact_Email_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Contact_Email_descriptor, - new java.lang.String[] { "Value", "Type", "Label", }); - internal_static_signalservice_DataMessage_Contact_PostalAddress_descriptor = - internal_static_signalservice_DataMessage_Contact_descriptor.getNestedTypes().get(3); - internal_static_signalservice_DataMessage_Contact_PostalAddress_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Contact_PostalAddress_descriptor, - new java.lang.String[] { "Type", "Label", "Street", "Pobox", "Neighborhood", "City", "Region", "Postcode", "Country", }); - internal_static_signalservice_DataMessage_Contact_Avatar_descriptor = - internal_static_signalservice_DataMessage_Contact_descriptor.getNestedTypes().get(4); - internal_static_signalservice_DataMessage_Contact_Avatar_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Contact_Avatar_descriptor, - new java.lang.String[] { "Avatar", "IsProfile", }); - internal_static_signalservice_DataMessage_Preview_descriptor = - internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(2); - internal_static_signalservice_DataMessage_Preview_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Preview_descriptor, - new java.lang.String[] { "Url", "Title", "Image", }); - internal_static_signalservice_DataMessage_Sticker_descriptor = - internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(3); - internal_static_signalservice_DataMessage_Sticker_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_DataMessage_Sticker_descriptor, - new java.lang.String[] { "PackId", "PackKey", "StickerId", "Data", }); - internal_static_signalservice_LokiUserProfile_descriptor = - getDescriptor().getMessageTypes().get(7); - internal_static_signalservice_LokiUserProfile_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_LokiUserProfile_descriptor, - new java.lang.String[] { "DisplayName", "ProfilePictureURL", }); - internal_static_signalservice_ClosedGroupUpdate_descriptor = - getDescriptor().getMessageTypes().get(8); - internal_static_signalservice_ClosedGroupUpdate_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ClosedGroupUpdate_descriptor, - new java.lang.String[] { "Name", "GroupPublicKey", "GroupPrivateKey", "SenderKeys", "Members", "Admins", "Type", }); - internal_static_signalservice_ClosedGroupUpdate_SenderKey_descriptor = - internal_static_signalservice_ClosedGroupUpdate_descriptor.getNestedTypes().get(0); - internal_static_signalservice_ClosedGroupUpdate_SenderKey_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ClosedGroupUpdate_SenderKey_descriptor, - new java.lang.String[] { "ChainKey", "KeyIndex", "PublicKey", }); - internal_static_signalservice_NullMessage_descriptor = - getDescriptor().getMessageTypes().get(9); - internal_static_signalservice_NullMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_NullMessage_descriptor, - new java.lang.String[] { "Padding", }); - internal_static_signalservice_ReceiptMessage_descriptor = - getDescriptor().getMessageTypes().get(10); - internal_static_signalservice_ReceiptMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ReceiptMessage_descriptor, - new java.lang.String[] { "Type", "Timestamp", }); - internal_static_signalservice_TypingMessage_descriptor = - getDescriptor().getMessageTypes().get(11); - internal_static_signalservice_TypingMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_TypingMessage_descriptor, - new java.lang.String[] { "Timestamp", "Action", "GroupId", }); - internal_static_signalservice_Verified_descriptor = - getDescriptor().getMessageTypes().get(12); - internal_static_signalservice_Verified_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_Verified_descriptor, - new java.lang.String[] { "Destination", "IdentityKey", "State", "NullMessage", }); - internal_static_signalservice_SyncMessage_descriptor = - getDescriptor().getMessageTypes().get(13); - internal_static_signalservice_SyncMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_descriptor, - new java.lang.String[] { "Sent", "Contacts", "Groups", "Request", "Read", "Blocked", "Verified", "Configuration", "Padding", "StickerPackOperation", "OpenGroups", }); - internal_static_signalservice_SyncMessage_Sent_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(0); - internal_static_signalservice_SyncMessage_Sent_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Sent_descriptor, - new java.lang.String[] { "Destination", "Timestamp", "Message", "ExpirationStartTimestamp", "UnidentifiedStatus", }); - internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_descriptor = - internal_static_signalservice_SyncMessage_Sent_descriptor.getNestedTypes().get(0); - internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Sent_UnidentifiedDeliveryStatus_descriptor, - new java.lang.String[] { "Destination", "Unidentified", }); - internal_static_signalservice_SyncMessage_Contacts_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(1); - internal_static_signalservice_SyncMessage_Contacts_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Contacts_descriptor, - new java.lang.String[] { "Blob", "Complete", "Data", }); - internal_static_signalservice_SyncMessage_Groups_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(2); - internal_static_signalservice_SyncMessage_Groups_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Groups_descriptor, - new java.lang.String[] { "Blob", "Data", }); - internal_static_signalservice_SyncMessage_Blocked_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(3); - internal_static_signalservice_SyncMessage_Blocked_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Blocked_descriptor, - new java.lang.String[] { "Numbers", "GroupIds", }); - internal_static_signalservice_SyncMessage_Request_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(4); - internal_static_signalservice_SyncMessage_Request_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Request_descriptor, - new java.lang.String[] { "Type", }); - internal_static_signalservice_SyncMessage_Read_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(5); - internal_static_signalservice_SyncMessage_Read_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Read_descriptor, - new java.lang.String[] { "Sender", "Timestamp", }); - internal_static_signalservice_SyncMessage_Configuration_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(6); - internal_static_signalservice_SyncMessage_Configuration_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_Configuration_descriptor, - new java.lang.String[] { "ReadReceipts", "UnidentifiedDeliveryIndicators", "TypingIndicators", "LinkPreviews", }); - internal_static_signalservice_SyncMessage_StickerPackOperation_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(7); - internal_static_signalservice_SyncMessage_StickerPackOperation_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_StickerPackOperation_descriptor, - new java.lang.String[] { "PackId", "PackKey", "Type", }); - internal_static_signalservice_SyncMessage_OpenGroupDetails_descriptor = - internal_static_signalservice_SyncMessage_descriptor.getNestedTypes().get(8); - internal_static_signalservice_SyncMessage_OpenGroupDetails_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_SyncMessage_OpenGroupDetails_descriptor, - new java.lang.String[] { "Url", "ChannelID", }); - internal_static_signalservice_AttachmentPointer_descriptor = - getDescriptor().getMessageTypes().get(14); - internal_static_signalservice_AttachmentPointer_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_AttachmentPointer_descriptor, - new java.lang.String[] { "Id", "ContentType", "Key", "Size", "Thumbnail", "Digest", "FileName", "Flags", "Width", "Height", "Caption", "Url", }); - internal_static_signalservice_GroupContext_descriptor = - getDescriptor().getMessageTypes().get(15); - internal_static_signalservice_GroupContext_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_GroupContext_descriptor, - new java.lang.String[] { "Id", "Type", "Name", "Members", "Avatar", "Admins", "NewMembers", "RemovedMembers", }); - internal_static_signalservice_ContactDetails_descriptor = - getDescriptor().getMessageTypes().get(16); - internal_static_signalservice_ContactDetails_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ContactDetails_descriptor, - new java.lang.String[] { "Number", "Name", "Avatar", "Color", "Verified", "ProfileKey", "Blocked", "ExpireTimer", "Nickname", }); - internal_static_signalservice_ContactDetails_Avatar_descriptor = - internal_static_signalservice_ContactDetails_descriptor.getNestedTypes().get(0); - internal_static_signalservice_ContactDetails_Avatar_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_ContactDetails_Avatar_descriptor, - new java.lang.String[] { "ContentType", "Length", }); - internal_static_signalservice_GroupDetails_descriptor = - getDescriptor().getMessageTypes().get(17); - internal_static_signalservice_GroupDetails_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_GroupDetails_descriptor, - new java.lang.String[] { "Id", "Name", "Members", "Avatar", "Active", "ExpireTimer", "Color", "Blocked", "Admins", }); - internal_static_signalservice_GroupDetails_Avatar_descriptor = - internal_static_signalservice_GroupDetails_descriptor.getNestedTypes().get(0); - internal_static_signalservice_GroupDetails_Avatar_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_GroupDetails_Avatar_descriptor, - new java.lang.String[] { "ContentType", "Length", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/StaleDevices.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/StaleDevices.java deleted file mode 100644 index a602e4c49..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/StaleDevices.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -public class StaleDevices { - - @JsonProperty - private List staleDevices; - - public List getStaleDevices() { - return staleDevices; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/MismatchedDevicesException.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/MismatchedDevicesException.java deleted file mode 100644 index 26838d642..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/MismatchedDevicesException.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push.exceptions; - -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.internal.push.MismatchedDevices; - -public class MismatchedDevicesException extends NonSuccessfulResponseCodeException { - - private final MismatchedDevices mismatchedDevices; - - public MismatchedDevicesException(MismatchedDevices mismatchedDevices) { - this.mismatchedDevices = mismatchedDevices; - } - - public MismatchedDevices getMismatchedDevices() { - return mismatchedDevices; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/StaleDevicesException.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/StaleDevicesException.java deleted file mode 100644 index 64a1f3207..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/exceptions/StaleDevicesException.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.push.exceptions; - -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; -import org.whispersystems.signalservice.internal.push.StaleDevices; - -public class StaleDevicesException extends NonSuccessfulResponseCodeException { - - private final StaleDevices staleDevices; - - public StaleDevicesException(StaleDevices staleDevices) { - this.staleDevices = staleDevices; - } - - public StaleDevices getStaleDevices() { - return staleDevices; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/AttachmentCipherOutputStreamFactory.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/AttachmentCipherOutputStreamFactory.java deleted file mode 100644 index b807cc387..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/AttachmentCipherOutputStreamFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.whispersystems.signalservice.internal.push.http; - - -import org.whispersystems.signalservice.api.crypto.AttachmentCipherOutputStream; -import org.whispersystems.signalservice.api.crypto.DigestingOutputStream; - -import java.io.IOException; -import java.io.OutputStream; - -public class AttachmentCipherOutputStreamFactory implements OutputStreamFactory { - - private final byte[] key; - - public AttachmentCipherOutputStreamFactory(byte[] key) { - this.key = key; - } - - @Override - public DigestingOutputStream createFor(OutputStream wrap) throws IOException { - return new AttachmentCipherOutputStream(key, wrap); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.java deleted file mode 100644 index 7a9b107a9..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.whispersystems.signalservice.internal.push.http; - - -import org.whispersystems.signalservice.api.crypto.DigestingOutputStream; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment.ProgressListener; - -import java.io.IOException; -import java.io.InputStream; - -import okhttp3.MediaType; -import okhttp3.RequestBody; -import okio.BufferedSink; - -public class DigestingRequestBody extends RequestBody { - - private final InputStream inputStream; - private final OutputStreamFactory outputStreamFactory; - private final String contentType; - private final long contentLength; - private final ProgressListener progressListener; - - private byte[] digest; - - public DigestingRequestBody(InputStream inputStream, - OutputStreamFactory outputStreamFactory, - String contentType, long contentLength, - ProgressListener progressListener) - { - this.inputStream = inputStream; - this.outputStreamFactory = outputStreamFactory; - this.contentType = contentType; - this.contentLength = contentLength; - this.progressListener = progressListener; - } - - @Override - public MediaType contentType() { - return MediaType.parse(contentType); - } - - @Override - public void writeTo(BufferedSink sink) throws IOException { - DigestingOutputStream outputStream = outputStreamFactory.createFor(sink.outputStream()); - byte[] buffer = new byte[8192]; - - int read; - long total = 0; - - while ((read = inputStream.read(buffer, 0, buffer.length)) != -1) { - outputStream.write(buffer, 0, read); - total += read; - - if (progressListener != null) { - progressListener.onAttachmentProgress(contentLength, total); - } - } - - outputStream.flush(); - digest = outputStream.getTransmittedDigest(); - } - - @Override - public long contentLength() { - if (contentLength > 0) return contentLength; - else return -1; - } - - public byte[] getTransmittedDigest() { - return digest; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/OutputStreamFactory.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/OutputStreamFactory.java deleted file mode 100644 index 02ea7bd5c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/OutputStreamFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.whispersystems.signalservice.internal.push.http; - - -import org.whispersystems.signalservice.api.crypto.DigestingOutputStream; - -import java.io.IOException; -import java.io.OutputStream; - -public interface OutputStreamFactory { - - public DigestingOutputStream createFor(OutputStream wrap) throws IOException; - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/ProfileCipherOutputStreamFactory.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/ProfileCipherOutputStreamFactory.java deleted file mode 100644 index bfc79e12d..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/push/http/ProfileCipherOutputStreamFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.whispersystems.signalservice.internal.push.http; - - -import org.whispersystems.signalservice.api.crypto.DigestingOutputStream; -import org.whispersystems.signalservice.api.crypto.ProfileCipherOutputStream; - -import java.io.IOException; -import java.io.OutputStream; - -public class ProfileCipherOutputStreamFactory implements OutputStreamFactory { - - private final byte[] key; - - public ProfileCipherOutputStreamFactory(byte[] key) { - this.key = key; - } - - @Override - public DigestingOutputStream createFor(OutputStream wrap) throws IOException { - return new ProfileCipherOutputStream(wrap, key); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/sticker/StickerProtos.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/sticker/StickerProtos.java deleted file mode 100644 index 87cde8044..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/sticker/StickerProtos.java +++ /dev/null @@ -1,1798 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: StickerResources.proto - -package org.whispersystems.signalservice.internal.sticker; - -public final class StickerProtos { - private StickerProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface PackOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string title = 1; - /** - * optional string title = 1; - */ - boolean hasTitle(); - /** - * optional string title = 1; - */ - java.lang.String getTitle(); - /** - * optional string title = 1; - */ - com.google.protobuf.ByteString - getTitleBytes(); - - // optional string author = 2; - /** - * optional string author = 2; - */ - boolean hasAuthor(); - /** - * optional string author = 2; - */ - java.lang.String getAuthor(); - /** - * optional string author = 2; - */ - com.google.protobuf.ByteString - getAuthorBytes(); - - // optional .signalservice.Pack.Sticker cover = 3; - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - boolean hasCover(); - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getCover(); - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder getCoverOrBuilder(); - - // repeated .signalservice.Pack.Sticker stickers = 4; - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - java.util.List - getStickersList(); - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getStickers(int index); - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - int getStickersCount(); - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - java.util.List - getStickersOrBuilderList(); - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder getStickersOrBuilder( - int index); - } - /** - * Protobuf type {@code signalservice.Pack} - */ - public static final class Pack extends - com.google.protobuf.GeneratedMessage - implements PackOrBuilder { - // Use Pack.newBuilder() to construct. - private Pack(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Pack(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Pack defaultInstance; - public static Pack getDefaultInstance() { - return defaultInstance; - } - - public Pack getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Pack( - 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; - title_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - author_ = input.readBytes(); - break; - } - case 26: { - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = cover_.toBuilder(); - } - cover_ = input.readMessage(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(cover_); - cover_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - stickers_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000008; - } - stickers_.add(input.readMessage(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.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)) { - stickers_ = java.util.Collections.unmodifiableList(stickers_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.class, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Pack parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Pack(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public interface StickerOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint32 id = 1; - /** - * optional uint32 id = 1; - */ - boolean hasId(); - /** - * optional uint32 id = 1; - */ - int getId(); - - // optional string emoji = 2; - /** - * optional string emoji = 2; - */ - boolean hasEmoji(); - /** - * optional string emoji = 2; - */ - java.lang.String getEmoji(); - /** - * optional string emoji = 2; - */ - com.google.protobuf.ByteString - getEmojiBytes(); - } - /** - * Protobuf type {@code signalservice.Pack.Sticker} - */ - public static final class Sticker extends - com.google.protobuf.GeneratedMessage - implements StickerOrBuilder { - // Use Sticker.newBuilder() to construct. - private Sticker(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private Sticker(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final Sticker defaultInstance; - public static Sticker getDefaultInstance() { - return defaultInstance; - } - - public Sticker getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Sticker( - 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; - emoji_ = 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.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_Sticker_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_Sticker_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.class, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public Sticker parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Sticker(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint32 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private int id_; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - - // optional string emoji = 2; - public static final int EMOJI_FIELD_NUMBER = 2; - private java.lang.Object emoji_; - /** - * optional string emoji = 2; - */ - public boolean hasEmoji() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string emoji = 2; - */ - public java.lang.String getEmoji() { - java.lang.Object ref = emoji_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - emoji_ = s; - } - return s; - } - } - /** - * optional string emoji = 2; - */ - public com.google.protobuf.ByteString - getEmojiBytes() { - java.lang.Object ref = emoji_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - emoji_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private void initFields() { - id_ = 0; - emoji_ = ""; - } - 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, getEmojiBytes()); - } - 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, getEmojiBytes()); - } - 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.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker 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.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker 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.signalservice.internal.sticker.StickerProtos.Pack.Sticker 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 signalservice.Pack.Sticker} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_Sticker_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_Sticker_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.class, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.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); - emoji_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_Sticker_descriptor; - } - - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker build() { - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker buildPartial() { - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker result = new org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker(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.emoji_ = emoji_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker) { - return mergeFrom((org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker other) { - if (other == org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasEmoji()) { - bitField0_ |= 0x00000002; - emoji_ = other.emoji_; - onChanged(); - } - 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.signalservice.internal.sticker.StickerProtos.Pack.Sticker parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint32 id = 1; - private int id_ ; - /** - * optional uint32 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint32 id = 1; - */ - public int getId() { - return id_; - } - /** - * optional uint32 id = 1; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint32 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - onChanged(); - return this; - } - - // optional string emoji = 2; - private java.lang.Object emoji_ = ""; - /** - * optional string emoji = 2; - */ - public boolean hasEmoji() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string emoji = 2; - */ - public java.lang.String getEmoji() { - java.lang.Object ref = emoji_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - emoji_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string emoji = 2; - */ - public com.google.protobuf.ByteString - getEmojiBytes() { - java.lang.Object ref = emoji_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - emoji_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string emoji = 2; - */ - public Builder setEmoji( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - emoji_ = value; - onChanged(); - return this; - } - /** - * optional string emoji = 2; - */ - public Builder clearEmoji() { - bitField0_ = (bitField0_ & ~0x00000002); - emoji_ = getDefaultInstance().getEmoji(); - onChanged(); - return this; - } - /** - * optional string emoji = 2; - */ - public Builder setEmojiBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - emoji_ = value; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.Pack.Sticker) - } - - static { - defaultInstance = new Sticker(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.Pack.Sticker) - } - - private int bitField0_; - // optional string title = 1; - public static final int TITLE_FIELD_NUMBER = 1; - private java.lang.Object title_; - /** - * optional string title = 1; - */ - public boolean hasTitle() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string title = 1; - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - title_ = s; - } - return s; - } - } - /** - * optional string title = 1; - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string author = 2; - public static final int AUTHOR_FIELD_NUMBER = 2; - private java.lang.Object author_; - /** - * optional string author = 2; - */ - public boolean hasAuthor() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string author = 2; - */ - public java.lang.String getAuthor() { - java.lang.Object ref = author_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - author_ = s; - } - return s; - } - } - /** - * optional string author = 2; - */ - public com.google.protobuf.ByteString - getAuthorBytes() { - java.lang.Object ref = author_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - author_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional .signalservice.Pack.Sticker cover = 3; - public static final int COVER_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker cover_; - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public boolean hasCover() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getCover() { - return cover_; - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder getCoverOrBuilder() { - return cover_; - } - - // repeated .signalservice.Pack.Sticker stickers = 4; - public static final int STICKERS_FIELD_NUMBER = 4; - private java.util.List stickers_; - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public java.util.List getStickersList() { - return stickers_; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public java.util.List - getStickersOrBuilderList() { - return stickers_; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public int getStickersCount() { - return stickers_.size(); - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getStickers(int index) { - return stickers_.get(index); - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder getStickersOrBuilder( - int index) { - return stickers_.get(index); - } - - private void initFields() { - title_ = ""; - author_ = ""; - cover_ = org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance(); - stickers_ = 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, getTitleBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getAuthorBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, cover_); - } - for (int i = 0; i < stickers_.size(); i++) { - output.writeMessage(4, stickers_.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, getTitleBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getAuthorBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, cover_); - } - for (int i = 0; i < stickers_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, stickers_.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.signalservice.internal.sticker.StickerProtos.Pack parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack 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.signalservice.internal.sticker.StickerProtos.Pack parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack 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.signalservice.internal.sticker.StickerProtos.Pack 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 signalservice.Pack} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.sticker.StickerProtos.PackOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.class, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getCoverFieldBuilder(); - getStickersFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - title_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - author_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - if (coverBuilder_ == null) { - cover_ = org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance(); - } else { - coverBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - if (stickersBuilder_ == null) { - stickers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - } else { - stickersBuilder_.clear(); - } - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.internal_static_signalservice_Pack_descriptor; - } - - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack build() { - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack buildPartial() { - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack result = new org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.title_ = title_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.author_ = author_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (coverBuilder_ == null) { - result.cover_ = cover_; - } else { - result.cover_ = coverBuilder_.build(); - } - if (stickersBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008)) { - stickers_ = java.util.Collections.unmodifiableList(stickers_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.stickers_ = stickers_; - } else { - result.stickers_ = stickersBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack) { - return mergeFrom((org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack other) { - if (other == org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.getDefaultInstance()) return this; - if (other.hasTitle()) { - bitField0_ |= 0x00000001; - title_ = other.title_; - onChanged(); - } - if (other.hasAuthor()) { - bitField0_ |= 0x00000002; - author_ = other.author_; - onChanged(); - } - if (other.hasCover()) { - mergeCover(other.getCover()); - } - if (stickersBuilder_ == null) { - if (!other.stickers_.isEmpty()) { - if (stickers_.isEmpty()) { - stickers_ = other.stickers_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureStickersIsMutable(); - stickers_.addAll(other.stickers_); - } - onChanged(); - } - } else { - if (!other.stickers_.isEmpty()) { - if (stickersBuilder_.isEmpty()) { - stickersBuilder_.dispose(); - stickersBuilder_ = null; - stickers_ = other.stickers_; - bitField0_ = (bitField0_ & ~0x00000008); - stickersBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getStickersFieldBuilder() : null; - } else { - stickersBuilder_.addAllMessages(other.stickers_); - } - } - } - 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.signalservice.internal.sticker.StickerProtos.Pack parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string title = 1; - private java.lang.Object title_ = ""; - /** - * optional string title = 1; - */ - public boolean hasTitle() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string title = 1; - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - title_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string title = 1; - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string title = 1; - */ - public Builder setTitle( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - title_ = value; - onChanged(); - return this; - } - /** - * optional string title = 1; - */ - public Builder clearTitle() { - bitField0_ = (bitField0_ & ~0x00000001); - title_ = getDefaultInstance().getTitle(); - onChanged(); - return this; - } - /** - * optional string title = 1; - */ - public Builder setTitleBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - title_ = value; - onChanged(); - return this; - } - - // optional string author = 2; - private java.lang.Object author_ = ""; - /** - * optional string author = 2; - */ - public boolean hasAuthor() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string author = 2; - */ - public java.lang.String getAuthor() { - java.lang.Object ref = author_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - author_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string author = 2; - */ - public com.google.protobuf.ByteString - getAuthorBytes() { - java.lang.Object ref = author_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - author_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string author = 2; - */ - public Builder setAuthor( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - author_ = value; - onChanged(); - return this; - } - /** - * optional string author = 2; - */ - public Builder clearAuthor() { - bitField0_ = (bitField0_ & ~0x00000002); - author_ = getDefaultInstance().getAuthor(); - onChanged(); - return this; - } - /** - * optional string author = 2; - */ - public Builder setAuthorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - author_ = value; - onChanged(); - return this; - } - - // optional .signalservice.Pack.Sticker cover = 3; - private org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker cover_ = org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder> coverBuilder_; - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public boolean hasCover() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getCover() { - if (coverBuilder_ == null) { - return cover_; - } else { - return coverBuilder_.getMessage(); - } - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public Builder setCover(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker value) { - if (coverBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - cover_ = value; - onChanged(); - } else { - coverBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public Builder setCover( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder builderForValue) { - if (coverBuilder_ == null) { - cover_ = builderForValue.build(); - onChanged(); - } else { - coverBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public Builder mergeCover(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker value) { - if (coverBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - cover_ != org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance()) { - cover_ = - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.newBuilder(cover_).mergeFrom(value).buildPartial(); - } else { - cover_ = value; - } - onChanged(); - } else { - coverBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public Builder clearCover() { - if (coverBuilder_ == null) { - cover_ = org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance(); - onChanged(); - } else { - coverBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder getCoverBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getCoverFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder getCoverOrBuilder() { - if (coverBuilder_ != null) { - return coverBuilder_.getMessageOrBuilder(); - } else { - return cover_; - } - } - /** - * optional .signalservice.Pack.Sticker cover = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder> - getCoverFieldBuilder() { - if (coverBuilder_ == null) { - coverBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder>( - cover_, - getParentForChildren(), - isClean()); - cover_ = null; - } - return coverBuilder_; - } - - // repeated .signalservice.Pack.Sticker stickers = 4; - private java.util.List stickers_ = - java.util.Collections.emptyList(); - private void ensureStickersIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - stickers_ = new java.util.ArrayList(stickers_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder> stickersBuilder_; - - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public java.util.List getStickersList() { - if (stickersBuilder_ == null) { - return java.util.Collections.unmodifiableList(stickers_); - } else { - return stickersBuilder_.getMessageList(); - } - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public int getStickersCount() { - if (stickersBuilder_ == null) { - return stickers_.size(); - } else { - return stickersBuilder_.getCount(); - } - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker getStickers(int index) { - if (stickersBuilder_ == null) { - return stickers_.get(index); - } else { - return stickersBuilder_.getMessage(index); - } - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder setStickers( - int index, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker value) { - if (stickersBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureStickersIsMutable(); - stickers_.set(index, value); - onChanged(); - } else { - stickersBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder setStickers( - int index, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder builderForValue) { - if (stickersBuilder_ == null) { - ensureStickersIsMutable(); - stickers_.set(index, builderForValue.build()); - onChanged(); - } else { - stickersBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder addStickers(org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker value) { - if (stickersBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureStickersIsMutable(); - stickers_.add(value); - onChanged(); - } else { - stickersBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder addStickers( - int index, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker value) { - if (stickersBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureStickersIsMutable(); - stickers_.add(index, value); - onChanged(); - } else { - stickersBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder addStickers( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder builderForValue) { - if (stickersBuilder_ == null) { - ensureStickersIsMutable(); - stickers_.add(builderForValue.build()); - onChanged(); - } else { - stickersBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder addStickers( - int index, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder builderForValue) { - if (stickersBuilder_ == null) { - ensureStickersIsMutable(); - stickers_.add(index, builderForValue.build()); - onChanged(); - } else { - stickersBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder addAllStickers( - java.lang.Iterable values) { - if (stickersBuilder_ == null) { - ensureStickersIsMutable(); - super.addAll(values, stickers_); - onChanged(); - } else { - stickersBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder clearStickers() { - if (stickersBuilder_ == null) { - stickers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - stickersBuilder_.clear(); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public Builder removeStickers(int index) { - if (stickersBuilder_ == null) { - ensureStickersIsMutable(); - stickers_.remove(index); - onChanged(); - } else { - stickersBuilder_.remove(index); - } - return this; - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder getStickersBuilder( - int index) { - return getStickersFieldBuilder().getBuilder(index); - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder getStickersOrBuilder( - int index) { - if (stickersBuilder_ == null) { - return stickers_.get(index); } else { - return stickersBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public java.util.List - getStickersOrBuilderList() { - if (stickersBuilder_ != null) { - return stickersBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(stickers_); - } - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder addStickersBuilder() { - return getStickersFieldBuilder().addBuilder( - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance()); - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder addStickersBuilder( - int index) { - return getStickersFieldBuilder().addBuilder( - index, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.getDefaultInstance()); - } - /** - * repeated .signalservice.Pack.Sticker stickers = 4; - */ - public java.util.List - getStickersBuilderList() { - return getStickersFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder> - getStickersFieldBuilder() { - if (stickersBuilder_ == null) { - stickersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.Sticker.Builder, org.whispersystems.signalservice.internal.sticker.StickerProtos.Pack.StickerOrBuilder>( - stickers_, - ((bitField0_ & 0x00000008) == 0x00000008), - getParentForChildren(), - isClean()); - stickers_ = null; - } - return stickersBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.Pack) - } - - static { - defaultInstance = new Pack(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.Pack) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_Pack_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_Pack_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_Pack_Sticker_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_Pack_Sticker_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\026StickerResources.proto\022\rsignalservice\"" + - "\246\001\n\004Pack\022\r\n\005title\030\001 \001(\t\022\016\n\006author\030\002 \001(\t\022" + - "*\n\005cover\030\003 \001(\0132\033.signalservice.Pack.Stic" + - "ker\022-\n\010stickers\030\004 \003(\0132\033.signalservice.Pa" + - "ck.Sticker\032$\n\007Sticker\022\n\n\002id\030\001 \001(\r\022\r\n\005emo" + - "ji\030\002 \001(\tBB\n1org.whispersystems.signalser" + - "vice.internal.stickerB\rStickerProtos" - }; - 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_signalservice_Pack_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_signalservice_Pack_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_Pack_descriptor, - new java.lang.String[] { "Title", "Author", "Cover", "Stickers", }); - internal_static_signalservice_Pack_Sticker_descriptor = - internal_static_signalservice_Pack_descriptor.getNestedTypes().get(0); - internal_static_signalservice_Pack_Sticker_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_Pack_Sticker_descriptor, - new java.lang.String[] { "Id", "Emoji", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Base64.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Base64.java deleted file mode 100644 index b138a6007..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Base64.java +++ /dev/null @@ -1,2096 +0,0 @@ -package org.whispersystems.signalservice.internal.util; - -/** - *

Encodes and decodes to and from Base64 notation.

- *

Homepage: http://iharder.net/base64.

- * - *

Example:

- * - * String encoded = Base64.encode( myByteArray ); - *
- * byte[] myByteArray = Base64.decode( encoded ); - * - *

The options parameter, which appears in a few places, is used to pass - * several pieces of information to the encoder. In the "higher level" methods such as - * encodeBytes( bytes, options ) the options parameter can be used to indicate such - * things as first gzipping the bytes before encoding them, not inserting linefeeds, - * and encoding using the URL-safe and Ordered dialects.

- * - *

Note, according to RFC3548, - * Section 2.1, implementations should not add line feeds unless explicitly told - * to do so. I've got Base64 set to this behavior now, although earlier versions - * broke lines by default.

- * - *

The constants defined in Base64 can be OR-ed together to combine options, so you - * might make a call like this:

- * - * String encoded = Base64.encodeBytes( mybytes, Base64.GZIP | Base64.DO_BREAK_LINES ); - *

to compress the data before encoding it and then making the output have newline characters.

- *

Also...

- * String encoded = Base64.encodeBytes( crazyString.getBytes() ); - * - * - * - *

- * Change Log: - *

- *
    - *
  • v2.3.4 - Fixed bug when working with gzipped streams whereby flushing - * the Base64.OutputStream closed the Base64 encoding (by padding with equals - * signs) too soon. Also added an option to suppress the automatic decoding - * of gzipped streams. Also added experimental support for specifying a - * class loader when using the - * {@link #decodeToObject(java.lang.String, int, java.lang.ClassLoader)} - * method.
  • - *
  • v2.3.3 - Changed default char encoding to US-ASCII which reduces the internal Java - * footprint with its CharEncoders and so forth. Fixed some javadocs that were - * inconsistent. Removed imports and specified things like java.io.IOException - * explicitly inline.
  • - *
  • v2.3.2 - Reduced memory footprint! Finally refined the "guessing" of how big the - * final encoded data will be so that the code doesn't have to create two output - * arrays: an oversized initial one and then a final, exact-sized one. Big win - * when using the {@link #encodeBytesToBytes(byte[])} family of methods (and not - * using the gzip options which uses a different mechanism with streams and stuff).
  • - *
  • v2.3.1 - Added {@link #encodeBytesToBytes(byte[], int, int, int)} and some - * similar helper methods to be more efficient with memory by not returning a - * String but just a byte array.
  • - *
  • v2.3 - This is not a drop-in replacement! This is two years of comments - * and bug fixes queued up and finally executed. Thanks to everyone who sent - * me stuff, and I'm sorry I wasn't able to distribute your fixes to everyone else. - * Much bad coding was cleaned up including throwing exceptions where necessary - * instead of returning null values or something similar. Here are some changes - * that may affect you: - *
      - *
    • Does not break lines, by default. This is to keep in compliance with - * RFC3548.
    • - *
    • Throws exceptions instead of returning null values. Because some operations - * (especially those that may permit the GZIP option) use IO streams, there - * is a possiblity of an java.io.IOException being thrown. After some discussion and - * thought, I've changed the behavior of the methods to throw java.io.IOExceptions - * rather than return null if ever there's an error. I think this is more - * appropriate, though it will require some changes to your code. Sorry, - * it should have been done this way to begin with.
    • - *
    • Removed all references to System.out, System.err, and the like. - * Shame on me. All I can say is sorry they were ever there.
    • - *
    • Throws NullPointerExceptions and IllegalArgumentExceptions as needed - * such as when passed arrays are null or offsets are invalid.
    • - *
    • Cleaned up as much javadoc as I could to avoid any javadoc warnings. - * This was especially annoying before for people who were thorough in their - * own projects and then had gobs of javadoc warnings on this file.
    • - *
    - *
  • v2.2.1 - Fixed bug using URL_SAFE and ORDERED encodings. Fixed bug - * when using very small files (~< 40 bytes).
  • - *
  • v2.2 - Added some helper methods for encoding/decoding directly from - * one file to the next. Also added a main() method to support command line - * encoding/decoding from one file to the next. Also added these Base64 dialects: - *
      - *
    1. The default is RFC3548 format.
    2. - *
    3. Calling Base64.setFormat(Base64.BASE64_FORMAT.URLSAFE_FORMAT) generates - * URL and file name friendly format as described in Section 4 of RFC3548. - * http://www.faqs.org/rfcs/rfc3548.html
    4. - *
    5. Calling Base64.setFormat(Base64.BASE64_FORMAT.ORDERED_FORMAT) generates - * URL and file name friendly format that preserves lexical ordering as described - * in http://www.faqs.org/qa/rfcc-1940.html
    6. - *
    - * Special thanks to Jim Kellerman at http://www.powerset.com/ - * for contributing the new Base64 dialects. - *
  • - * - *
  • v2.1 - Cleaned up javadoc comments and unused variables and methods. Added - * some convenience methods for reading and writing to and from files.
  • - *
  • v2.0.2 - Now specifies UTF-8 encoding in places where the code fails on systems - * with other encodings (like EBCDIC).
  • - *
  • v2.0.1 - Fixed an error when decoding a single byte, that is, when the - * encoded data was a single byte.
  • - *
  • v2.0 - I got rid of methods that used booleans to set options. - * Now everything is more consolidated and cleaner. The code now detects - * when data that's being decoded is gzip-compressed and will decompress it - * automatically. Generally things are cleaner. You'll probably have to - * change some method calls that you were making to support the new - * options format (ints that you "OR" together).
  • - *
  • v1.5.1 - Fixed bug when decompressing and decoding to a - * byte[] using decode( String s, boolean gzipCompressed ). - * Added the ability to "suspend" encoding in the Output Stream so - * you can turn on and off the encoding if you need to embed base64 - * data in an otherwise "normal" stream (like an XML file).
  • - *
  • v1.5 - Output stream pases on flush() command but doesn't do anything itself. - * This helps when using GZIP streams. - * Added the ability to GZip-compress objects before encoding them.
  • - *
  • v1.4 - Added helper methods to read/write files.
  • - *
  • v1.3.6 - Fixed OutputStream.flush() so that 'position' is reset.
  • - *
  • v1.3.5 - Added flag to turn on and off line breaks. Fixed bug in input stream - * where last buffer being read, if not completely full, was not returned.
  • - *
  • v1.3.4 - Fixed when "improperly padded stream" error was thrown at the wrong time.
  • - *
  • v1.3.3 - Fixed I/O streams which were totally messed up.
  • - *
- * - *

- * I am placing this code in the Public Domain. Do with it as you will. - * This software comes with no guarantees or warranties but with - * plenty of well-wishing instead! - * Please visit http://iharder.net/base64 - * periodically to check for updates or to contribute improvements. - *

- * - * @author Robert Harder - * @author rob@iharder.net - * @version 2.3.3 - */ -public class Base64 -{ - -/* ******** P U B L I C F I E L D S ******** */ - - - /** No options specified. Value is zero. */ - public final static int NO_OPTIONS = 0; - - /** Specify encoding in first bit. Value is one. */ - public final static int ENCODE = 1; - - - /** Specify decoding in first bit. Value is zero. */ - public final static int DECODE = 0; - - - /** Specify that data should be gzip-compressed in second bit. Value is two. */ - public final static int GZIP = 2; - - /** Specify that gzipped data should not be automatically gunzipped. */ - public final static int DONT_GUNZIP = 4; - - - /** Do break lines when encoding. Value is 8. */ - public final static int DO_BREAK_LINES = 8; - - /** - * Encode using Base64-like encoding that is URL- and Filename-safe as described - * in Section 4 of RFC3548: - * http://www.faqs.org/rfcs/rfc3548.html. - * It is important to note that data encoded this way is not officially valid Base64, - * or at the very least should not be called Base64 without also specifying that is - * was encoded using the URL- and Filename-safe dialect. - */ - public final static int URL_SAFE = 16; - - - /** - * Encode using the special "ordered" dialect of Base64 described here: - * http://www.faqs.org/qa/rfcc-1940.html. - */ - public final static int ORDERED = 32; - - -/* ******** P R I V A T E F I E L D S ******** */ - - - /** Maximum line length (76) of Base64 output. */ - private final static int MAX_LINE_LENGTH = 76; - - - /** The equals sign (=) as a byte. */ - private final static byte EQUALS_SIGN = (byte)'='; - - - /** The new line character (\n) as a byte. */ - private final static byte NEW_LINE = (byte)'\n'; - - - /** Preferred encoding. */ - private final static String PREFERRED_ENCODING = "US-ASCII"; - - - private final static byte WHITE_SPACE_ENC = -5; // Indicates white space in encoding - private final static byte EQUALS_SIGN_ENC = -1; // Indicates equals sign in encoding - - -/* ******** S T A N D A R D B A S E 6 4 A L P H A B E T ******** */ - - /** The 64 valid Base64 values. */ - /* Host platform me be something funny like EBCDIC, so we hardcode these values. */ - private final static byte[] _STANDARD_ALPHABET = { - (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', - (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', - (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', - (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', - (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', - (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', - (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', - (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', - (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', - (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'+', (byte)'/' - }; - - - /** - * Translates a Base64 value to either its 6-bit reconstruction value - * or a negative number indicating some other meaning. - **/ - private final static byte[] _STANDARD_DECODABET = { - -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 - -5,-5, // Whitespace: Tab and Linefeed - -9,-9, // Decimal 11 - 12 - -5, // Whitespace: Carriage Return - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 - -9,-9,-9,-9,-9, // Decimal 27 - 31 - -5, // Whitespace: Space - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 - 62, // Plus sign at decimal 43 - -9,-9,-9, // Decimal 44 - 46 - 63, // Slash at decimal 47 - 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine - -9,-9,-9, // Decimal 58 - 60 - -1, // Equals sign at decimal 61 - -9,-9,-9, // Decimal 62 - 64 - 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N' - 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z' - -9,-9,-9,-9,-9,-9, // Decimal 91 - 96 - 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm' - 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z' - -9,-9,-9,-9 // Decimal 123 - 126 - /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ - }; - - -/* ******** U R L S A F E B A S E 6 4 A L P H A B E T ******** */ - - /** - * Used in the URL- and Filename-safe dialect described in Section 4 of RFC3548: - * http://www.faqs.org/rfcs/rfc3548.html. - * Notice that the last two bytes become "hyphen" and "underscore" instead of "plus" and "slash." - */ - private final static byte[] _URL_SAFE_ALPHABET = { - (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', - (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', - (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', - (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', - (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', - (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', - (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', - (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', - (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', - (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'-', (byte)'_' - }; - - /** - * Used in decoding URL- and Filename-safe dialects of Base64. - */ - private final static byte[] _URL_SAFE_DECODABET = { - -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 - -5,-5, // Whitespace: Tab and Linefeed - -9,-9, // Decimal 11 - 12 - -5, // Whitespace: Carriage Return - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 - -9,-9,-9,-9,-9, // Decimal 27 - 31 - -5, // Whitespace: Space - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 - -9, // Plus sign at decimal 43 - -9, // Decimal 44 - 62, // Minus sign at decimal 45 - -9, // Decimal 46 - -9, // Slash at decimal 47 - 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine - -9,-9,-9, // Decimal 58 - 60 - -1, // Equals sign at decimal 61 - -9,-9,-9, // Decimal 62 - 64 - 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N' - 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z' - -9,-9,-9,-9, // Decimal 91 - 94 - 63, // Underscore at decimal 95 - -9, // Decimal 96 - 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm' - 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z' - -9,-9,-9,-9 // Decimal 123 - 126 - /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ - }; - - - -/* ******** O R D E R E D B A S E 6 4 A L P H A B E T ******** */ - - /** - * I don't get the point of this technique, but someone requested it, - * and it is described here: - * http://www.faqs.org/qa/rfcc-1940.html. - */ - private final static byte[] _ORDERED_ALPHABET = { - (byte)'-', - (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', - (byte)'5', (byte)'6', (byte)'7', (byte)'8', (byte)'9', - (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', - (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', - (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', - (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', - (byte)'_', - (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', - (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', - (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', - (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z' - }; - - /** - * Used in decoding the "ordered" dialect of Base64. - */ - private final static byte[] _ORDERED_DECODABET = { - -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 - -5,-5, // Whitespace: Tab and Linefeed - -9,-9, // Decimal 11 - 12 - -5, // Whitespace: Carriage Return - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 - -9,-9,-9,-9,-9, // Decimal 27 - 31 - -5, // Whitespace: Space - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 - -9, // Plus sign at decimal 43 - -9, // Decimal 44 - 0, // Minus sign at decimal 45 - -9, // Decimal 46 - -9, // Slash at decimal 47 - 1,2,3,4,5,6,7,8,9,10, // Numbers zero through nine - -9,-9,-9, // Decimal 58 - 60 - -1, // Equals sign at decimal 61 - -9,-9,-9, // Decimal 62 - 64 - 11,12,13,14,15,16,17,18,19,20,21,22,23, // Letters 'A' through 'M' - 24,25,26,27,28,29,30,31,32,33,34,35,36, // Letters 'N' through 'Z' - -9,-9,-9,-9, // Decimal 91 - 94 - 37, // Underscore at decimal 95 - -9, // Decimal 96 - 38,39,40,41,42,43,44,45,46,47,48,49,50, // Letters 'a' through 'm' - 51,52,53,54,55,56,57,58,59,60,61,62,63, // Letters 'n' through 'z' - -9,-9,-9,-9 // Decimal 123 - 126 - /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 - -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ - }; - - -/* ******** D E T E R M I N E W H I C H A L H A B E T ******** */ - - - /** - * Returns one of the _SOMETHING_ALPHABET byte arrays depending on - * the options specified. - * It's possible, though silly, to specify ORDERED and URLSAFE - * in which case one of them will be picked, though there is - * no guarantee as to which one will be picked. - */ - private final static byte[] getAlphabet( int options ) { - if ((options & URL_SAFE) == URL_SAFE) { - return _URL_SAFE_ALPHABET; - } else if ((options & ORDERED) == ORDERED) { - return _ORDERED_ALPHABET; - } else { - return _STANDARD_ALPHABET; - } - } // end getAlphabet - - - /** - * Returns one of the _SOMETHING_DECODABET byte arrays depending on - * the options specified. - * It's possible, though silly, to specify ORDERED and URL_SAFE - * in which case one of them will be picked, though there is - * no guarantee as to which one will be picked. - */ - private final static byte[] getDecodabet( int options ) { - if( (options & URL_SAFE) == URL_SAFE) { - return _URL_SAFE_DECODABET; - } else if ((options & ORDERED) == ORDERED) { - return _ORDERED_DECODABET; - } else { - return _STANDARD_DECODABET; - } - } // end getAlphabet - - - - /** Defeats instantiation. */ - private Base64(){} - - - - public static int getEncodedLengthWithoutPadding(int unencodedLength) { - int remainderBytes = unencodedLength % 3; - int paddingBytes = 0; - - if (remainderBytes != 0) - paddingBytes = 3 - remainderBytes; - - return (((int)((unencodedLength+2)/3))*4) - paddingBytes; - } - - public static int getEncodedBytesForTarget(int targetSize) { - return ((int)(targetSize * 3)) / 4; - } - - -/* ******** E N C O D I N G M E T H O D S ******** */ - - - /** - * Encodes up to the first three bytes of array threeBytes - * and returns a four-byte array in Base64 notation. - * The actual number of significant bytes in your array is - * given by numSigBytes. - * The array threeBytes needs only be as big as - * numSigBytes. - * Code can reuse a byte array by passing a four-byte array as b4. - * - * @param b4 A reusable byte array to reduce array instantiation - * @param threeBytes the array to convert - * @param numSigBytes the number of significant bytes in your array - * @return four byte array in Base64 notation. - * @since 1.5.1 - */ - private static byte[] encode3to4( byte[] b4, byte[] threeBytes, int numSigBytes, int options ) { - encode3to4( threeBytes, 0, numSigBytes, b4, 0, options ); - return b4; - } // end encode3to4 - - - /** - *

Encodes up to three bytes of the array source - * and writes the resulting four Base64 bytes to destination. - * The source and destination arrays can be manipulated - * anywhere along their length by specifying - * srcOffset and destOffset. - * This method does not check to make sure your arrays - * are large enough to accomodate srcOffset + 3 for - * the source array or destOffset + 4 for - * the destination array. - * The actual number of significant bytes in your array is - * given by numSigBytes.

- *

This is the lowest level of the encoding methods with - * all possible parameters.

- * - * @param source the array to convert - * @param srcOffset the index where conversion begins - * @param numSigBytes the number of significant bytes in your array - * @param destination the array to hold the conversion - * @param destOffset the index where output will be put - * @return the destination array - * @since 1.3 - */ - private static byte[] encode3to4( - byte[] source, int srcOffset, int numSigBytes, - byte[] destination, int destOffset, int options ) { - - byte[] ALPHABET = getAlphabet( options ); - - // 1 2 3 - // 01234567890123456789012345678901 Bit position - // --------000000001111111122222222 Array position from threeBytes - // --------| || || || | Six bit groups to index ALPHABET - // >>18 >>12 >> 6 >> 0 Right shift necessary - // 0x3f 0x3f 0x3f Additional AND - - // Create buffer with zero-padding if there are only one or two - // significant bytes passed in the array. - // We have to shift left 24 in order to flush out the 1's that appear - // when Java treats a value as negative that is cast from a byte to an int. - int inBuff = ( numSigBytes > 0 ? ((source[ srcOffset ] << 24) >>> 8) : 0 ) - | ( numSigBytes > 1 ? ((source[ srcOffset + 1 ] << 24) >>> 16) : 0 ) - | ( numSigBytes > 2 ? ((source[ srcOffset + 2 ] << 24) >>> 24) : 0 ); - - switch( numSigBytes ) - { - case 3: - destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; - destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; - destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; - destination[ destOffset + 3 ] = ALPHABET[ (inBuff ) & 0x3f ]; - return destination; - - case 2: - destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; - destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; - destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; - destination[ destOffset + 3 ] = EQUALS_SIGN; - return destination; - - case 1: - destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; - destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; - destination[ destOffset + 2 ] = EQUALS_SIGN; - destination[ destOffset + 3 ] = EQUALS_SIGN; - return destination; - - default: - return destination; - } // end switch - } // end encode3to4 - - - - /** - * Performs Base64 encoding on the raw ByteBuffer, - * writing it to the encoded ByteBuffer. - * This is an experimental feature. Currently it does not - * pass along any options (such as {@link #DO_BREAK_LINES} - * or {@link #GZIP}. - * - * @param raw input buffer - * @param encoded output buffer - * @since 2.3 - */ - public static void encode( java.nio.ByteBuffer raw, java.nio.ByteBuffer encoded ){ - byte[] raw3 = new byte[3]; - byte[] enc4 = new byte[4]; - - while( raw.hasRemaining() ){ - int rem = Math.min(3,raw.remaining()); - raw.get(raw3,0,rem); - Base64.encode3to4(enc4, raw3, rem, Base64.NO_OPTIONS ); - encoded.put(enc4); - } // end input remaining - } - - - /** - * Performs Base64 encoding on the raw ByteBuffer, - * writing it to the encoded CharBuffer. - * This is an experimental feature. Currently it does not - * pass along any options (such as {@link #DO_BREAK_LINES} - * or {@link #GZIP}. - * - * @param raw input buffer - * @param encoded output buffer - * @since 2.3 - */ - public static void encode( java.nio.ByteBuffer raw, java.nio.CharBuffer encoded ){ - byte[] raw3 = new byte[3]; - byte[] enc4 = new byte[4]; - - while( raw.hasRemaining() ){ - int rem = Math.min(3,raw.remaining()); - raw.get(raw3,0,rem); - Base64.encode3to4(enc4, raw3, rem, Base64.NO_OPTIONS ); - for( int i = 0; i < 4; i++ ){ - encoded.put( (char)(enc4[i] & 0xFF) ); - } - } // end input remaining - } - - - - - /** - * Serializes an object and returns the Base64-encoded - * version of that serialized object. - * - *

As of v 2.3, if the object - * cannot be serialized or there is another error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned a null value, but - * in retrospect that's a pretty poor way to handle it.

- * - * The object is not GZip-compressed before being encoded. - * - * @param serializableObject The object to encode - * @return The Base64-encoded object - * @throws java.io.IOException if there is an error - * @throws NullPointerException if serializedObject is null - * @since 1.4 - */ - public static String encodeObject( java.io.Serializable serializableObject ) - throws java.io.IOException { - return encodeObject( serializableObject, NO_OPTIONS ); - } // end encodeObject - - - - /** - * Serializes an object and returns the Base64-encoded - * version of that serialized object. - * - *

As of v 2.3, if the object - * cannot be serialized or there is another error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned a null value, but - * in retrospect that's a pretty poor way to handle it.

- * - * The object is not GZip-compressed before being encoded. - *

- * Example options:

-     *   GZIP: gzip-compresses object before encoding it.
-     *   DO_BREAK_LINES: break lines at 76 characters
-     * 
- *

- * Example: encodeObject( myObj, Base64.GZIP ) or - *

- * Example: encodeObject( myObj, Base64.GZIP | Base64.DO_BREAK_LINES ) - * - * @param serializableObject The object to encode - * @param options Specified options - * @return The Base64-encoded object - * @see Base64#GZIP - * @see Base64#DO_BREAK_LINES - * @throws java.io.IOException if there is an error - * @since 2.0 - */ - public static String encodeObject( java.io.Serializable serializableObject, int options ) - throws java.io.IOException { - - if( serializableObject == null ){ - throw new NullPointerException( "Cannot serialize a null object." ); - } // end if: null - - // Streams - java.io.ByteArrayOutputStream baos = null; - java.io.OutputStream b64os = null; - java.util.zip.GZIPOutputStream gzos = null; - java.io.ObjectOutputStream oos = null; - - - try { - // ObjectOutputStream -> (GZIP) -> Base64 -> ByteArrayOutputStream - baos = new java.io.ByteArrayOutputStream(); - b64os = new Base64.OutputStream( baos, ENCODE | options ); - if( (options & GZIP) != 0 ){ - // Gzip - gzos = new java.util.zip.GZIPOutputStream(b64os); - oos = new java.io.ObjectOutputStream( gzos ); - } else { - // Not gzipped - oos = new java.io.ObjectOutputStream( b64os ); - } - oos.writeObject( serializableObject ); - } // end try - catch( java.io.IOException e ) { - // Catch it and then throw it immediately so that - // the finally{} block is called for cleanup. - throw e; - } // end catch - finally { - try{ oos.close(); } catch( Exception e ){} - try{ gzos.close(); } catch( Exception e ){} - try{ b64os.close(); } catch( Exception e ){} - try{ baos.close(); } catch( Exception e ){} - } // end finally - - // Return value according to relevant encoding. - try { - return new String( baos.toByteArray(), PREFERRED_ENCODING ); - } // end try - catch (java.io.UnsupportedEncodingException uue){ - // Fall back to some Java default - return new String( baos.toByteArray() ); - } // end catch - - } // end encode - - - - /** - * Encodes a byte array into Base64 notation. - * Does not GZip-compress data. - * - * @param source The data to convert - * @return The data in Base64-encoded form - * @throws NullPointerException if source array is null - * @since 1.4 - */ - public static String encodeBytes( byte[] source ) { - // Since we're not going to have the GZIP encoding turned on, - // we're not going to have an java.io.IOException thrown, so - // we should not force the user to have to catch it. - String encoded = null; - try { - encoded = encodeBytes(source, 0, source.length, NO_OPTIONS); - } catch (java.io.IOException ex) { - assert false : ex.getMessage(); - } // end catch - assert encoded != null; - return encoded; - } // end encodeBytes - - - public static String encodeBytesWithoutPadding(byte[] source, int offset, int length) { - String encoded = null; - - try { - encoded = encodeBytes(source, offset, length, NO_OPTIONS); - } catch (java.io.IOException ex) { - assert false : ex.getMessage(); - } - - assert encoded != null; - - if (encoded.charAt(encoded.length()-2) == '=') return encoded.substring(0, encoded.length()-2); - else if (encoded.charAt(encoded.length()-1) == '=') return encoded.substring(0, encoded.length()-1); - else return encoded; - - } - - public static String encodeBytesWithoutPadding(byte[] source) { - return encodeBytesWithoutPadding(source, 0, source.length); - } - - - /** - * Encodes a byte array into Base64 notation. - *

- * Example options:

-     *   GZIP: gzip-compresses object before encoding it.
-     *   DO_BREAK_LINES: break lines at 76 characters
-     *     Note: Technically, this makes your encoding non-compliant.
-     * 
- *

- * Example: encodeBytes( myData, Base64.GZIP ) or - *

- * Example: encodeBytes( myData, Base64.GZIP | Base64.DO_BREAK_LINES ) - * - * - *

As of v 2.3, if there is an error with the GZIP stream, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned a null value, but - * in retrospect that's a pretty poor way to handle it.

- * - * - * @param source The data to convert - * @param options Specified options - * @return The Base64-encoded data as a String - * @see Base64#GZIP - * @see Base64#DO_BREAK_LINES - * @throws java.io.IOException if there is an error - * @throws NullPointerException if source array is null - * @since 2.0 - */ - public static String encodeBytes( byte[] source, int options ) throws java.io.IOException { - return encodeBytes( source, 0, source.length, options ); - } // end encodeBytes - - - /** - * Encodes a byte array into Base64 notation. - * Does not GZip-compress data. - * - *

As of v 2.3, if there is an error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned a null value, but - * in retrospect that's a pretty poor way to handle it.

- * - * - * @param source The data to convert - * @param off Offset in array where conversion should begin - * @param len Length of data to convert - * @return The Base64-encoded data as a String - * @throws NullPointerException if source array is null - * @throws IllegalArgumentException if source array, offset, or length are invalid - * @since 1.4 - */ - public static String encodeBytes( byte[] source, int off, int len ) { - // Since we're not going to have the GZIP encoding turned on, - // we're not going to have an java.io.IOException thrown, so - // we should not force the user to have to catch it. - String encoded = null; - try { - encoded = encodeBytes( source, off, len, NO_OPTIONS ); - } catch (java.io.IOException ex) { - assert false : ex.getMessage(); - } // end catch - assert encoded != null; - return encoded; - } // end encodeBytes - - - - /** - * Encodes a byte array into Base64 notation. - *

- * Example options:

-     *   GZIP: gzip-compresses object before encoding it.
-     *   DO_BREAK_LINES: break lines at 76 characters
-     *     Note: Technically, this makes your encoding non-compliant.
-     * 
- *

- * Example: encodeBytes( myData, Base64.GZIP ) or - *

- * Example: encodeBytes( myData, Base64.GZIP | Base64.DO_BREAK_LINES ) - * - * - *

As of v 2.3, if there is an error with the GZIP stream, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned a null value, but - * in retrospect that's a pretty poor way to handle it.

- * - * - * @param source The data to convert - * @param off Offset in array where conversion should begin - * @param len Length of data to convert - * @param options Specified options - * @return The Base64-encoded data as a String - * @see Base64#GZIP - * @see Base64#DO_BREAK_LINES - * @throws java.io.IOException if there is an error - * @throws NullPointerException if source array is null - * @throws IllegalArgumentException if source array, offset, or length are invalid - * @since 2.0 - */ - public static String encodeBytes( byte[] source, int off, int len, int options ) throws java.io.IOException { - byte[] encoded = encodeBytesToBytes( source, off, len, options ); - - // Return value according to relevant encoding. - try { - return new String( encoded, PREFERRED_ENCODING ); - } // end try - catch (java.io.UnsupportedEncodingException uue) { - return new String( encoded ); - } // end catch - - } // end encodeBytes - - - - - /** - * Similar to {@link #encodeBytes(byte[])} but returns - * a byte array instead of instantiating a String. This is more efficient - * if you're working with I/O streams and have large data sets to encode. - * - * - * @param source The data to convert - * @return The Base64-encoded data as a byte[] (of ASCII characters) - * @throws NullPointerException if source array is null - * @since 2.3.1 - */ - public static byte[] encodeBytesToBytes( byte[] source ) { - byte[] encoded = null; - try { - encoded = encodeBytesToBytes( source, 0, source.length, Base64.NO_OPTIONS ); - } catch( java.io.IOException ex ) { - assert false : "IOExceptions only come from GZipping, which is turned off: " + ex.getMessage(); - } - return encoded; - } - - - /** - * Similar to {@link #encodeBytes(byte[], int, int, int)} but returns - * a byte array instead of instantiating a String. This is more efficient - * if you're working with I/O streams and have large data sets to encode. - * - * - * @param source The data to convert - * @param off Offset in array where conversion should begin - * @param len Length of data to convert - * @param options Specified options - * @return The Base64-encoded data as a String - * @see Base64#GZIP - * @see Base64#DO_BREAK_LINES - * @throws java.io.IOException if there is an error - * @throws NullPointerException if source array is null - * @throws IllegalArgumentException if source array, offset, or length are invalid - * @since 2.3.1 - */ - public static byte[] encodeBytesToBytes( byte[] source, int off, int len, int options ) throws java.io.IOException { - - if( source == null ){ - throw new NullPointerException( "Cannot serialize a null array." ); - } // end if: null - - if( off < 0 ){ - throw new IllegalArgumentException( "Cannot have negative offset: " + off ); - } // end if: off < 0 - - if( len < 0 ){ - throw new IllegalArgumentException( "Cannot have length offset: " + len ); - } // end if: len < 0 - - if( off + len > source.length ){ - throw new IllegalArgumentException( - String.format( "Cannot have offset of %d and length of %d with array of length %d", off,len,source.length)); - } // end if: off < 0 - - - - // Compress? - if( (options & GZIP) != 0 ) { - java.io.ByteArrayOutputStream baos = null; - java.util.zip.GZIPOutputStream gzos = null; - Base64.OutputStream b64os = null; - - try { - // GZip -> Base64 -> ByteArray - baos = new java.io.ByteArrayOutputStream(); - b64os = new Base64.OutputStream( baos, ENCODE | options ); - gzos = new java.util.zip.GZIPOutputStream( b64os ); - - gzos.write( source, off, len ); - gzos.close(); - } // end try - catch( java.io.IOException e ) { - // Catch it and then throw it immediately so that - // the finally{} block is called for cleanup. - throw e; - } // end catch - finally { - try{ gzos.close(); } catch( Exception e ){} - try{ b64os.close(); } catch( Exception e ){} - try{ baos.close(); } catch( Exception e ){} - } // end finally - - return baos.toByteArray(); - } // end if: compress - - // Else, don't compress. Better not to use streams at all then. - else { - boolean breakLines = (options & DO_BREAK_LINES) > 0; - - //int len43 = len * 4 / 3; - //byte[] outBuff = new byte[ ( len43 ) // Main 4:3 - // + ( (len % 3) > 0 ? 4 : 0 ) // Account for padding - // + (breakLines ? ( len43 / MAX_LINE_LENGTH ) : 0) ]; // New lines - // Try to determine more precisely how big the array needs to be. - // If we get it right, we don't have to do an array copy, and - // we save a bunch of memory. - int encLen = ( len / 3 ) * 4 + ( len % 3 > 0 ? 4 : 0 ); // Bytes needed for actual encoding - if( breakLines ){ - encLen += encLen / MAX_LINE_LENGTH; // Plus extra newline characters - } - byte[] outBuff = new byte[ encLen ]; - - - int d = 0; - int e = 0; - int len2 = len - 2; - int lineLength = 0; - for( ; d < len2; d+=3, e+=4 ) { - encode3to4( source, d+off, 3, outBuff, e, options ); - - lineLength += 4; - if( breakLines && lineLength >= MAX_LINE_LENGTH ) - { - outBuff[e+4] = NEW_LINE; - e++; - lineLength = 0; - } // end if: end of line - } // en dfor: each piece of array - - if( d < len ) { - encode3to4( source, d+off, len - d, outBuff, e, options ); - e += 4; - } // end if: some padding needed - - - // Only resize array if we didn't guess it right. - if( e < outBuff.length - 1 ){ - byte[] finalOut = new byte[e]; - System.arraycopy(outBuff,0, finalOut,0,e); - //System.err.println("Having to resize array from " + outBuff.length + " to " + e ); - return finalOut; - } else { - //System.err.println("No need to resize array."); - return outBuff; - } - - } // end else: don't compress - - } // end encodeBytesToBytes - - - - - -/* ******** D E C O D I N G M E T H O D S ******** */ - - - /** - * Decodes four bytes from array source - * and writes the resulting bytes (up to three of them) - * to destination. - * The source and destination arrays can be manipulated - * anywhere along their length by specifying - * srcOffset and destOffset. - * This method does not check to make sure your arrays - * are large enough to accomodate srcOffset + 4 for - * the source array or destOffset + 3 for - * the destination array. - * This method returns the actual number of bytes that - * were converted from the Base64 encoding. - *

This is the lowest level of the decoding methods with - * all possible parameters.

- * - * - * @param source the array to convert - * @param srcOffset the index where conversion begins - * @param destination the array to hold the conversion - * @param destOffset the index where output will be put - * @param options alphabet type is pulled from this (standard, url-safe, ordered) - * @return the number of decoded bytes converted - * @throws NullPointerException if source or destination arrays are null - * @throws IllegalArgumentException if srcOffset or destOffset are invalid - * or there is not enough room in the array. - * @since 1.3 - */ - private static int decode4to3( - byte[] source, int srcOffset, - byte[] destination, int destOffset, int options ) { - - // Lots of error checking and exception throwing - if( source == null ){ - throw new NullPointerException( "Source array was null." ); - } // end if - if( destination == null ){ - throw new NullPointerException( "Destination array was null." ); - } // end if - if( srcOffset < 0 || srcOffset + 3 >= source.length ){ - throw new IllegalArgumentException( String.format( - "Source array with length %d cannot have offset of %d and still process four bytes.", source.length, srcOffset ) ); - } // end if - if( destOffset < 0 || destOffset +2 >= destination.length ){ - throw new IllegalArgumentException( String.format( - "Destination array with length %d cannot have offset of %d and still store three bytes.", destination.length, destOffset ) ); - } // end if - - - byte[] DECODABET = getDecodabet( options ); - - // Example: Dk== - if( source[ srcOffset + 2] == EQUALS_SIGN ) { - // Two ways to do the same thing. Don't know which way I like best. - //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) - // | ( ( DECODABET[ source[ srcOffset + 1] ] << 24 ) >>> 12 ); - int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) - | ( ( DECODABET[ source[ srcOffset + 1] ] & 0xFF ) << 12 ); - - destination[ destOffset ] = (byte)( outBuff >>> 16 ); - return 1; - } - - // Example: DkL= - else if( source[ srcOffset + 3 ] == EQUALS_SIGN ) { - // Two ways to do the same thing. Don't know which way I like best. - //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) - // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 ) - // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 ); - int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) - | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) - | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6 ); - - destination[ destOffset ] = (byte)( outBuff >>> 16 ); - destination[ destOffset + 1 ] = (byte)( outBuff >>> 8 ); - return 2; - } - - // Example: DkLE - else { - // Two ways to do the same thing. Don't know which way I like best. - //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) - // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 ) - // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 ) - // | ( ( DECODABET[ source[ srcOffset + 3 ] ] << 24 ) >>> 24 ); - int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) - | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) - | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6) - | ( ( DECODABET[ source[ srcOffset + 3 ] ] & 0xFF ) ); - - - destination[ destOffset ] = (byte)( outBuff >> 16 ); - destination[ destOffset + 1 ] = (byte)( outBuff >> 8 ); - destination[ destOffset + 2 ] = (byte)( outBuff ); - - return 3; - } - } // end decodeToBytes - - - - - - /** - * Low-level access to decoding ASCII characters in - * the form of a byte array. Ignores GUNZIP option, if - * it's set. This is not generally a recommended method, - * although it is used internally as part of the decoding process. - * Special case: if len = 0, an empty array is returned. Still, - * if you need more speed and reduced memory footprint (and aren't - * gzipping), consider this method. - * - * @param source The Base64 encoded data - * @return decoded data - * @since 2.3.1 - */ - public static byte[] decode( byte[] source ){ - byte[] decoded = null; - try { - decoded = decode( source, 0, source.length, Base64.NO_OPTIONS ); - } catch( java.io.IOException ex ) { - assert false : "IOExceptions only come from GZipping, which is turned off: " + ex.getMessage(); - } - return decoded; - } - - - /** - * Low-level access to decoding ASCII characters in - * the form of a byte array. Ignores GUNZIP option, if - * it's set. This is not generally a recommended method, - * although it is used internally as part of the decoding process. - * Special case: if len = 0, an empty array is returned. Still, - * if you need more speed and reduced memory footprint (and aren't - * gzipping), consider this method. - * - * @param source The Base64 encoded data - * @param off The offset of where to begin decoding - * @param len The length of characters to decode - * @param options Can specify options such as alphabet type to use - * @return decoded data - * @throws java.io.IOException If bogus characters exist in source data - * @since 1.3 - */ - public static byte[] decode( byte[] source, int off, int len, int options ) - throws java.io.IOException { - - // Lots of error checking and exception throwing - if( source == null ){ - throw new NullPointerException( "Cannot decode null source array." ); - } // end if - if( off < 0 || off + len > source.length ){ - throw new IllegalArgumentException( String.format( - "Source array with length %d cannot have offset of %d and process %d bytes.", source.length, off, len ) ); - } // end if - - if( len == 0 ){ - return new byte[0]; - }else if( len < 4 ){ - throw new IllegalArgumentException( - "Base64-encoded string must have at least four characters, but length specified was " + len ); - } // end if - - byte[] DECODABET = getDecodabet( options ); - - int len34 = len * 3 / 4; // Estimate on array size - byte[] outBuff = new byte[ len34 ]; // Upper limit on size of output - int outBuffPosn = 0; // Keep track of where we're writing - - byte[] b4 = new byte[4]; // Four byte buffer from source, eliminating white space - int b4Posn = 0; // Keep track of four byte input buffer - int i = 0; // Source array counter - byte sbiCrop = 0; // Low seven bits (ASCII) of input - byte sbiDecode = 0; // Special value from DECODABET - - for( i = off; i < off+len; i++ ) { // Loop through source - - sbiCrop = (byte)(source[i] & 0x7f); // Only the low seven bits - sbiDecode = DECODABET[ sbiCrop ]; // Special value - - // White space, Equals sign, or legit Base64 character - // Note the values such as -5 and -9 in the - // DECODABETs at the top of the file. - if( sbiDecode >= WHITE_SPACE_ENC ) { - if( sbiDecode >= EQUALS_SIGN_ENC ) { - b4[ b4Posn++ ] = sbiCrop; // Save non-whitespace - if( b4Posn > 3 ) { // Time to decode? - outBuffPosn += decode4to3( b4, 0, outBuff, outBuffPosn, options ); - b4Posn = 0; - - // If that was the equals sign, break out of 'for' loop - if( sbiCrop == EQUALS_SIGN ) { - break; - } // end if: equals sign - } // end if: quartet built - } // end if: equals sign or better - } // end if: white space, equals sign or better - else { - // There's a bad input character in the Base64 stream. - throw new java.io.IOException( String.format( - "Bad Base64 input character '%c' in array position %d", source[i], i ) ); - } // end else: - } // each input character - - byte[] out = new byte[ outBuffPosn ]; - System.arraycopy( outBuff, 0, out, 0, outBuffPosn ); - return out; - } // end decode - - - - - /** - * Decodes data from Base64 notation, automatically - * detecting gzip-compressed data and decompressing it. - * - * @param s the string to decode - * @return the decoded data - * @throws java.io.IOException If there is a problem - * @since 1.4 - */ - public static byte[] decode( String s ) throws java.io.IOException { - return decode( s, NO_OPTIONS ); - } - - - public static byte[] decodeWithoutPadding(String source) throws java.io.IOException { - int padding = source.length() % 4; - - if (padding == 1) source = source + "="; - else if (padding == 2) source = source + "=="; - else if (padding == 3) source = source + "="; - - return decode(source); - } - - - - /** - * Decodes data from Base64 notation, automatically - * detecting gzip-compressed data and decompressing it. - * - * @param s the string to decode - * @param options encode options such as URL_SAFE - * @return the decoded data - * @throws java.io.IOException if there is an error - * @throws NullPointerException if s is null - * @since 1.4 - */ - public static byte[] decode( String s, int options ) throws java.io.IOException { - - if( s == null ){ - throw new NullPointerException( "Input string was null." ); - } // end if - - byte[] bytes; - try { - bytes = s.getBytes( PREFERRED_ENCODING ); - } // end try - catch( java.io.UnsupportedEncodingException uee ) { - bytes = s.getBytes(); - } // end catch - // - - // Decode - bytes = decode( bytes, 0, bytes.length, options ); - - // Check to see if it's gzip-compressed - // GZIP Magic Two-Byte Number: 0x8b1f (35615) - boolean dontGunzip = (options & DONT_GUNZIP) != 0; - if( (bytes != null) && (bytes.length >= 4) && (!dontGunzip) ) { - - int head = ((int)bytes[0] & 0xff) | ((bytes[1] << 8) & 0xff00); - if( java.util.zip.GZIPInputStream.GZIP_MAGIC == head ) { - java.io.ByteArrayInputStream bais = null; - java.util.zip.GZIPInputStream gzis = null; - java.io.ByteArrayOutputStream baos = null; - byte[] buffer = new byte[2048]; - int length = 0; - - try { - baos = new java.io.ByteArrayOutputStream(); - bais = new java.io.ByteArrayInputStream( bytes ); - gzis = new java.util.zip.GZIPInputStream( bais ); - - while( ( length = gzis.read( buffer ) ) >= 0 ) { - baos.write(buffer,0,length); - } // end while: reading input - - // No error? Get new bytes. - bytes = baos.toByteArray(); - - } // end try - catch( java.io.IOException e ) { - e.printStackTrace(); - // Just return originally-decoded bytes - } // end catch - finally { - try{ baos.close(); } catch( Exception e ){} - try{ gzis.close(); } catch( Exception e ){} - try{ bais.close(); } catch( Exception e ){} - } // end finally - - } // end if: gzipped - } // end if: bytes.length >= 2 - - return bytes; - } // end decode - - - - /** - * Attempts to decode Base64 data and deserialize a Java - * Object within. Returns null if there was an error. - * - * @param encodedObject The Base64 data to decode - * @return The decoded and deserialized object - * @throws NullPointerException if encodedObject is null - * @throws java.io.IOException if there is a general error - * @throws ClassNotFoundException if the decoded object is of a - * class that cannot be found by the JVM - * @since 1.5 - */ - public static Object decodeToObject( String encodedObject ) - throws java.io.IOException, java.lang.ClassNotFoundException { - return decodeToObject(encodedObject,NO_OPTIONS,null); - } - - - /** - * Attempts to decode Base64 data and deserialize a Java - * Object within. Returns null if there was an error. - * If loader is not null, it will be the class loader - * used when deserializing. - * - * @param encodedObject The Base64 data to decode - * @param options Various parameters related to decoding - * @param loader Optional class loader to use in deserializing classes. - * @return The decoded and deserialized object - * @throws NullPointerException if encodedObject is null - * @throws java.io.IOException if there is a general error - * @throws ClassNotFoundException if the decoded object is of a - * class that cannot be found by the JVM - * @since 2.3.4 - */ - public static Object decodeToObject( - String encodedObject, int options, final ClassLoader loader ) - throws java.io.IOException, java.lang.ClassNotFoundException { - - // Decode and gunzip if necessary - byte[] objBytes = decode( encodedObject, options ); - - java.io.ByteArrayInputStream bais = null; - java.io.ObjectInputStream ois = null; - Object obj = null; - - try { - bais = new java.io.ByteArrayInputStream( objBytes ); - - // If no custom class loader is provided, use Java's builtin OIS. - if( loader == null ){ - ois = new java.io.ObjectInputStream( bais ); - } // end if: no loader provided - - // Else make a customized object input stream that uses - // the provided class loader. - else { - ois = new java.io.ObjectInputStream(bais){ - @Override - public Class resolveClass(java.io.ObjectStreamClass streamClass) - throws java.io.IOException, ClassNotFoundException { - Class c = Class.forName(streamClass.getName(), false, loader); - if( c == null ){ - return super.resolveClass(streamClass); - } else { - return c; // Class loader knows of this class. - } // end else: not null - } // end resolveClass - }; // end ois - } // end else: no custom class loader - - obj = ois.readObject(); - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and throw in order to execute finally{} - } // end catch - catch( java.lang.ClassNotFoundException e ) { - throw e; // Catch and throw in order to execute finally{} - } // end catch - finally { - try{ bais.close(); } catch( Exception e ){} - try{ ois.close(); } catch( Exception e ){} - } // end finally - - return obj; - } // end decodeObject - - - - /** - * Convenience method for encoding data to a file. - * - *

As of v 2.3, if there is a error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned false, but - * in retrospect that's a pretty poor way to handle it.

- * - * @param dataToEncode byte array of data to encode in base64 form - * @param filename Filename for saving encoded data - * @throws java.io.IOException if there is an error - * @throws NullPointerException if dataToEncode is null - * @since 2.1 - */ - public static void encodeToFile( byte[] dataToEncode, String filename ) - throws java.io.IOException { - - if( dataToEncode == null ){ - throw new NullPointerException( "Data to encode was null." ); - } // end iff - - Base64.OutputStream bos = null; - try { - bos = new Base64.OutputStream( - new java.io.FileOutputStream( filename ), Base64.ENCODE ); - bos.write( dataToEncode ); - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and throw to execute finally{} block - } // end catch: java.io.IOException - finally { - try{ bos.close(); } catch( Exception e ){} - } // end finally - - } // end encodeToFile - - - /** - * Convenience method for decoding data to a file. - * - *

As of v 2.3, if there is a error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned false, but - * in retrospect that's a pretty poor way to handle it.

- * - * @param dataToDecode Base64-encoded data as a string - * @param filename Filename for saving decoded data - * @throws java.io.IOException if there is an error - * @since 2.1 - */ - public static void decodeToFile( String dataToDecode, String filename ) - throws java.io.IOException { - - Base64.OutputStream bos = null; - try{ - bos = new Base64.OutputStream( - new java.io.FileOutputStream( filename ), Base64.DECODE ); - bos.write( dataToDecode.getBytes( PREFERRED_ENCODING ) ); - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and throw to execute finally{} block - } // end catch: java.io.IOException - finally { - try{ bos.close(); } catch( Exception e ){} - } // end finally - - } // end decodeToFile - - - - - /** - * Convenience method for reading a base64-encoded - * file and decoding it. - * - *

As of v 2.3, if there is a error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned false, but - * in retrospect that's a pretty poor way to handle it.

- * - * @param filename Filename for reading encoded data - * @return decoded byte array - * @throws java.io.IOException if there is an error - * @since 2.1 - */ - public static byte[] decodeFromFile( String filename ) - throws java.io.IOException { - - byte[] decodedData = null; - Base64.InputStream bis = null; - try - { - // Set up some useful variables - java.io.File file = new java.io.File( filename ); - byte[] buffer = null; - int length = 0; - int numBytes = 0; - - // Check for size of file - if( file.length() > Integer.MAX_VALUE ) - { - throw new java.io.IOException( "File is too big for this convenience method (" + file.length() + " bytes)." ); - } // end if: file too big for int index - buffer = new byte[ (int)file.length() ]; - - // Open a stream - bis = new Base64.InputStream( - new java.io.BufferedInputStream( - new java.io.FileInputStream( file ) ), Base64.DECODE ); - - // Read until done - while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 ) { - length += numBytes; - } // end while - - // Save in a variable to return - decodedData = new byte[ length ]; - System.arraycopy( buffer, 0, decodedData, 0, length ); - - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and release to execute finally{} - } // end catch: java.io.IOException - finally { - try{ bis.close(); } catch( Exception e) {} - } // end finally - - return decodedData; - } // end decodeFromFile - - - - /** - * Convenience method for reading a binary file - * and base64-encoding it. - * - *

As of v 2.3, if there is a error, - * the method will throw an java.io.IOException. This is new to v2.3! - * In earlier versions, it just returned false, but - * in retrospect that's a pretty poor way to handle it.

- * - * @param filename Filename for reading binary data - * @return base64-encoded string - * @throws java.io.IOException if there is an error - * @since 2.1 - */ - public static String encodeFromFile( String filename ) - throws java.io.IOException { - - String encodedData = null; - Base64.InputStream bis = null; - try - { - // Set up some useful variables - java.io.File file = new java.io.File( filename ); - byte[] buffer = new byte[ Math.max((int)(file.length() * 1.4),40) ]; // Need max() for math on small files (v2.2.1) - int length = 0; - int numBytes = 0; - - // Open a stream - bis = new Base64.InputStream( - new java.io.BufferedInputStream( - new java.io.FileInputStream( file ) ), Base64.ENCODE ); - - // Read until done - while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 ) { - length += numBytes; - } // end while - - // Save in a variable to return - encodedData = new String( buffer, 0, length, Base64.PREFERRED_ENCODING ); - - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and release to execute finally{} - } // end catch: java.io.IOException - finally { - try{ bis.close(); } catch( Exception e) {} - } // end finally - - return encodedData; - } // end encodeFromFile - - /** - * Reads infile and encodes it to outfile. - * - * @param infile Input file - * @param outfile Output file - * @throws java.io.IOException if there is an error - * @since 2.2 - */ - public static void encodeFileToFile( String infile, String outfile ) - throws java.io.IOException { - - String encoded = Base64.encodeFromFile( infile ); - java.io.OutputStream out = null; - try{ - out = new java.io.BufferedOutputStream( - new java.io.FileOutputStream( outfile ) ); - out.write( encoded.getBytes("US-ASCII") ); // Strict, 7-bit output. - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and release to execute finally{} - } // end catch - finally { - try { out.close(); } - catch( Exception ex ){} - } // end finally - } // end encodeFileToFile - - - /** - * Reads infile and decodes it to outfile. - * - * @param infile Input file - * @param outfile Output file - * @throws java.io.IOException if there is an error - * @since 2.2 - */ - public static void decodeFileToFile( String infile, String outfile ) - throws java.io.IOException { - - byte[] decoded = Base64.decodeFromFile( infile ); - java.io.OutputStream out = null; - try{ - out = new java.io.BufferedOutputStream( - new java.io.FileOutputStream( outfile ) ); - out.write( decoded ); - } // end try - catch( java.io.IOException e ) { - throw e; // Catch and release to execute finally{} - } // end catch - finally { - try { out.close(); } - catch( Exception ex ){} - } // end finally - } // end decodeFileToFile - - - /* ******** I N N E R C L A S S I N P U T S T R E A M ******** */ - - - - /** - * A {@link Base64.InputStream} will read data from another - * java.io.InputStream, given in the constructor, - * and encode/decode to/from Base64 notation on the fly. - * - * @see Base64 - * @since 1.3 - */ - public static class InputStream extends java.io.FilterInputStream { - - private boolean encode; // Encoding or decoding - private int position; // Current position in the buffer - private byte[] buffer; // Small buffer holding converted data - private int bufferLength; // Length of buffer (3 or 4) - private int numSigBytes; // Number of meaningful bytes in the buffer - private int lineLength; - private boolean breakLines; // Break lines at less than 80 characters - private int options; // Record options used to create the stream. - private byte[] decodabet; // Local copies to avoid extra method calls - - - /** - * Constructs a {@link Base64.InputStream} in DECODE mode. - * - * @param in the java.io.InputStream from which to read data. - * @since 1.3 - */ - public InputStream( java.io.InputStream in ) { - this( in, DECODE ); - } // end constructor - - - /** - * Constructs a {@link Base64.InputStream} in - * either ENCODE or DECODE mode. - *

- * Valid options:

-         *   ENCODE or DECODE: Encode or Decode as data is read.
-         *   DO_BREAK_LINES: break lines at 76 characters
-         *     (only meaningful when encoding)
-         * 
- *

- * Example: new Base64.InputStream( in, Base64.DECODE ) - * - * - * @param in the java.io.InputStream from which to read data. - * @param options Specified options - * @see Base64#ENCODE - * @see Base64#DECODE - * @see Base64#DO_BREAK_LINES - * @since 2.0 - */ - public InputStream( java.io.InputStream in, int options ) { - - super( in ); - this.options = options; // Record for later - this.breakLines = (options & DO_BREAK_LINES) > 0; - this.encode = (options & ENCODE) > 0; - this.bufferLength = encode ? 4 : 3; - this.buffer = new byte[ bufferLength ]; - this.position = -1; - this.lineLength = 0; - this.decodabet = getDecodabet(options); - } // end constructor - - /** - * Reads enough of the input stream to convert - * to/from Base64 and returns the next byte. - * - * @return next byte - * @since 1.3 - */ - @Override - public int read() throws java.io.IOException { - - // Do we need to get data? - if( position < 0 ) { - if( encode ) { - byte[] b3 = new byte[3]; - int numBinaryBytes = 0; - for( int i = 0; i < 3; i++ ) { - int b = in.read(); - - // If end of stream, b is -1. - if( b >= 0 ) { - b3[i] = (byte)b; - numBinaryBytes++; - } else { - break; // out of for loop - } // end else: end of stream - - } // end for: each needed input byte - - if( numBinaryBytes > 0 ) { - encode3to4( b3, 0, numBinaryBytes, buffer, 0, options ); - position = 0; - numSigBytes = 4; - } // end if: got data - else { - return -1; // Must be end of stream - } // end else - } // end if: encoding - - // Else decoding - else { - byte[] b4 = new byte[4]; - int i = 0; - for( i = 0; i < 4; i++ ) { - // Read four "meaningful" bytes: - int b = 0; - do{ b = in.read(); } - while( b >= 0 && decodabet[ b & 0x7f ] <= WHITE_SPACE_ENC ); - - if( b < 0 ) { - break; // Reads a -1 if end of stream - } // end if: end of stream - - b4[i] = (byte)b; - } // end for: each needed input byte - - if( i == 4 ) { - numSigBytes = decode4to3( b4, 0, buffer, 0, options ); - position = 0; - } // end if: got four characters - else if( i == 0 ){ - return -1; - } // end else if: also padded correctly - else { - // Must have broken out from above. - throw new java.io.IOException( "Improperly padded Base64 input." ); - } // end - - } // end else: decode - } // end else: get data - - // Got data? - if( position >= 0 ) { - // End of relevant data? - if( /*!encode &&*/ position >= numSigBytes ){ - return -1; - } // end if: got data - - if( encode && breakLines && lineLength >= MAX_LINE_LENGTH ) { - lineLength = 0; - return '\n'; - } // end if - else { - lineLength++; // This isn't important when decoding - // but throwing an extra "if" seems - // just as wasteful. - - int b = buffer[ position++ ]; - - if( position >= bufferLength ) { - position = -1; - } // end if: end - - return b & 0xFF; // This is how you "cast" a byte that's - // intended to be unsigned. - } // end else - } // end if: position >= 0 - - // Else error - else { - throw new java.io.IOException( "Error in Base64 code reading stream." ); - } // end else - } // end read - - - /** - * Calls {@link #read()} repeatedly until the end of stream - * is reached or len bytes are read. - * Returns number of bytes read into array or -1 if - * end of stream is encountered. - * - * @param dest array to hold values - * @param off offset for array - * @param len max number of bytes to read into array - * @return bytes read into array or -1 if end of stream is encountered. - * @since 1.3 - */ - @Override - public int read( byte[] dest, int off, int len ) - throws java.io.IOException { - int i; - int b; - for( i = 0; i < len; i++ ) { - b = read(); - - if( b >= 0 ) { - dest[off + i] = (byte) b; - } - else if( i == 0 ) { - return -1; - } - else { - break; // Out of 'for' loop - } // Out of 'for' loop - } // end for: each byte read - return i; - } // end read - - } // end inner class InputStream - - - - - - - /* ******** I N N E R C L A S S O U T P U T S T R E A M ******** */ - - - - /** - * A {@link Base64.OutputStream} will write data to another - * java.io.OutputStream, given in the constructor, - * and encode/decode to/from Base64 notation on the fly. - * - * @see Base64 - * @since 1.3 - */ - public static class OutputStream extends java.io.FilterOutputStream { - - private boolean encode; - private int position; - private byte[] buffer; - private int bufferLength; - private int lineLength; - private boolean breakLines; - private byte[] b4; // Scratch used in a few places - private boolean suspendEncoding; - private int options; // Record for later - private byte[] decodabet; // Local copies to avoid extra method calls - - /** - * Constructs a {@link Base64.OutputStream} in ENCODE mode. - * - * @param out the java.io.OutputStream to which data will be written. - * @since 1.3 - */ - public OutputStream( java.io.OutputStream out ) { - this( out, ENCODE ); - } // end constructor - - - /** - * Constructs a {@link Base64.OutputStream} in - * either ENCODE or DECODE mode. - *

- * Valid options:

-         *   ENCODE or DECODE: Encode or Decode as data is read.
-         *   DO_BREAK_LINES: don't break lines at 76 characters
-         *     (only meaningful when encoding)
-         * 
- *

- * Example: new Base64.OutputStream( out, Base64.ENCODE ) - * - * @param out the java.io.OutputStream to which data will be written. - * @param options Specified options. - * @see Base64#ENCODE - * @see Base64#DECODE - * @see Base64#DO_BREAK_LINES - * @since 1.3 - */ - public OutputStream( java.io.OutputStream out, int options ) { - super( out ); - this.breakLines = (options & DO_BREAK_LINES) != 0; - this.encode = (options & ENCODE) != 0; - this.bufferLength = encode ? 3 : 4; - this.buffer = new byte[ bufferLength ]; - this.position = 0; - this.lineLength = 0; - this.suspendEncoding = false; - this.b4 = new byte[4]; - this.options = options; - this.decodabet = getDecodabet(options); - } // end constructor - - - /** - * Writes the byte to the output stream after - * converting to/from Base64 notation. - * When encoding, bytes are buffered three - * at a time before the output stream actually - * gets a write() call. - * When decoding, bytes are buffered four - * at a time. - * - * @param theByte the byte to write - * @since 1.3 - */ - @Override - public void write(int theByte) - throws java.io.IOException { - // Encoding suspended? - if( suspendEncoding ) { - this.out.write( theByte ); - return; - } // end if: supsended - - // Encode? - if( encode ) { - buffer[ position++ ] = (byte)theByte; - if( position >= bufferLength ) { // Enough to encode. - - this.out.write( encode3to4( b4, buffer, bufferLength, options ) ); - - lineLength += 4; - if( breakLines && lineLength >= MAX_LINE_LENGTH ) { - this.out.write( NEW_LINE ); - lineLength = 0; - } // end if: end of line - - position = 0; - } // end if: enough to output - } // end if: encoding - - // Else, Decoding - else { - // Meaningful Base64 character? - if( decodabet[ theByte & 0x7f ] > WHITE_SPACE_ENC ) { - buffer[ position++ ] = (byte)theByte; - if( position >= bufferLength ) { // Enough to output. - - int len = Base64.decode4to3( buffer, 0, b4, 0, options ); - out.write( b4, 0, len ); - position = 0; - } // end if: enough to output - } // end if: meaningful base64 character - else if( decodabet[ theByte & 0x7f ] != WHITE_SPACE_ENC ) { - throw new java.io.IOException( "Invalid character in Base64 data." ); - } // end else: not white space either - } // end else: decoding - } // end write - - - - /** - * Calls {@link #write(int)} repeatedly until len - * bytes are written. - * - * @param theBytes array from which to read bytes - * @param off offset for array - * @param len max number of bytes to read into array - * @since 1.3 - */ - @Override - public void write( byte[] theBytes, int off, int len ) - throws java.io.IOException { - // Encoding suspended? - if( suspendEncoding ) { - this.out.write( theBytes, off, len ); - return; - } // end if: supsended - - for( int i = 0; i < len; i++ ) { - write( theBytes[ off + i ] ); - } // end for: each byte written - - } // end write - - - - /** - * Method added by PHIL. [Thanks, PHIL. -Rob] - * This pads the buffer without closing the stream. - * @throws java.io.IOException if there's an error. - */ - public void flushBase64() throws java.io.IOException { - if( position > 0 ) { - if( encode ) { - out.write( encode3to4( b4, buffer, position, options ) ); - position = 0; - } // end if: encoding - else { - throw new java.io.IOException( "Base64 input not properly padded." ); - } // end else: decoding - } // end if: buffer partially full - - } // end flush - - - /** - * Flushes and closes (I think, in the superclass) the stream. - * - * @since 1.3 - */ - @Override - public void close() throws java.io.IOException { - // 1. Ensure that pending characters are written - flushBase64(); - - // 2. Actually close the stream - // Base class both flushes and closes. - super.close(); - - buffer = null; - out = null; - } // end close - - - - /** - * Suspends encoding of the stream. - * May be helpful if you need to embed a piece of - * base64-encoded data in a stream. - * - * @throws java.io.IOException if there's an error flushing - * @since 1.5.1 - */ - public void suspendEncoding() throws java.io.IOException { - flushBase64(); - this.suspendEncoding = true; - } // end suspendEncoding - - - /** - * Resumes encoding of the stream. - * May be helpful if you need to embed a piece of - * base64-encoded data in a stream. - * - * @since 1.5.1 - */ - public void resumeEncoding() { - this.suspendEncoding = false; - } // end resumeEncoding - - - - } // end inner class OutputStream - - -} // end class Base64 diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/BlacklistingTrustManager.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/BlacklistingTrustManager.java deleted file mode 100644 index ae0ceacfb..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/BlacklistingTrustManager.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.util; - -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.signalservice.api.push.TrustStore; - -import java.io.IOException; -import java.io.InputStream; -import java.math.BigInteger; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.LinkedList; -import java.util.List; - -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; -import javax.net.ssl.X509TrustManager; - -/** - * Trust manager that defers to a system X509 trust manager, and - * additionally rejects certificates if they have a blacklisted - * serial. - * - * @author Moxie Marlinspike - */ -public class BlacklistingTrustManager implements X509TrustManager { - - private static final List> BLACKLIST = new LinkedList>() {{ - add(new Pair("Open Whisper Systems", new BigInteger("4098"))); - }}; - - public static TrustManager[] createFor(TrustManager[] trustManagers) { - for (TrustManager trustManager : trustManagers) { - if (trustManager instanceof X509TrustManager) { - TrustManager[] results = new BlacklistingTrustManager[1]; - results[0] = new BlacklistingTrustManager((X509TrustManager)trustManager); - - return results; - } - } - - throw new AssertionError("No X509 Trust Managers!"); - } - - public static TrustManager[] createFor(TrustStore trustStore) { - try { - InputStream keyStoreInputStream = trustStore.getKeyStoreInputStream(); - KeyStore keyStore = KeyStore.getInstance("BKS"); - - keyStore.load(keyStoreInputStream, trustStore.getKeyStorePassword().toCharArray()); - - TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X509"); - trustManagerFactory.init(keyStore); - - return BlacklistingTrustManager.createFor(trustManagerFactory.getTrustManagers()); - } catch (KeyStoreException e) { - throw new AssertionError(e); - } catch (CertificateException e) { - throw new AssertionError(e); - } catch (IOException e) { - throw new AssertionError(e); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - private final X509TrustManager trustManager; - - public BlacklistingTrustManager(X509TrustManager trustManager) { - this.trustManager = trustManager; - } - - @Override - public void checkClientTrusted(X509Certificate[] chain, String authType) - throws CertificateException - { - trustManager.checkClientTrusted(chain, authType); - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) - throws CertificateException - { - trustManager.checkServerTrusted(chain, authType); - - for (X509Certificate certificate : chain) { - for (Pair blacklistedSerial : BLACKLIST) { - if (certificate.getIssuerDN().getName().equals(blacklistedSerial.first()) && - certificate.getSerialNumber().equals(blacklistedSerial.second())) - { - throw new CertificateException("Blacklisted Serial: " + certificate.getSerialNumber()); - } - } - } - - } - - @Override - public X509Certificate[] getAcceptedIssuers() { - return trustManager.getAcceptedIssuers(); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/ContentLengthInputStream.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/ContentLengthInputStream.java deleted file mode 100644 index f1a428c27..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/ContentLengthInputStream.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.whispersystems.signalservice.internal.util; - - -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; - -public class ContentLengthInputStream extends FilterInputStream { - - private long bytesRemaining; - - public ContentLengthInputStream(InputStream inputStream, long contentLength) { - super(inputStream); - this.bytesRemaining = contentLength; - } - - @Override - public int read() throws IOException { - if (bytesRemaining == 0) return -1; - int result = super.read(); - bytesRemaining--; - - return result; - } - - @Override - public int read(byte[] buffer) throws IOException { - return read(buffer, 0, buffer.length); - } - - @Override - public int read(byte[] buffer, int offset, int length) throws IOException { - if (bytesRemaining == 0) return -1; - - int result = super.read(buffer, offset, Math.min(length, Util.toIntExact(bytesRemaining))); - - bytesRemaining -= result; - return result; - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Hex.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Hex.java deleted file mode 100644 index 8f0acdc7c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Hex.java +++ /dev/null @@ -1,128 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.util; - -import java.io.IOException; - -/** - * Utility for generating hex dumps. - */ -public class Hex { - - private final static int HEX_DIGITS_START = 10; - private final static int ASCII_TEXT_START = HEX_DIGITS_START + (16*2 + (16/2)); - - final static String EOL = System.getProperty("line.separator"); - - private final static char[] HEX_DIGITS = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' - }; - - public static String toString(byte[] bytes) { - return toString(bytes, 0, bytes.length); - } - - public static String toString(byte[] bytes, int offset, int length) { - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < length; i++) { - appendHexChar(buf, bytes[offset + i]); - buf.append(' '); - } - return buf.toString(); - } - - public static String toStringCondensed(byte[] bytes) { - StringBuffer buf = new StringBuffer(); - for (int i=0;i> 1]; - - // two characters form the hex value. - for (int i = 0, j = 0; j < len; i++) { - int f = Character.digit(data[j], 16) << 4; - j++; - f = f | Character.digit(data[j], 16); - j++; - out[i] = (byte) (f & 0xFF); - } - - return out; - } - - public static String dump(byte[] bytes) { - return dump(bytes, 0, bytes.length); - } - - public static String dump(byte[] bytes, int offset, int length) { - StringBuffer buf = new StringBuffer(); - int lines = ((length - 1) / 16) + 1; - int lineOffset; - int lineLength; - - for (int i = 0; i < lines; i++) { - lineOffset = (i * 16) + offset; - lineLength = Math.min(16, (length - (i * 16))); - appendDumpLine(buf, i, bytes, lineOffset, lineLength); - buf.append(EOL); - } - - return buf.toString(); - } - - private static void appendDumpLine(StringBuffer buf, int line, byte[] bytes, int lineOffset, int lineLength) { - buf.append(HEX_DIGITS[(line >> 28) & 0xf]); - buf.append(HEX_DIGITS[(line >> 24) & 0xf]); - buf.append(HEX_DIGITS[(line >> 20) & 0xf]); - buf.append(HEX_DIGITS[(line >> 16) & 0xf]); - buf.append(HEX_DIGITS[(line >> 12) & 0xf]); - buf.append(HEX_DIGITS[(line >> 8) & 0xf]); - buf.append(HEX_DIGITS[(line >> 4) & 0xf]); - buf.append(HEX_DIGITS[(line ) & 0xf]); - buf.append(": "); - - for (int i = 0; i < 16; i++) { - int idx = i + lineOffset; - if (i < lineLength) { - int b = bytes[idx]; - appendHexChar(buf, b); - } else { - buf.append(" "); - } - if ((i % 2) == 1) { - buf.append(' '); - } - } - - for (int i = 0; i < 16 && i < lineLength; i++) { - int idx = i + lineOffset; - int b = bytes[idx]; - if (b >= 0x20 && b <= 0x7e) { - buf.append((char)b); - } else { - buf.append('.'); - } - } - } - - private static void appendHexChar(StringBuffer buf, int b) { - buf.append(HEX_DIGITS[(b >> 4) & 0xf]); - buf.append(HEX_DIGITS[b & 0xf]); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/JsonUtil.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/JsonUtil.java deleted file mode 100644 index 04ea834f5..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/JsonUtil.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.util; - - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializerProvider; - -import org.whispersystems.libsignal.IdentityKey; -import org.whispersystems.libsignal.InvalidKeyException; -import org.whispersystems.libsignal.logging.Log; - -import java.io.IOException; - -public class JsonUtil { - - private static final String TAG = JsonUtil.class.getSimpleName(); - - private static final ObjectMapper objectMapper = new ObjectMapper(); - - static { - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - } - - public static String toJson(Object object) { - try { - return objectMapper.writeValueAsString(object); - } catch (JsonProcessingException e) { - Log.w(TAG, e); - return ""; - } - } - - public static T fromJson(String json, Class clazz) - throws IOException - { - return objectMapper.readValue(json, clazz); - } - - public static JsonNode fromJson(String json) throws IOException { - return objectMapper.readTree(json); - } - - public static class IdentityKeySerializer extends JsonSerializer { - @Override - public void serialize(IdentityKey value, JsonGenerator gen, SerializerProvider serializers) - throws IOException - { - gen.writeString(Base64.encodeBytesWithoutPadding(value.serialize())); - } - } - - public static class IdentityKeyDeserializer extends JsonDeserializer { - @Override - public IdentityKey deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { - try { - return new IdentityKey(Base64.decodeWithoutPadding(p.getValueAsString()), 0); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - } - } - - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/StaticCredentialsProvider.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/StaticCredentialsProvider.java deleted file mode 100644 index e0beed2c3..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/StaticCredentialsProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.util; - -import org.whispersystems.signalservice.api.util.CredentialsProvider; - -public class StaticCredentialsProvider implements CredentialsProvider { - - private final String user; - private final String password; - private final String signalingKey; - - public StaticCredentialsProvider(String user, String password, String signalingKey) { - this.user = user; - this.password = password; - this.signalingKey = signalingKey; - } - - @Override - public String getUser() { - return user; - } - - @Override - public String getPassword() { - return password; - } - - @Override - public String getSignalingKey() { - return signalingKey; - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Util.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Util.java deleted file mode 100644 index 3de6a2442..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/Util.java +++ /dev/null @@ -1,154 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -package org.whispersystems.signalservice.internal.util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -public class Util { - - public static byte[] join(byte[]... input) { - try { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - for (byte[] part : input) { - baos.write(part); - } - - return baos.toByteArray(); - } catch (IOException e) { - throw new AssertionError(e); - } - } - - public static String join(Collection list, String delimiter) { - StringBuilder result = new StringBuilder(); - int i = 0; - - for (String item : list) { - result.append(item); - - if (++i < list.size()) - result.append(delimiter); - } - - return result.toString(); - } - - - public static byte[][] split(byte[] input, int firstLength, int secondLength) { - byte[][] parts = new byte[2][]; - - parts[0] = new byte[firstLength]; - System.arraycopy(input, 0, parts[0], 0, firstLength); - - parts[1] = new byte[secondLength]; - System.arraycopy(input, firstLength, parts[1], 0, secondLength); - - return parts; - } - - public static byte[] trim(byte[] input, int length) { - byte[] result = new byte[length]; - System.arraycopy(input, 0, result, 0, result.length); - - return result; - } - - public static boolean isEmpty(String value) { - return value == null || value.trim().length() == 0; - } - - public static byte[] getSecretBytes(int size) { - try { - byte[] secret = new byte[size]; - SecureRandom.getInstance("SHA1PRNG").nextBytes(secret); - return secret; - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } - } - - public static byte[] getRandomLengthBytes(int maxSize) { - SecureRandom secureRandom = new SecureRandom(); - byte[] result = new byte[secureRandom.nextInt(maxSize) + 1]; - secureRandom.nextBytes(result); - return result; - } - - public static String readFully(InputStream in) throws IOException { - ByteArrayOutputStream bout = new ByteArrayOutputStream(); - byte[] buffer = new byte[4096]; - int read; - - while ((read = in.read(buffer)) != -1) { - bout.write(buffer, 0, read); - } - - in.close(); - - return new String(bout.toByteArray()); - } - - public static void readFully(InputStream in, byte[] buffer) throws IOException { - int offset = 0; - - for (;;) { - int read = in.read(buffer, offset, buffer.length - offset); - - if (read + offset < buffer.length) offset += read; - else return; - } - } - - public static void copy(InputStream in, OutputStream out) throws IOException { - byte[] buffer = new byte[4096]; - int read; - - while ((read = in.read(buffer)) != -1) { - out.write(buffer, 0, read); - } - - in.close(); - out.close(); - } - - public static void sleep(long millis) { - try { - Thread.sleep(millis); - } catch (InterruptedException e) { - throw new AssertionError(e); - } - } - - public static void wait(Object lock, long millis) { - try { - lock.wait(millis); - } catch (InterruptedException e) { - throw new AssertionError(e); - } - } - - public static int toIntExact(long value) { - if ((int)value != value) { - throw new ArithmeticException("integer overflow"); - } - return (int)value; - } - - public static List immutableList(T... elements) { - return Collections.unmodifiableList(Arrays.asList(elements.clone())); - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/ListenableFuture.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/ListenableFuture.java deleted file mode 100644 index 45d5ae351..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/ListenableFuture.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.whispersystems.signalservice.internal.util.concurrent; - -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - -public interface ListenableFuture extends Future { - void addListener(Listener listener); - - public interface Listener { - public void onSuccess(T result); - public void onFailure(ExecutionException e); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/SettableFuture.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/SettableFuture.java deleted file mode 100644 index c2f6cf9ab..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/util/concurrent/SettableFuture.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.whispersystems.signalservice.internal.util.concurrent; - -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -public class SettableFuture implements ListenableFuture { - - private final List> listeners = new LinkedList>(); - - private boolean completed; - private boolean canceled; - private volatile T result; - private volatile Throwable exception; - - @Override - public synchronized boolean cancel(boolean mayInterruptIfRunning) { - if (!completed && !canceled) { - canceled = true; - return true; - } - - return false; - } - - @Override - public synchronized boolean isCancelled() { - return canceled; - } - - @Override - public synchronized boolean isDone() { - return completed; - } - - public boolean set(T result) { - synchronized (this) { - if (completed || canceled) return false; - - this.result = result; - this.completed = true; - - notifyAll(); - } - - notifyAllListeners(); - return true; - } - - public boolean setException(Throwable throwable) { - synchronized (this) { - if (completed || canceled) return false; - - this.exception = throwable; - this.completed = true; - - notifyAll(); - } - - notifyAllListeners(); - return true; - } - - @Override - public synchronized T get() throws InterruptedException, ExecutionException { - while (!completed) wait(); - - if (exception != null) throw new ExecutionException(exception); - else return result; - } - - @Override - public synchronized T get(long timeout, TimeUnit unit) - throws InterruptedException, ExecutionException, TimeoutException - { - long startTime = System.currentTimeMillis(); - - while (!completed && System.currentTimeMillis() - startTime < unit.toMillis(timeout)) { - wait(unit.toMillis(timeout)); - } - - if (!completed) throw new TimeoutException(); - else return get(); - } - - @Override - public void addListener(Listener listener) { - synchronized (this) { - listeners.add(listener); - - if (!completed) return; - } - - notifyListener(listener); - } - - private void notifyAllListeners() { - List> localListeners; - - synchronized (this) { - localListeners = new LinkedList>(listeners); - } - - for (Listener listener : localListeners) { - notifyListener(listener); - } - } - - private void notifyListener(Listener listener) { - if (exception != null) listener.onFailure(new ExecutionException(exception)); - else listener.onSuccess(result); - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketConnection.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketConnection.java deleted file mode 100644 index 55463274c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketConnection.java +++ /dev/null @@ -1,340 +0,0 @@ -package org.whispersystems.signalservice.internal.websocket; - -import com.google.protobuf.InvalidProtocolBufferException; - -import org.whispersystems.libsignal.logging.Log; -import org.whispersystems.libsignal.util.Pair; -import org.whispersystems.libsignal.util.guava.Optional; -import org.whispersystems.signalservice.api.push.TrustStore; -import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.api.util.SleepTimer; -import org.whispersystems.signalservice.api.util.Tls12SocketFactory; -import org.whispersystems.signalservice.api.websocket.ConnectivityListener; -import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager; -import org.whispersystems.signalservice.internal.util.Util; -import org.whispersystems.signalservice.internal.util.concurrent.SettableFuture; - -import java.io.IOException; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.Map; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.concurrent.atomic.AtomicBoolean; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import okhttp3.ConnectionSpec; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import okhttp3.WebSocket; -import okhttp3.WebSocketListener; -import okio.ByteString; - -import static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage; -import static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage; -import static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage; - -public class WebSocketConnection extends WebSocketListener { - - private static final String TAG = WebSocketConnection.class.getSimpleName(); - private static final int KEEPALIVE_TIMEOUT_SECONDS = 55; - - private final LinkedList incomingRequests = new LinkedList(); - private final Map>> outgoingRequests = new HashMap>>(); - - private final String wsUri; - private final TrustStore trustStore; - private final Optional credentialsProvider; - private final String userAgent; - private final ConnectivityListener listener; - private final SleepTimer sleepTimer; - - private WebSocket client; - private KeepAliveSender keepAliveSender; - private int attempts; - private boolean connected; - - public WebSocketConnection(String httpUri, - TrustStore trustStore, - Optional credentialsProvider, - String userAgent, - ConnectivityListener listener, - SleepTimer timer) - { - this.trustStore = trustStore; - this.credentialsProvider = credentialsProvider; - this.userAgent = userAgent; - this.listener = listener; - this.sleepTimer = timer; - this.attempts = 0; - this.connected = false; - - String uri = httpUri.replace("https://", "wss://").replace("http://", "ws://"); - - if (credentialsProvider.isPresent()) this.wsUri = uri + "/v1/websocket/?login=%s&password=%s"; - else this.wsUri = uri + "/v1/websocket/"; - } - - public synchronized void connect() { - Log.w(TAG, "WSC connect()..."); - - if (client == null) { - String filledUri; - - if (credentialsProvider.isPresent()) { - filledUri = String.format(wsUri, credentialsProvider.get().getUser(), credentialsProvider.get().getPassword()); - } else { - filledUri = wsUri; - } - - Pair socketFactory = createTlsSocketFactory(trustStore); - - OkHttpClient okHttpClient = new OkHttpClient.Builder() - .sslSocketFactory(new Tls12SocketFactory(socketFactory.first()), socketFactory.second()) - .connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS)) - .readTimeout(KEEPALIVE_TIMEOUT_SECONDS + 10, TimeUnit.SECONDS) - .connectTimeout(KEEPALIVE_TIMEOUT_SECONDS + 10, TimeUnit.SECONDS) - .build(); - - Request.Builder requestBuilder = new Request.Builder().url(filledUri); - - if (userAgent != null) { - requestBuilder.addHeader("X-Signal-Agent", userAgent); - } - - if (listener != null) { - listener.onConnecting(); - } - - this.connected = false; - this.client = okHttpClient.newWebSocket(requestBuilder.build(), this); - } - } - - public synchronized void disconnect() { - Log.w(TAG, "WSC disconnect()..."); - - if (client != null) { - client.close(1000, "OK"); - client = null; - connected = false; - } - - if (keepAliveSender != null) { - keepAliveSender.shutdown(); - keepAliveSender = null; - } - } - - public synchronized WebSocketRequestMessage readRequest(long timeoutMillis) - throws TimeoutException, IOException - { - if (client == null) { - throw new IOException("Connection closed!"); - } - - long startTime = System.currentTimeMillis(); - - while (client != null && incomingRequests.isEmpty() && elapsedTime(startTime) < timeoutMillis) { - Util.wait(this, Math.max(1, timeoutMillis - elapsedTime(startTime))); - } - - if (incomingRequests.isEmpty() && client == null) throw new IOException("Connection closed!"); - else if (incomingRequests.isEmpty()) throw new TimeoutException("Timeout exceeded"); - else return incomingRequests.removeFirst(); - } - - public synchronized Future> sendRequest(WebSocketRequestMessage request) throws IOException { - if (client == null || !connected) throw new IOException("No connection!"); - - WebSocketMessage message = WebSocketMessage.newBuilder() - .setType(WebSocketMessage.Type.REQUEST) - .setRequest(request) - .build(); - - SettableFuture> future = new SettableFuture>(); - outgoingRequests.put(request.getId(), future); - - if (!client.send(ByteString.of(message.toByteArray()))) { - throw new IOException("Write failed!"); - } - - return future; - } - - public synchronized void sendResponse(WebSocketResponseMessage response) throws IOException { - if (client == null) { - throw new IOException("Connection closed!"); - } - - WebSocketMessage message = WebSocketMessage.newBuilder() - .setType(WebSocketMessage.Type.RESPONSE) - .setResponse(response) - .build(); - - if (!client.send(ByteString.of(message.toByteArray()))) { - throw new IOException("Write failed!"); - } - } - - private synchronized void sendKeepAlive() throws IOException { - if (keepAliveSender != null && client != null) { - byte[] message = WebSocketMessage.newBuilder() - .setType(WebSocketMessage.Type.REQUEST) - .setRequest(WebSocketRequestMessage.newBuilder() - .setId(System.currentTimeMillis()) - .setPath("/v1/keepalive") - .setVerb("GET") - .build()).build() - .toByteArray(); - - if (!client.send(ByteString.of(message))) { - throw new IOException("Write failed!"); - } - } - } - - @Override - public synchronized void onOpen(WebSocket webSocket, Response response) { - if (client != null && keepAliveSender == null) { - Log.w(TAG, "onConnected()"); - attempts = 0; - connected = true; - keepAliveSender = new KeepAliveSender(); - keepAliveSender.start(); - - if (listener != null) listener.onConnected(); - } - } - - @Override - public synchronized void onMessage(WebSocket webSocket, ByteString payload) { - Log.w(TAG, "WSC onMessage()"); - try { - WebSocketMessage message = WebSocketMessage.parseFrom(payload.toByteArray()); - - Log.w(TAG, "Message Type: " + message.getType().getNumber()); - - if (message.getType().getNumber() == WebSocketMessage.Type.REQUEST_VALUE) { - incomingRequests.add(message.getRequest()); - } else if (message.getType().getNumber() == WebSocketMessage.Type.RESPONSE_VALUE) { - SettableFuture> listener = outgoingRequests.get(message.getResponse().getId()); - if (listener != null) listener.set(new Pair(message.getResponse().getStatus(), - new String(message.getResponse().getBody().toByteArray()))); - } - - notifyAll(); - } catch (InvalidProtocolBufferException e) { - Log.w(TAG, e); - } - } - - @Override - public synchronized void onClosed(WebSocket webSocket, int code, String reason) { - Log.w(TAG, "onClose()..."); - this.connected = false; - - Iterator>>> iterator = outgoingRequests.entrySet().iterator(); - - while (iterator.hasNext()) { - Map.Entry>> entry = iterator.next(); - entry.getValue().setException(new IOException("Closed: " + code + ", " + reason)); - iterator.remove(); - } - - if (keepAliveSender != null) { - keepAliveSender.shutdown(); - keepAliveSender = null; - } - - if (listener != null) { - listener.onDisconnected(); - } - - Util.wait(this, Math.min(++attempts * 200, TimeUnit.SECONDS.toMillis(15))); - - if (client != null) { - client.close(1000, "OK"); - client = null; - connected = false; - connect(); - } - - notifyAll(); - } - - @Override - public synchronized void onFailure(WebSocket webSocket, Throwable t, Response response) { - Log.w(TAG, "onFailure()"); - Log.w(TAG, t); - - if (response != null && (response.code() == 401 || response.code() == 403)) { - if (listener != null) listener.onAuthenticationFailure(); - } - - if (client != null) { - onClosed(webSocket, 1000, "OK"); - } - } - - @Override - public void onMessage(WebSocket webSocket, String text) { - Log.w(TAG, "onMessage(text)! " + text); - } - - @Override - public synchronized void onClosing(WebSocket webSocket, int code, String reason) { - Log.w(TAG, "onClosing()!..."); - webSocket.close(1000, "OK"); - } - - private long elapsedTime(long startTime) { - return System.currentTimeMillis() - startTime; - } - - private Pair createTlsSocketFactory(TrustStore trustStore) { - try { - SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManagers = BlacklistingTrustManager.createFor(trustStore); - context.init(null, trustManagers, null); - - return new Pair(context.getSocketFactory(), (X509TrustManager)trustManagers[0]); - } catch (NoSuchAlgorithmException e) { - throw new AssertionError(e); - } catch (KeyManagementException e) { - throw new AssertionError(e); - } - } - - private class KeepAliveSender extends Thread { - - private AtomicBoolean stop = new AtomicBoolean(false); - - public void run() { - while (!stop.get()) { - try { - sleepTimer.sleep(TimeUnit.SECONDS.toMillis(KEEPALIVE_TIMEOUT_SECONDS)); - - Log.w(TAG, "Sending keep alive..."); - sendKeepAlive(); - } catch (Throwable e) { - Log.w(TAG, e); - } - } - } - - public void shutdown() { - stop.set(true); - } - } - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketEventListener.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketEventListener.java deleted file mode 100644 index 65953e32a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketEventListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.whispersystems.signalservice.internal.websocket; - -public interface WebSocketEventListener { - - public void onMessage(byte[] payload); - public void onClose(); - public void onConnected(); - -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketProtos.java b/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketProtos.java deleted file mode 100644 index 4299fd77c..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketProtos.java +++ /dev/null @@ -1,2842 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebSocketResources.proto - -package org.whispersystems.signalservice.internal.websocket; - -public final class WebSocketProtos { - private WebSocketProtos() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - } - public interface WebSocketRequestMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional string verb = 1; - /** - * optional string verb = 1; - */ - boolean hasVerb(); - /** - * optional string verb = 1; - */ - java.lang.String getVerb(); - /** - * optional string verb = 1; - */ - com.google.protobuf.ByteString - getVerbBytes(); - - // optional string path = 2; - /** - * optional string path = 2; - */ - boolean hasPath(); - /** - * optional string path = 2; - */ - java.lang.String getPath(); - /** - * optional string path = 2; - */ - com.google.protobuf.ByteString - getPathBytes(); - - // optional bytes body = 3; - /** - * optional bytes body = 3; - */ - boolean hasBody(); - /** - * optional bytes body = 3; - */ - com.google.protobuf.ByteString getBody(); - - // repeated string headers = 5; - /** - * repeated string headers = 5; - */ - java.util.List - getHeadersList(); - /** - * repeated string headers = 5; - */ - int getHeadersCount(); - /** - * repeated string headers = 5; - */ - java.lang.String getHeaders(int index); - /** - * repeated string headers = 5; - */ - com.google.protobuf.ByteString - getHeadersBytes(int index); - - // optional uint64 id = 4; - /** - * optional uint64 id = 4; - */ - boolean hasId(); - /** - * optional uint64 id = 4; - */ - long getId(); - } - /** - * Protobuf type {@code signalservice.WebSocketRequestMessage} - */ - public static final class WebSocketRequestMessage extends - com.google.protobuf.GeneratedMessage - implements WebSocketRequestMessageOrBuilder { - // Use WebSocketRequestMessage.newBuilder() to construct. - private WebSocketRequestMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private WebSocketRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final WebSocketRequestMessage defaultInstance; - public static WebSocketRequestMessage getDefaultInstance() { - return defaultInstance; - } - - public WebSocketRequestMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private WebSocketRequestMessage( - 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; - verb_ = input.readBytes(); - break; - } - case 18: { - bitField0_ |= 0x00000002; - path_ = input.readBytes(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - body_ = input.readBytes(); - break; - } - case 32: { - bitField0_ |= 0x00000008; - id_ = input.readUInt64(); - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000008; - } - headers_.add(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_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.UnmodifiableLazyStringList(headers_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketRequestMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketRequestMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.class, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public WebSocketRequestMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new WebSocketRequestMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional string verb = 1; - public static final int VERB_FIELD_NUMBER = 1; - private java.lang.Object verb_; - /** - * optional string verb = 1; - */ - public boolean hasVerb() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string verb = 1; - */ - public java.lang.String getVerb() { - java.lang.Object ref = verb_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - verb_ = s; - } - return s; - } - } - /** - * optional string verb = 1; - */ - public com.google.protobuf.ByteString - getVerbBytes() { - java.lang.Object ref = verb_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - verb_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional string path = 2; - public static final int PATH_FIELD_NUMBER = 2; - private java.lang.Object path_; - /** - * optional string path = 2; - */ - public boolean hasPath() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string path = 2; - */ - public java.lang.String getPath() { - java.lang.Object ref = path_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - path_ = s; - } - return s; - } - } - /** - * optional string path = 2; - */ - public com.google.protobuf.ByteString - getPathBytes() { - java.lang.Object ref = path_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - path_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // optional bytes body = 3; - public static final int BODY_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString body_; - /** - * optional bytes body = 3; - */ - public boolean hasBody() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes body = 3; - */ - public com.google.protobuf.ByteString getBody() { - return body_; - } - - // repeated string headers = 5; - public static final int HEADERS_FIELD_NUMBER = 5; - private com.google.protobuf.LazyStringList headers_; - /** - * repeated string headers = 5; - */ - public java.util.List - getHeadersList() { - return headers_; - } - /** - * repeated string headers = 5; - */ - public int getHeadersCount() { - return headers_.size(); - } - /** - * repeated string headers = 5; - */ - public java.lang.String getHeaders(int index) { - return headers_.get(index); - } - /** - * repeated string headers = 5; - */ - public com.google.protobuf.ByteString - getHeadersBytes(int index) { - return headers_.getByteString(index); - } - - // optional uint64 id = 4; - public static final int ID_FIELD_NUMBER = 4; - private long id_; - /** - * optional uint64 id = 4; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional uint64 id = 4; - */ - public long getId() { - return id_; - } - - private void initFields() { - verb_ = ""; - path_ = ""; - body_ = com.google.protobuf.ByteString.EMPTY; - headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - id_ = 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.writeBytes(1, getVerbBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getPathBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, body_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeUInt64(4, id_); - } - for (int i = 0; i < headers_.size(); i++) { - output.writeBytes(5, headers_.getByteString(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, getVerbBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, getPathBytes()); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, body_); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, id_); - } - { - int dataSize = 0; - for (int i = 0; i < headers_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(headers_.getByteString(i)); - } - size += dataSize; - size += 1 * getHeadersList().size(); - } - 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.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage 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.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage 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.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage 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 signalservice.WebSocketRequestMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketRequestMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketRequestMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.class, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.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(); - verb_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - path_ = ""; - bitField0_ = (bitField0_ & ~0x00000002); - body_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000004); - headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - id_ = 0L; - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketRequestMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage build() { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage buildPartial() { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage result = new org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.verb_ = verb_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.path_ = path_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.body_ = body_; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.UnmodifiableLazyStringList( - headers_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.headers_ = headers_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000008; - } - result.id_ = id_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage other) { - if (other == org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance()) return this; - if (other.hasVerb()) { - bitField0_ |= 0x00000001; - verb_ = other.verb_; - onChanged(); - } - if (other.hasPath()) { - bitField0_ |= 0x00000002; - path_ = other.path_; - onChanged(); - } - if (other.hasBody()) { - setBody(other.getBody()); - } - if (!other.headers_.isEmpty()) { - if (headers_.isEmpty()) { - headers_ = other.headers_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureHeadersIsMutable(); - headers_.addAll(other.headers_); - } - onChanged(); - } - if (other.hasId()) { - setId(other.getId()); - } - 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.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional string verb = 1; - private java.lang.Object verb_ = ""; - /** - * optional string verb = 1; - */ - public boolean hasVerb() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional string verb = 1; - */ - public java.lang.String getVerb() { - java.lang.Object ref = verb_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - verb_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string verb = 1; - */ - public com.google.protobuf.ByteString - getVerbBytes() { - java.lang.Object ref = verb_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - verb_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string verb = 1; - */ - public Builder setVerb( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - verb_ = value; - onChanged(); - return this; - } - /** - * optional string verb = 1; - */ - public Builder clearVerb() { - bitField0_ = (bitField0_ & ~0x00000001); - verb_ = getDefaultInstance().getVerb(); - onChanged(); - return this; - } - /** - * optional string verb = 1; - */ - public Builder setVerbBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - verb_ = value; - onChanged(); - return this; - } - - // optional string path = 2; - private java.lang.Object path_ = ""; - /** - * optional string path = 2; - */ - public boolean hasPath() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional string path = 2; - */ - public java.lang.String getPath() { - java.lang.Object ref = path_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - path_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string path = 2; - */ - public com.google.protobuf.ByteString - getPathBytes() { - java.lang.Object ref = path_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - path_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string path = 2; - */ - public Builder setPath( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - path_ = value; - onChanged(); - return this; - } - /** - * optional string path = 2; - */ - public Builder clearPath() { - bitField0_ = (bitField0_ & ~0x00000002); - path_ = getDefaultInstance().getPath(); - onChanged(); - return this; - } - /** - * optional string path = 2; - */ - public Builder setPathBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - path_ = value; - onChanged(); - return this; - } - - // optional bytes body = 3; - private com.google.protobuf.ByteString body_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes body = 3; - */ - public boolean hasBody() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bytes body = 3; - */ - public com.google.protobuf.ByteString getBody() { - return body_; - } - /** - * optional bytes body = 3; - */ - public Builder setBody(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - body_ = value; - onChanged(); - return this; - } - /** - * optional bytes body = 3; - */ - public Builder clearBody() { - bitField0_ = (bitField0_ & ~0x00000004); - body_ = getDefaultInstance().getBody(); - onChanged(); - return this; - } - - // repeated string headers = 5; - private com.google.protobuf.LazyStringList headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureHeadersIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.LazyStringArrayList(headers_); - bitField0_ |= 0x00000008; - } - } - /** - * repeated string headers = 5; - */ - public java.util.List - getHeadersList() { - return java.util.Collections.unmodifiableList(headers_); - } - /** - * repeated string headers = 5; - */ - public int getHeadersCount() { - return headers_.size(); - } - /** - * repeated string headers = 5; - */ - public java.lang.String getHeaders(int index) { - return headers_.get(index); - } - /** - * repeated string headers = 5; - */ - public com.google.protobuf.ByteString - getHeadersBytes(int index) { - return headers_.getByteString(index); - } - /** - * repeated string headers = 5; - */ - public Builder setHeaders( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadersIsMutable(); - headers_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder addHeaders( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadersIsMutable(); - headers_.add(value); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder addAllHeaders( - java.lang.Iterable values) { - ensureHeadersIsMutable(); - super.addAll(values, headers_); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder clearHeaders() { - headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder addHeadersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadersIsMutable(); - headers_.add(value); - onChanged(); - return this; - } - - // optional uint64 id = 4; - private long id_ ; - /** - * optional uint64 id = 4; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional uint64 id = 4; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 4; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000010; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 4; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000010); - id_ = 0L; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.WebSocketRequestMessage) - } - - static { - defaultInstance = new WebSocketRequestMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.WebSocketRequestMessage) - } - - public interface WebSocketResponseMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional uint64 id = 1; - /** - * optional uint64 id = 1; - */ - boolean hasId(); - /** - * optional uint64 id = 1; - */ - long getId(); - - // optional uint32 status = 2; - /** - * optional uint32 status = 2; - */ - boolean hasStatus(); - /** - * optional uint32 status = 2; - */ - int getStatus(); - - // optional string message = 3; - /** - * optional string message = 3; - */ - boolean hasMessage(); - /** - * optional string message = 3; - */ - java.lang.String getMessage(); - /** - * optional string message = 3; - */ - com.google.protobuf.ByteString - getMessageBytes(); - - // repeated string headers = 5; - /** - * repeated string headers = 5; - */ - java.util.List - getHeadersList(); - /** - * repeated string headers = 5; - */ - int getHeadersCount(); - /** - * repeated string headers = 5; - */ - java.lang.String getHeaders(int index); - /** - * repeated string headers = 5; - */ - com.google.protobuf.ByteString - getHeadersBytes(int index); - - // optional bytes body = 4; - /** - * optional bytes body = 4; - */ - boolean hasBody(); - /** - * optional bytes body = 4; - */ - com.google.protobuf.ByteString getBody(); - } - /** - * Protobuf type {@code signalservice.WebSocketResponseMessage} - */ - public static final class WebSocketResponseMessage extends - com.google.protobuf.GeneratedMessage - implements WebSocketResponseMessageOrBuilder { - // Use WebSocketResponseMessage.newBuilder() to construct. - private WebSocketResponseMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private WebSocketResponseMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final WebSocketResponseMessage defaultInstance; - public static WebSocketResponseMessage getDefaultInstance() { - return defaultInstance; - } - - public WebSocketResponseMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private WebSocketResponseMessage( - 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.readUInt64(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - status_ = input.readUInt32(); - break; - } - case 26: { - bitField0_ |= 0x00000004; - message_ = input.readBytes(); - break; - } - case 34: { - bitField0_ |= 0x00000008; - body_ = input.readBytes(); - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000008; - } - headers_.add(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_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.UnmodifiableLazyStringList(headers_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketResponseMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketResponseMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.class, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public WebSocketResponseMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new WebSocketResponseMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional uint64 id = 1; - public static final int ID_FIELD_NUMBER = 1; - private long id_; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - - // optional uint32 status = 2; - public static final int STATUS_FIELD_NUMBER = 2; - private int status_; - /** - * optional uint32 status = 2; - */ - public boolean hasStatus() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 status = 2; - */ - public int getStatus() { - return status_; - } - - // optional string message = 3; - public static final int MESSAGE_FIELD_NUMBER = 3; - private java.lang.Object message_; - /** - * optional string message = 3; - */ - public boolean hasMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string message = 3; - */ - public java.lang.String getMessage() { - java.lang.Object ref = message_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - message_ = s; - } - return s; - } - } - /** - * optional string message = 3; - */ - public com.google.protobuf.ByteString - getMessageBytes() { - java.lang.Object ref = message_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - message_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - // repeated string headers = 5; - public static final int HEADERS_FIELD_NUMBER = 5; - private com.google.protobuf.LazyStringList headers_; - /** - * repeated string headers = 5; - */ - public java.util.List - getHeadersList() { - return headers_; - } - /** - * repeated string headers = 5; - */ - public int getHeadersCount() { - return headers_.size(); - } - /** - * repeated string headers = 5; - */ - public java.lang.String getHeaders(int index) { - return headers_.get(index); - } - /** - * repeated string headers = 5; - */ - public com.google.protobuf.ByteString - getHeadersBytes(int index) { - return headers_.getByteString(index); - } - - // optional bytes body = 4; - public static final int BODY_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString body_; - /** - * optional bytes body = 4; - */ - public boolean hasBody() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bytes body = 4; - */ - public com.google.protobuf.ByteString getBody() { - return body_; - } - - private void initFields() { - id_ = 0L; - status_ = 0; - message_ = ""; - headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - body_ = 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.writeUInt64(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(2, status_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getMessageBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, body_); - } - for (int i = 0; i < headers_.size(); i++) { - output.writeBytes(5, headers_.getByteString(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 - .computeUInt64Size(1, id_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, status_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, getMessageBytes()); - } - if (((bitField0_ & 0x00000008) == 0x00000008)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, body_); - } - { - int dataSize = 0; - for (int i = 0; i < headers_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeBytesSizeNoTag(headers_.getByteString(i)); - } - size += dataSize; - size += 1 * getHeadersList().size(); - } - 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.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage 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.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage 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.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage 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 signalservice.WebSocketResponseMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketResponseMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketResponseMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.class, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.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_ = 0L; - bitField0_ = (bitField0_ & ~0x00000001); - status_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - message_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - body_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketResponseMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage build() { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage buildPartial() { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage result = new org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage(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.status_ = status_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.message_ = message_; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.UnmodifiableLazyStringList( - headers_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.headers_ = headers_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000008; - } - result.body_ = body_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage other) { - if (other == org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance()) return this; - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasStatus()) { - setStatus(other.getStatus()); - } - if (other.hasMessage()) { - bitField0_ |= 0x00000004; - message_ = other.message_; - onChanged(); - } - if (!other.headers_.isEmpty()) { - if (headers_.isEmpty()) { - headers_ = other.headers_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureHeadersIsMutable(); - headers_.addAll(other.headers_); - } - onChanged(); - } - if (other.hasBody()) { - setBody(other.getBody()); - } - 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.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional uint64 id = 1; - private long id_ ; - /** - * optional uint64 id = 1; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional uint64 id = 1; - */ - public long getId() { - return id_; - } - /** - * optional uint64 id = 1; - */ - public Builder setId(long value) { - bitField0_ |= 0x00000001; - id_ = value; - onChanged(); - return this; - } - /** - * optional uint64 id = 1; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - // optional uint32 status = 2; - private int status_ ; - /** - * optional uint32 status = 2; - */ - public boolean hasStatus() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional uint32 status = 2; - */ - public int getStatus() { - return status_; - } - /** - * optional uint32 status = 2; - */ - public Builder setStatus(int value) { - bitField0_ |= 0x00000002; - status_ = value; - onChanged(); - return this; - } - /** - * optional uint32 status = 2; - */ - public Builder clearStatus() { - bitField0_ = (bitField0_ & ~0x00000002); - status_ = 0; - onChanged(); - return this; - } - - // optional string message = 3; - private java.lang.Object message_ = ""; - /** - * optional string message = 3; - */ - public boolean hasMessage() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional string message = 3; - */ - public java.lang.String getMessage() { - java.lang.Object ref = message_; - if (!(ref instanceof java.lang.String)) { - java.lang.String s = ((com.google.protobuf.ByteString) ref) - .toStringUtf8(); - message_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * optional string message = 3; - */ - public com.google.protobuf.ByteString - getMessageBytes() { - java.lang.Object ref = message_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - message_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * optional string message = 3; - */ - public Builder setMessage( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - message_ = value; - onChanged(); - return this; - } - /** - * optional string message = 3; - */ - public Builder clearMessage() { - bitField0_ = (bitField0_ & ~0x00000004); - message_ = getDefaultInstance().getMessage(); - onChanged(); - return this; - } - /** - * optional string message = 3; - */ - public Builder setMessageBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - message_ = value; - onChanged(); - return this; - } - - // repeated string headers = 5; - private com.google.protobuf.LazyStringList headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureHeadersIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - headers_ = new com.google.protobuf.LazyStringArrayList(headers_); - bitField0_ |= 0x00000008; - } - } - /** - * repeated string headers = 5; - */ - public java.util.List - getHeadersList() { - return java.util.Collections.unmodifiableList(headers_); - } - /** - * repeated string headers = 5; - */ - public int getHeadersCount() { - return headers_.size(); - } - /** - * repeated string headers = 5; - */ - public java.lang.String getHeaders(int index) { - return headers_.get(index); - } - /** - * repeated string headers = 5; - */ - public com.google.protobuf.ByteString - getHeadersBytes(int index) { - return headers_.getByteString(index); - } - /** - * repeated string headers = 5; - */ - public Builder setHeaders( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadersIsMutable(); - headers_.set(index, value); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder addHeaders( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadersIsMutable(); - headers_.add(value); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder addAllHeaders( - java.lang.Iterable values) { - ensureHeadersIsMutable(); - super.addAll(values, headers_); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder clearHeaders() { - headers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * repeated string headers = 5; - */ - public Builder addHeadersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadersIsMutable(); - headers_.add(value); - onChanged(); - return this; - } - - // optional bytes body = 4; - private com.google.protobuf.ByteString body_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes body = 4; - */ - public boolean hasBody() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * optional bytes body = 4; - */ - public com.google.protobuf.ByteString getBody() { - return body_; - } - /** - * optional bytes body = 4; - */ - public Builder setBody(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - body_ = value; - onChanged(); - return this; - } - /** - * optional bytes body = 4; - */ - public Builder clearBody() { - bitField0_ = (bitField0_ & ~0x00000010); - body_ = getDefaultInstance().getBody(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:signalservice.WebSocketResponseMessage) - } - - static { - defaultInstance = new WebSocketResponseMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.WebSocketResponseMessage) - } - - public interface WebSocketMessageOrBuilder - extends com.google.protobuf.MessageOrBuilder { - - // optional .signalservice.WebSocketMessage.Type type = 1; - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - boolean hasType(); - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type getType(); - - // optional .signalservice.WebSocketRequestMessage request = 2; - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - boolean hasRequest(); - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage getRequest(); - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder getRequestOrBuilder(); - - // optional .signalservice.WebSocketResponseMessage response = 3; - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - boolean hasResponse(); - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage getResponse(); - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder getResponseOrBuilder(); - } - /** - * Protobuf type {@code signalservice.WebSocketMessage} - */ - public static final class WebSocketMessage extends - com.google.protobuf.GeneratedMessage - implements WebSocketMessageOrBuilder { - // Use WebSocketMessage.newBuilder() to construct. - private WebSocketMessage(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private WebSocketMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final WebSocketMessage defaultInstance; - public static WebSocketMessage getDefaultInstance() { - return defaultInstance; - } - - public WebSocketMessage getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private WebSocketMessage( - 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: { - int rawValue = input.readEnum(); - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type value = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type.valueOf(rawValue); - if (value == null) { - unknownFields.mergeVarintField(1, rawValue); - } else { - bitField0_ |= 0x00000001; - type_ = value; - } - break; - } - case 18: { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000002) == 0x00000002)) { - subBuilder = request_.toBuilder(); - } - request_ = input.readMessage(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(request_); - request_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000002; - break; - } - case 26: { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000004) == 0x00000004)) { - subBuilder = response_.toBuilder(); - } - response_ = input.readMessage(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.PARSER, extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(response_); - response_ = subBuilder.buildPartial(); - } - bitField0_ |= 0x00000004; - 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.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.class, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public WebSocketMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new WebSocketMessage(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - /** - * Protobuf enum {@code signalservice.WebSocketMessage.Type} - */ - public enum Type - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0, 0), - /** - * REQUEST = 1; - */ - REQUEST(1, 1), - /** - * RESPONSE = 2; - */ - RESPONSE(2, 2), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * REQUEST = 1; - */ - public static final int REQUEST_VALUE = 1; - /** - * RESPONSE = 2; - */ - public static final int RESPONSE_VALUE = 2; - - - public final int getNumber() { return value; } - - public static Type valueOf(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return REQUEST; - case 2: return RESPONSE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public Type findValueByNumber(int number) { - return Type.valueOf(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - return getDescriptor().getValues().get(index); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.getDescriptor().getEnumTypes().get(0); - } - - private static final Type[] VALUES = values(); - - public static Type valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - return VALUES[desc.getIndex()]; - } - - private final int index; - private final int value; - - private Type(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:signalservice.WebSocketMessage.Type) - } - - private int bitField0_; - // optional .signalservice.WebSocketMessage.Type type = 1; - public static final int TYPE_FIELD_NUMBER = 1; - private org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type type_; - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type getType() { - return type_; - } - - // optional .signalservice.WebSocketRequestMessage request = 2; - public static final int REQUEST_FIELD_NUMBER = 2; - private org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage request_; - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public boolean hasRequest() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage getRequest() { - return request_; - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder getRequestOrBuilder() { - return request_; - } - - // optional .signalservice.WebSocketResponseMessage response = 3; - public static final int RESPONSE_FIELD_NUMBER = 3; - private org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage response_; - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public boolean hasResponse() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage getResponse() { - return response_; - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder getResponseOrBuilder() { - return response_; - } - - private void initFields() { - type_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type.UNKNOWN; - request_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance(); - response_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance(); - } - 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.writeEnum(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeMessage(2, request_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeMessage(3, response_); - } - 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 - .computeEnumSize(1, type_.getNumber()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, request_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, response_); - } - 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.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage 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.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage 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.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage 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 signalservice.WebSocketMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketMessage_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.class, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Builder.class); - } - - // Construct using org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getRequestFieldBuilder(); - getResponseFieldBuilder(); - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - type_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type.UNKNOWN; - bitField0_ = (bitField0_ & ~0x00000001); - if (requestBuilder_ == null) { - request_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance(); - } else { - requestBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - if (responseBuilder_ == null) { - response_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance(); - } else { - responseBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.internal_static_signalservice_WebSocketMessage_descriptor; - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage getDefaultInstanceForType() { - return org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.getDefaultInstance(); - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage build() { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage buildPartial() { - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage result = new org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.type_ = type_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - if (requestBuilder_ == null) { - result.request_ = request_; - } else { - result.request_ = requestBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - if (responseBuilder_ == null) { - result.response_ = response_; - } else { - result.response_ = responseBuilder_.build(); - } - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage) { - return mergeFrom((org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage other) { - if (other == org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.getDefaultInstance()) return this; - if (other.hasType()) { - setType(other.getType()); - } - if (other.hasRequest()) { - mergeRequest(other.getRequest()); - } - if (other.hasResponse()) { - mergeResponse(other.getResponse()); - } - 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.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional .signalservice.WebSocketMessage.Type type = 1; - private org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type type_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type.UNKNOWN; - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - public boolean hasType() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type getType() { - return type_; - } - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - public Builder setType(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - type_ = value; - onChanged(); - return this; - } - /** - * optional .signalservice.WebSocketMessage.Type type = 1; - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage.Type.UNKNOWN; - onChanged(); - return this; - } - - // optional .signalservice.WebSocketRequestMessage request = 2; - private org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage request_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder> requestBuilder_; - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public boolean hasRequest() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage getRequest() { - if (requestBuilder_ == null) { - return request_; - } else { - return requestBuilder_.getMessage(); - } - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public Builder setRequest(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage value) { - if (requestBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - request_ = value; - onChanged(); - } else { - requestBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public Builder setRequest( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder builderForValue) { - if (requestBuilder_ == null) { - request_ = builderForValue.build(); - onChanged(); - } else { - requestBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public Builder mergeRequest(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage value) { - if (requestBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002) && - request_ != org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance()) { - request_ = - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.newBuilder(request_).mergeFrom(value).buildPartial(); - } else { - request_ = value; - } - onChanged(); - } else { - requestBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - return this; - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public Builder clearRequest() { - if (requestBuilder_ == null) { - request_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.getDefaultInstance(); - onChanged(); - } else { - requestBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder getRequestBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getRequestFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder getRequestOrBuilder() { - if (requestBuilder_ != null) { - return requestBuilder_.getMessageOrBuilder(); - } else { - return request_; - } - } - /** - * optional .signalservice.WebSocketRequestMessage request = 2; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder> - getRequestFieldBuilder() { - if (requestBuilder_ == null) { - requestBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage.Builder, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessageOrBuilder>( - request_, - getParentForChildren(), - isClean()); - request_ = null; - } - return requestBuilder_; - } - - // optional .signalservice.WebSocketResponseMessage response = 3; - private org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage response_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance(); - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder> responseBuilder_; - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public boolean hasResponse() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage getResponse() { - if (responseBuilder_ == null) { - return response_; - } else { - return responseBuilder_.getMessage(); - } - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public Builder setResponse(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage value) { - if (responseBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - response_ = value; - onChanged(); - } else { - responseBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public Builder setResponse( - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder builderForValue) { - if (responseBuilder_ == null) { - response_ = builderForValue.build(); - onChanged(); - } else { - responseBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public Builder mergeResponse(org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage value) { - if (responseBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004) && - response_ != org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance()) { - response_ = - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.newBuilder(response_).mergeFrom(value).buildPartial(); - } else { - response_ = value; - } - onChanged(); - } else { - responseBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - return this; - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public Builder clearResponse() { - if (responseBuilder_ == null) { - response_ = org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.getDefaultInstance(); - onChanged(); - } else { - responseBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder getResponseBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getResponseFieldBuilder().getBuilder(); - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - public org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder getResponseOrBuilder() { - if (responseBuilder_ != null) { - return responseBuilder_.getMessageOrBuilder(); - } else { - return response_; - } - } - /** - * optional .signalservice.WebSocketResponseMessage response = 3; - */ - private com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder> - getResponseFieldBuilder() { - if (responseBuilder_ == null) { - responseBuilder_ = new com.google.protobuf.SingleFieldBuilder< - org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessage.Builder, org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketResponseMessageOrBuilder>( - response_, - getParentForChildren(), - isClean()); - response_ = null; - } - return responseBuilder_; - } - - // @@protoc_insertion_point(builder_scope:signalservice.WebSocketMessage) - } - - static { - defaultInstance = new WebSocketMessage(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:signalservice.WebSocketMessage) - } - - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_WebSocketRequestMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_WebSocketRequestMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_WebSocketResponseMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_WebSocketResponseMessage_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_signalservice_WebSocketMessage_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_signalservice_WebSocketMessage_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\030WebSocketResources.proto\022\rsignalservic" + - "e\"`\n\027WebSocketRequestMessage\022\014\n\004verb\030\001 \001" + - "(\t\022\014\n\004path\030\002 \001(\t\022\014\n\004body\030\003 \001(\014\022\017\n\007header" + - "s\030\005 \003(\t\022\n\n\002id\030\004 \001(\004\"f\n\030WebSocketResponse" + - "Message\022\n\n\002id\030\001 \001(\004\022\016\n\006status\030\002 \001(\r\022\017\n\007m" + - "essage\030\003 \001(\t\022\017\n\007headers\030\005 \003(\t\022\014\n\004body\030\004 " + - "\001(\014\"\352\001\n\020WebSocketMessage\0222\n\004type\030\001 \001(\0162$" + - ".signalservice.WebSocketMessage.Type\0227\n\007" + - "request\030\002 \001(\0132&.signalservice.WebSocketR" + - "equestMessage\0229\n\010response\030\003 \001(\0132\'.signal", - "service.WebSocketResponseMessage\".\n\004Type" + - "\022\013\n\007UNKNOWN\020\000\022\013\n\007REQUEST\020\001\022\014\n\010RESPONSE\020\002" + - "BF\n3org.whispersystems.signalservice.int" + - "ernal.websocketB\017WebSocketProtos" - }; - 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_signalservice_WebSocketRequestMessage_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_signalservice_WebSocketRequestMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_WebSocketRequestMessage_descriptor, - new java.lang.String[] { "Verb", "Path", "Body", "Headers", "Id", }); - internal_static_signalservice_WebSocketResponseMessage_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_signalservice_WebSocketResponseMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_WebSocketResponseMessage_descriptor, - new java.lang.String[] { "Id", "Status", "Message", "Headers", "Body", }); - internal_static_signalservice_WebSocketMessage_descriptor = - getDescriptor().getMessageTypes().get(2); - internal_static_signalservice_WebSocketMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_signalservice_WebSocketMessage_descriptor, - new java.lang.String[] { "Type", "Request", "Response", }); - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/DotNetAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/DotNetAPI.kt deleted file mode 100644 index c37bceb3f..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/DotNetAPI.kt +++ /dev/null @@ -1,253 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import com.fasterxml.jackson.databind.JsonNode -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.functional.bind -import nl.komponents.kovenant.functional.map -import nl.komponents.kovenant.then -import okhttp3.MediaType -import okhttp3.MultipartBody -import okhttp3.Request -import okhttp3.RequestBody -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.libsignal.loki.DiffieHellman -import org.whispersystems.signalservice.api.crypto.ProfileCipherOutputStream -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException -import org.whispersystems.signalservice.api.util.StreamDetails -import org.whispersystems.signalservice.internal.push.ProfileAvatarData -import org.whispersystems.signalservice.internal.push.PushAttachmentData -import org.whispersystems.signalservice.internal.push.http.DigestingRequestBody -import org.whispersystems.signalservice.internal.push.http.ProfileCipherOutputStreamFactory -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.internal.util.Hex -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI -import org.whispersystems.signalservice.loki.api.utilities.HTTP -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.utilities.recover -import org.whispersystems.signalservice.loki.utilities.removing05PrefixIfNeeded -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded -import java.util.* - -/** - * Base class that provides utilities for .NET based APIs. - */ -open class LokiDotNetAPI(internal val userPublicKey: String, private val userPrivateKey: ByteArray, private val apiDatabase: LokiAPIDatabaseProtocol) { - - internal enum class HTTPVerb { GET, PUT, POST, DELETE, PATCH } - - companion object { - private val authTokenRequestCache = hashMapOf>() - } - - public data class UploadResult(val id: Long, val url: String, val digest: ByteArray?) - - public fun getAuthToken(server: String): Promise { - val token = apiDatabase.getAuthToken(server) - if (token != null) { return Promise.of(token) } - // Avoid multiple token requests to the server by caching - var promise = authTokenRequestCache[server] - if (promise == null) { - promise = requestNewAuthToken(server).bind { submitAuthToken(it, server) }.then { newToken -> - apiDatabase.setAuthToken(server, newToken) - newToken - }.always { - authTokenRequestCache.remove(server) - } - authTokenRequestCache[server] = promise - } - return promise - } - - private fun requestNewAuthToken(server: String): Promise { - Log.d("Loki", "Requesting auth token for server: $server.") - val parameters: Map = mapOf( "pubKey" to userPublicKey ) - return execute(HTTPVerb.GET, server, "loki/v1/get_challenge", false, parameters).map(SnodeAPI.sharedContext) { json -> - try { - val base64EncodedChallenge = json["cipherText64"] as String - val challenge = Base64.decode(base64EncodedChallenge) - val base64EncodedServerPublicKey = json["serverPubKey64"] as String - var serverPublicKey = Base64.decode(base64EncodedServerPublicKey) - // Discard the "05" prefix if needed - if (serverPublicKey.count() == 33) { - val hexEncodedServerPublicKey = Hex.toStringCondensed(serverPublicKey) - serverPublicKey = Hex.fromStringCondensed(hexEncodedServerPublicKey.removing05PrefixIfNeeded()) - } - // The challenge is prefixed by the 16 bit IV - val tokenAsData = DiffieHellman.decrypt(challenge, serverPublicKey, userPrivateKey) - val token = tokenAsData.toString(Charsets.UTF_8) - token - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse auth token for server: $server.") - throw exception - } - } - } - - private fun submitAuthToken(token: String, server: String): Promise { - Log.d("Loki", "Submitting auth token for server: $server.") - val parameters = mapOf( "pubKey" to userPublicKey, "token" to token ) - return execute(HTTPVerb.POST, server, "loki/v1/submit_challenge", false, parameters, isJSONRequired = false).map { token } - } - - internal fun execute(verb: HTTPVerb, server: String, endpoint: String, isAuthRequired: Boolean = true, parameters: Map = mapOf(), isJSONRequired: Boolean = true): Promise, Exception> { - fun execute(token: String?): Promise, Exception> { - val sanitizedEndpoint = endpoint.removePrefix("/") - var url = "$server/$sanitizedEndpoint" - if (verb == HTTPVerb.GET || verb == HTTPVerb.DELETE) { - val queryParameters = parameters.map { "${it.key}=${it.value}" }.joinToString("&") - if (queryParameters.isNotEmpty()) { url += "?$queryParameters" } - } - var request = Request.Builder().url(url) - if (isAuthRequired) { - if (token == null) { throw IllegalStateException() } - request = request.header("Authorization", "Bearer $token") - } - when (verb) { - HTTPVerb.GET -> request = request.get() - HTTPVerb.DELETE -> request = request.delete() - else -> { - val parametersAsJSON = JsonUtil.toJson(parameters) - val body = RequestBody.create(MediaType.get("application/json"), parametersAsJSON) - when (verb) { - HTTPVerb.PUT -> request = request.put(body) - HTTPVerb.POST -> request = request.post(body) - HTTPVerb.PATCH -> request = request.patch(body) - else -> throw IllegalStateException() - } - } - } - val serverPublicKeyPromise = if (server == FileServerAPI.shared.server) Promise.of(FileServerAPI.fileServerPublicKey) - else FileServerAPI.shared.getPublicKeyForOpenGroupServer(server) - return serverPublicKeyPromise.bind { serverPublicKey -> - OnionRequestAPI.sendOnionRequest(request.build(), server, serverPublicKey, isJSONRequired = isJSONRequired).recover { exception -> - if (exception is HTTP.HTTPRequestFailedException) { - val statusCode = exception.statusCode - if (statusCode == 401 || statusCode == 403) { - apiDatabase.setAuthToken(server, null) - throw SnodeAPI.Error.TokenExpired - } - } - throw exception - } - } - } - return if (isAuthRequired) { - getAuthToken(server).bind { execute(it) } - } else { - execute(null) - } - } - - internal fun getUserProfiles(publicKeys: Set, server: String, includeAnnotations: Boolean): Promise>, Exception> { - val parameters = mapOf( "include_user_annotations" to includeAnnotations.toInt(), "ids" to publicKeys.joinToString { "@$it" } ) - return execute(HTTPVerb.GET, server, "users", parameters = parameters).map { json -> - val data = json["data"] as? List> - if (data == null) { - Log.d("Loki", "Couldn't parse user profiles for: $publicKeys from: $json.") - throw SnodeAPI.Error.ParsingFailed - } - data!! // For some reason the compiler can't infer that this can't be null at this point - } - } - - internal fun setSelfAnnotation(server: String, type: String, newValue: Any?): Promise, Exception> { - val annotation = mutableMapOf( "type" to type ) - if (newValue != null) { annotation["value"] = newValue } - val parameters = mapOf( "annotations" to listOf( annotation ) ) - return execute(HTTPVerb.PATCH, server, "users/me", parameters = parameters) - } - - @Throws(PushNetworkException::class, NonSuccessfulResponseCodeException::class) - fun uploadAttachment(server: String, attachment: PushAttachmentData): UploadResult { - // This function mimics what Signal does in PushServiceSocket - val contentType = "application/octet-stream" - val file = DigestingRequestBody(attachment.data, attachment.outputStreamFactory, contentType, attachment.dataSize, attachment.listener) - Log.d("Loki", "File size: ${attachment.dataSize} bytes.") - val body = MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("type", "network.loki") - .addFormDataPart("Content-Type", contentType) - .addFormDataPart("content", UUID.randomUUID().toString(), file) - .build() - val request = Request.Builder().url("$server/files").post(body) - return upload(server, request) { json -> // Retrying is handled by AttachmentUploadJob - val data = json["data"] as? Map<*, *> - if (data == null) { - Log.d("Loki", "Couldn't parse attachment from: $json.") - throw SnodeAPI.Error.ParsingFailed - } - val id = data["id"] as? Long ?: (data["id"] as? Int)?.toLong() ?: (data["id"] as? String)?.toLong() - val url = data["url"] as? String - if (id == null || url == null || url.isEmpty()) { - Log.d("Loki", "Couldn't parse upload from: $json.") - throw SnodeAPI.Error.ParsingFailed - } - UploadResult(id, url, file.transmittedDigest) - }.get() - } - - @Throws(PushNetworkException::class, NonSuccessfulResponseCodeException::class) - fun uploadProfilePicture(server: String, key: ByteArray, profilePicture: StreamDetails, setLastProfilePictureUpload: () -> Unit): UploadResult { - val profilePictureUploadData = ProfileAvatarData(profilePicture.stream, ProfileCipherOutputStream.getCiphertextLength(profilePicture.length), profilePicture.contentType, ProfileCipherOutputStreamFactory(key)) - val file = DigestingRequestBody(profilePictureUploadData.data, profilePictureUploadData.outputStreamFactory, - profilePictureUploadData.contentType, profilePictureUploadData.dataLength, null) - val body = MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("type", "network.loki") - .addFormDataPart("Content-Type", "application/octet-stream") - .addFormDataPart("content", UUID.randomUUID().toString(), file) - .build() - val request = Request.Builder().url("$server/files").post(body) - return retryIfNeeded(4) { - upload(server, request) { json -> - val data = json["data"] as? Map<*, *> - if (data == null) { - Log.d("Loki", "Couldn't parse profile picture from: $json.") - throw SnodeAPI.Error.ParsingFailed - } - val id = data["id"] as? Long ?: (data["id"] as? Int)?.toLong() ?: (data["id"] as? String)?.toLong() - val url = data["url"] as? String - if (id == null || url == null || url.isEmpty()) { - Log.d("Loki", "Couldn't parse profile picture from: $json.") - throw SnodeAPI.Error.ParsingFailed - } - setLastProfilePictureUpload() - UploadResult(id, url, file.transmittedDigest) - } - }.get() - } - - @Throws(PushNetworkException::class, NonSuccessfulResponseCodeException::class) - private fun upload(server: String, request: Request.Builder, parse: (Map<*, *>) -> UploadResult): Promise { - val promise: Promise, Exception> - if (server == FileServerAPI.shared.server) { - request.addHeader("Authorization", "Bearer loki") - // Uploads to the Loki File Server shouldn't include any personally identifiable information, so use a dummy auth token - promise = OnionRequestAPI.sendOnionRequest(request.build(), FileServerAPI.shared.server, FileServerAPI.fileServerPublicKey) - } else { - promise = FileServerAPI.shared.getPublicKeyForOpenGroupServer(server).bind { openGroupServerPublicKey -> - getAuthToken(server).bind { token -> - request.addHeader("Authorization", "Bearer $token") - OnionRequestAPI.sendOnionRequest(request.build(), server, openGroupServerPublicKey) - } - } - } - return promise.map { json -> - parse(json) - }.recover { exception -> - if (exception is HTTP.HTTPRequestFailedException) { - val statusCode = exception.statusCode - if (statusCode == 401 || statusCode == 403) { - apiDatabase.setAuthToken(server, null) - } - throw NonSuccessfulResponseCodeException("Request returned with status code ${exception.statusCode}.") - } - throw PushNetworkException(exception) - } - } -} - -private fun Boolean.toInt(): Int { return if (this) 1 else 0 } diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/LokiMessage.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/LokiMessage.kt deleted file mode 100644 index 0a558f49b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/LokiMessage.kt +++ /dev/null @@ -1,85 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.deferred -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.loki.api.crypto.ProofOfWork -import org.whispersystems.signalservice.loki.protocol.meta.TTLUtilities -import org.whispersystems.signalservice.loki.utilities.prettifiedDescription - -internal data class LokiMessage( - /** - * The hex encoded public key of the receiver. - */ - internal val recipientPublicKey: String, - /** - * The content of the message. - */ - internal val data: String, - /** - * The time to live for the message in milliseconds. - */ - internal val ttl: Int, - /** - * Whether this message is a ping. - */ - internal val isPing: Boolean, - /** - * When the proof of work was calculated, if applicable (P2P messages don't require proof of work). - * - * - Note: Expressed as milliseconds since 00:00:00 UTC on 1 January 1970. - */ - internal var timestamp: Long? = null, - /** - * The base 64 encoded proof of work, if applicable (P2P messages don't require proof of work). - */ - internal var nonce: String? = null -) { - - internal companion object { - - internal fun from(message: SignalMessageInfo): LokiMessage? { - try { - val wrappedMessage = MessageWrapper.wrap(message) - val data = Base64.encodeBytes(wrappedMessage) - val destination = message.recipientPublicKey - var ttl = TTLUtilities.fallbackMessageTTL - val messageTTL = message.ttl - if (messageTTL != null && messageTTL != 0) { ttl = messageTTL } - val isPing = message.isPing - return LokiMessage(destination, data, ttl, isPing) - } catch (e: Exception) { - Log.d("Loki", "Failed to convert Signal message to Loki message: ${message.prettifiedDescription()}.") - return null - } - } - } - - @kotlin.ExperimentalUnsignedTypes - internal fun calculatePoW(): Promise { - val deferred = deferred() - // Run PoW in a background thread - Thread { - val now = System.currentTimeMillis() - val nonce = ProofOfWork.calculate(data, recipientPublicKey, now, ttl) - if (nonce != null ) { - deferred.resolve(copy(nonce = nonce, timestamp = now)) - } else { - deferred.reject(SnodeAPI.Error.ProofOfWorkCalculationFailed) - } - }.start() - return deferred.promise - } - - internal fun toJSON(): Map { - val result = mutableMapOf( "pubKey" to recipientPublicKey, "data" to data, "ttl" to ttl.toString() ) - val timestamp = timestamp - val nonce = nonce - if (timestamp != null && nonce != null) { - result["timestamp"] = timestamp.toString() - result["nonce"] = nonce - } - return result - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/MessageWrapper.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/MessageWrapper.kt deleted file mode 100644 index 7a55e8e66..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/MessageWrapper.kt +++ /dev/null @@ -1,84 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import com.google.protobuf.ByteString -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketMessage -import org.whispersystems.signalservice.internal.websocket.WebSocketProtos.WebSocketRequestMessage -import java.security.SecureRandom - -object MessageWrapper { - - // region Types - sealed class Error(val description: String) : Exception() { - object FailedToWrapData : Error("Failed to wrap data.") - object FailedToWrapMessageInEnvelope : Error("Failed to wrap message in envelope.") - object FailedToWrapEnvelopeInWebSocketMessage : Error("Failed to wrap envelope in web socket message.") - object FailedToUnwrapData : Error("Failed to unwrap data.") - } - // endregion - - // region Wrapping - /** - * Wraps `message` in a `SignalServiceProtos.Envelope` and then a `WebSocketProtos.WebSocketMessage` to match the desktop application. - */ - fun wrap(message: SignalMessageInfo): ByteArray { - try { - val envelope = createEnvelope(message) - val webSocketMessage = createWebSocketMessage(envelope) - return webSocketMessage.toByteArray() - } catch (e: Exception) { - throw if (e is Error) { e } else { Error.FailedToWrapData } - } - } - - private fun createEnvelope(message: SignalMessageInfo): Envelope { - try { - val builder = Envelope.newBuilder() - builder.type = message.type - builder.timestamp = message.timestamp - builder.source = message.senderPublicKey - builder.sourceDevice = message.senderDeviceID - builder.content = ByteString.copyFrom(Base64.decode(message.content)) - return builder.build() - } catch (e: Exception) { - Log.d("Loki", "Failed to wrap message in envelope: ${e.message}.") - throw Error.FailedToWrapMessageInEnvelope - } - } - - private fun createWebSocketMessage(envelope: Envelope): WebSocketMessage { - try { - val requestBuilder = WebSocketRequestMessage.newBuilder() - requestBuilder.verb = "PUT" - requestBuilder.path = "/api/v1/message" - requestBuilder.id = SecureRandom.getInstance("SHA1PRNG").nextLong() - requestBuilder.body = envelope.toByteString() - val messageBuilder = WebSocketMessage.newBuilder() - messageBuilder.request = requestBuilder.build() - messageBuilder.type = WebSocketMessage.Type.REQUEST - return messageBuilder.build() - } catch (e: Exception) { - Log.d("Loki", "Failed to wrap envelope in web socket message: ${e.message}.") - throw Error.FailedToWrapEnvelopeInWebSocketMessage - } - } - // endregion - - // region Unwrapping - /** - * `data` shouldn't be base 64 encoded. - */ - fun unwrap(data: ByteArray): Envelope { - try { - val webSocketMessage = WebSocketMessage.parseFrom(data) - val envelopeAsData = webSocketMessage.request.body - return Envelope.parseFrom(envelopeAsData) - } catch (e: Exception) { - Log.d("Loki", "Failed to unwrap data: ${e.message}.") - throw Error.FailedToUnwrapData - } - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/Poller.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/Poller.kt deleted file mode 100644 index dc34f08b4..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/Poller.kt +++ /dev/null @@ -1,95 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import nl.komponents.kovenant.* -import nl.komponents.kovenant.functional.bind -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import java.security.SecureRandom -import java.util.* - -private class PromiseCanceledException : Exception("Promise canceled.") - -class Poller(public var userPublicKey: String, private val database: LokiAPIDatabaseProtocol, private val onMessagesReceived: (List) -> Unit) { - private var hasStarted: Boolean = false - private val usedSnodes: MutableSet = mutableSetOf() - public var isCaughtUp = false - - // region Settings - companion object { - private val retryInterval: Long = 1 * 1000 - } - // endregion - - // region Public API - fun startIfNeeded() { - if (hasStarted) { return } - Log.d("Loki", "Started polling.") - hasStarted = true - setUpPolling() - } - - fun stopIfNeeded() { - Log.d("Loki", "Stopped polling.") - hasStarted = false - usedSnodes.clear() - } - // endregion - - // region Private API - private fun setUpPolling() { - if (!hasStarted) { return; } - val thread = Thread.currentThread() - SwarmAPI.shared.getSwarm(userPublicKey).bind(SnodeAPI.messagePollingContext) { - usedSnodes.clear() - val deferred = deferred(SnodeAPI.messagePollingContext) - pollNextSnode(deferred) - deferred.promise - }.always { - Timer().schedule(object : TimerTask() { - - override fun run() { - thread.run { setUpPolling() } - } - }, retryInterval) - } - } - - private fun pollNextSnode(deferred: Deferred) { - val swarm = database.getSwarm(userPublicKey) ?: setOf() - val unusedSnodes = swarm.subtract(usedSnodes) - if (unusedSnodes.isNotEmpty()) { - val index = SecureRandom().nextInt(unusedSnodes.size) - val nextSnode = unusedSnodes.elementAt(index) - usedSnodes.add(nextSnode) - Log.d("Loki", "Polling $nextSnode.") - poll(nextSnode, deferred).fail { exception -> - if (exception is PromiseCanceledException) { - Log.d("Loki", "Polling $nextSnode canceled.") - } else { - Log.d("Loki", "Polling $nextSnode failed; dropping it and switching to next snode.") - SwarmAPI.shared.dropSnodeFromSwarmIfNeeded(nextSnode, userPublicKey) - pollNextSnode(deferred) - } - } - } else { - isCaughtUp = true - deferred.resolve() - } - } - - private fun poll(snode: Snode, deferred: Deferred): Promise { - if (!hasStarted) { return Promise.ofFail(PromiseCanceledException()) } - return SnodeAPI.shared.getRawMessages(snode, userPublicKey).bind(SnodeAPI.messagePollingContext) { rawResponse -> - isCaughtUp = true - if (deferred.promise.isDone()) { - task { Unit } // The long polling connection has been canceled; don't recurse - } else { - val messages = SnodeAPI.shared.parseRawMessagesResponse(rawResponse, snode, userPublicKey) - onMessagesReceived(messages) - poll(snode, deferred) - } - } - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/PushNotificationAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/PushNotificationAPI.kt deleted file mode 100644 index b1d39127d..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/PushNotificationAPI.kt +++ /dev/null @@ -1,43 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import nl.komponents.kovenant.functional.map -import okhttp3.* -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded -import java.io.IOException - -public class PushNotificationAPI private constructor(public val server: String) { - - companion object { - private val maxRetryCount = 4 - public val pnServerPublicKey = "642a6585919742e5a2d4dc51244964fbcd8bcab2b75612407de58b810740d049" - - lateinit var shared: PushNotificationAPI - - public fun configureIfNeeded(isDebugMode: Boolean) { - if (::shared.isInitialized) { return; } - val server = if (isDebugMode) "https://live.apns.getsession.org" else "https://live.apns.getsession.org" - shared = PushNotificationAPI(server) - } - } - - public fun notify(messageInfo: SignalMessageInfo) { - val message = LokiMessage.from(messageInfo) ?: return - val parameters = mapOf( "data" to message.data, "send_to" to message.recipientPublicKey ) - val url = "${server}/notify" - val body = RequestBody.create(MediaType.get("application/json"), JsonUtil.toJson(parameters)) - val request = Request.Builder().url(url).post(body) - retryIfNeeded(maxRetryCount) { - OnionRequestAPI.sendOnionRequest(request.build(), server, PushNotificationAPI.pnServerPublicKey, "/loki/v2/lsrpc").map { json -> - val code = json["code"] as? Int - if (code == null || code == 0) { - Log.d("Loki", "[Loki] Couldn't notify PN server due to error: ${json["message"] as? String ?: "null"}.") - } - }.fail { exception -> - Log.d("Loki", "[Loki] Couldn't notify PN server due to error: $exception.") - } - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SignalMessageInfo.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SignalMessageInfo.kt deleted file mode 100644 index d7aa94512..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SignalMessageInfo.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import org.whispersystems.signalservice.internal.push.SignalServiceProtos - -data class SignalMessageInfo( - val type: SignalServiceProtos.Envelope.Type, - val timestamp: Long, - val senderPublicKey: String, - val senderDeviceID: Int, - val content: String, - val recipientPublicKey: String, - val ttl: Int?, - val isPing: Boolean -) diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/Snode.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/Snode.kt deleted file mode 100644 index 29ac52217..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/Snode.kt +++ /dev/null @@ -1,34 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -public class Snode(val address: String, val port: Int, val publicKeySet: KeySet?) { - - val ip: String get() = address.removePrefix("https://") - - internal enum class Method(val rawValue: String) { - /** - * Only supported by snode targets. - */ - GetSwarm("get_snodes_for_pubkey"), - /** - * Only supported by snode targets. - */ - GetMessages("retrieve"), - SendMessage("store") - } - - data class KeySet(val ed25519Key: String, val x25519Key: String) - - override fun equals(other: Any?): Boolean { - return if (other is Snode) { - address == other.address && port == other.port - } else { - false - } - } - - override fun hashCode(): Int { - return address.hashCode() xor port.hashCode() - } - - override fun toString(): String { return "$address:$port" } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SnodeAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SnodeAPI.kt deleted file mode 100644 index c7b483c4f..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SnodeAPI.kt +++ /dev/null @@ -1,282 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import nl.komponents.kovenant.Kovenant -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.deferred -import nl.komponents.kovenant.functional.bind -import nl.komponents.kovenant.functional.map -import nl.komponents.kovenant.task -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI -import org.whispersystems.signalservice.loki.api.utilities.HTTP -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.utilities.Broadcaster -import org.whispersystems.signalservice.loki.utilities.createContext -import org.whispersystems.signalservice.loki.utilities.prettifiedDescription -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded -import java.net.ConnectException -import java.net.SocketTimeoutException - -class SnodeAPI private constructor(public var userPublicKey: String, public val database: LokiAPIDatabaseProtocol, public val broadcaster: Broadcaster) { - - companion object { - val messageSendingContext = Kovenant.createContext("LokiAPIMessageSendingContext") - val messagePollingContext = Kovenant.createContext("LokiAPIMessagePollingContext") - /** - * For operations that are shared between message sending and message polling. - */ - val sharedContext = Kovenant.createContext("LokiAPISharedContext") - - // region Initialization - lateinit var shared: SnodeAPI - - fun configureIfNeeded(userHexEncodedPublicKey: String, database: LokiAPIDatabaseProtocol, broadcaster: Broadcaster) { - if (::shared.isInitialized) { return; } - shared = SnodeAPI(userHexEncodedPublicKey, database, broadcaster) - } - // endregion - - // region Settings - private val maxRetryCount = 6 - private val useOnionRequests = true - - internal var powDifficulty = 1 - // endregion - } - - // region Error - sealed class Error(val description: String) : Exception() { - class HTTPRequestFailed(val code: Int) : Error("HTTP request failed with error code: $code.") - object Generic : Error("An error occurred.") - object ResponseBodyMissing: Error("Response body missing.") - object MessageSigningFailed: Error("Failed to sign message.") - /** - * Only applicable to snode targets as proof of work isn't required for P2P messaging. - */ - object ProofOfWorkCalculationFailed : Error("Failed to calculate proof of work.") - object MessageConversionFailed : Error("Failed to convert Signal message to Loki message.") - object ClockOutOfSync : Error("The user's clock is out of sync with the service node network.") - object SnodeMigrated : Error("The snode previously associated with the given public key has migrated to a different swarm.") - object InsufficientProofOfWork : Error("The proof of work is insufficient.") - object TokenExpired : Error("The auth token being used has expired.") - object ParsingFailed : Error("Couldn't parse JSON.") - } - // endregion - - // region Internal API - /** - * `publicKey` is the hex encoded public key of the user the call is associated with. This is needed for swarm cache maintenance. - */ - internal fun invoke(method: Snode.Method, snode: Snode, publicKey: String, parameters: Map): RawResponsePromise { - val url = "${snode.address}:${snode.port}/storage_rpc/v1" - if (useOnionRequests) { - return OnionRequestAPI.sendOnionRequest(method, parameters, snode, publicKey) - } else { - val deferred = deferred, Exception>() - Thread { - val payload = mapOf( "method" to method.rawValue, "params" to parameters ) - try { - val json = HTTP.execute(HTTP.Verb.POST, url, payload) - deferred.resolve(json) - } catch (exception: Exception) { - if (exception is ConnectException || exception is SocketTimeoutException) { - dropSnodeIfNeeded(snode, publicKey) - } else { - val httpRequestFailedException = exception as? HTTP.HTTPRequestFailedException - if (httpRequestFailedException != null) { - @Suppress("NAME_SHADOWING") val exception = handleSnodeError(httpRequestFailedException.statusCode, httpRequestFailedException.json, snode, publicKey) - return@Thread deferred.reject(exception) - } - Log.d("Loki", "Unhandled exception: $exception.") - } - deferred.reject(exception) - } - }.start() - return deferred.promise - } - } - - public fun getRawMessages(snode: Snode, publicKey: String): RawResponsePromise { - val lastHashValue = database.getLastMessageHashValue(snode, publicKey) ?: "" - val parameters = mapOf( "pubKey" to publicKey, "lastHash" to lastHashValue ) - return invoke(Snode.Method.GetMessages, snode, publicKey, parameters) - } - // endregion - - // region Public API - fun getMessages(publicKey: String): MessageListPromise { - return retryIfNeeded(maxRetryCount) { - SwarmAPI.shared.getSingleTargetSnode(publicKey).bind(messagePollingContext) { snode -> - getRawMessages(snode, publicKey).map(messagePollingContext) { parseRawMessagesResponse(it, snode, publicKey) } - } - } - } - - @kotlin.ExperimentalUnsignedTypes - fun sendSignalMessage(message: SignalMessageInfo): Promise, Exception> { - val lokiMessage = LokiMessage.from(message) ?: return task { throw Error.MessageConversionFailed } - val destination = lokiMessage.recipientPublicKey - fun broadcast(event: String) { - val dayInMs = 86400000 - if (message.ttl != dayInMs && message.ttl != 4 * dayInMs) { return } - broadcaster.broadcast(event, message.timestamp) - } - broadcast("calculatingPoW") - return lokiMessage.calculatePoW().bind { lokiMessageWithPoW -> - broadcast("contactingNetwork") - retryIfNeeded(maxRetryCount) { - SwarmAPI.shared.getTargetSnodes(destination).map { swarm -> - swarm.map { snode -> - broadcast("sendingMessage") - val parameters = lokiMessageWithPoW.toJSON() - retryIfNeeded(maxRetryCount) { - invoke(Snode.Method.SendMessage, snode, destination, parameters).map { rawResponse -> - val json = rawResponse as? Map<*, *> - val powDifficulty = json?.get("difficulty") as? Int - if (powDifficulty != null) { - if (powDifficulty != SnodeAPI.powDifficulty && powDifficulty < 100) { - Log.d("Loki", "Setting proof of work difficulty to $powDifficulty (snode: $snode).") - SnodeAPI.powDifficulty = powDifficulty - } - } else { - Log.d("Loki", "Failed to update proof of work difficulty from: ${rawResponse.prettifiedDescription()}.") - } - rawResponse - } - } - }.toSet() - } - } - } - } - // endregion - - // region Parsing - - // The parsing utilities below use a best attempt approach to parsing; they warn for parsing failures but don't throw exceptions. - - public fun parseRawMessagesResponse(rawResponse: RawResponse, snode: Snode, publicKey: String): List { - val messages = rawResponse["messages"] as? List<*> - if (messages != null) { - updateLastMessageHashValueIfPossible(snode, publicKey, messages) - val newRawMessages = removeDuplicates(publicKey, messages) - return parseEnvelopes(newRawMessages) - } else { - return listOf() - } - } - - private fun updateLastMessageHashValueIfPossible(snode: Snode, publicKey: String, rawMessages: List<*>) { - val lastMessageAsJSON = rawMessages.lastOrNull() as? Map<*, *> - val hashValue = lastMessageAsJSON?.get("hash") as? String - val expiration = lastMessageAsJSON?.get("expiration") as? Int - if (hashValue != null) { - database.setLastMessageHashValue(snode, publicKey, hashValue) - } else if (rawMessages.isNotEmpty()) { - Log.d("Loki", "Failed to update last message hash value from: ${rawMessages.prettifiedDescription()}.") - } - } - - private fun removeDuplicates(publicKey: String, rawMessages: List<*>): List<*> { - val receivedMessageHashValues = database.getReceivedMessageHashValues(publicKey)?.toMutableSet() ?: mutableSetOf() - return rawMessages.filter { rawMessage -> - val rawMessageAsJSON = rawMessage as? Map<*, *> - val hashValue = rawMessageAsJSON?.get("hash") as? String - if (hashValue != null) { - val isDuplicate = receivedMessageHashValues.contains(hashValue) - receivedMessageHashValues.add(hashValue) - database.setReceivedMessageHashValues(publicKey, receivedMessageHashValues) - !isDuplicate - } else { - Log.d("Loki", "Missing hash value for message: ${rawMessage?.prettifiedDescription()}.") - false - } - } - } - - private fun parseEnvelopes(rawMessages: List<*>): List { - return rawMessages.mapNotNull { rawMessage -> - val rawMessageAsJSON = rawMessage as? Map<*, *> - val base64EncodedData = rawMessageAsJSON?.get("data") as? String - val data = base64EncodedData?.let { Base64.decode(it) } - if (data != null) { - try { - MessageWrapper.unwrap(data) - } catch (e: Exception) { - Log.d("Loki", "Failed to unwrap data for message: ${rawMessage.prettifiedDescription()}.") - null - } - } else { - Log.d("Loki", "Failed to decode data for message: ${rawMessage?.prettifiedDescription()}.") - null - } - } - } - // endregion - - // region Error Handling - private fun dropSnodeIfNeeded(snode: Snode, publicKey: String? = null) { - val oldFailureCount = SwarmAPI.shared.snodeFailureCount[snode] ?: 0 - val newFailureCount = oldFailureCount + 1 - SwarmAPI.shared.snodeFailureCount[snode] = newFailureCount - Log.d("Loki", "Couldn't reach snode at $snode; setting failure count to $newFailureCount.") - if (newFailureCount >= SwarmAPI.snodeFailureThreshold) { - Log.d("Loki", "Failure threshold reached for: $snode; dropping it.") - if (publicKey != null) { - SwarmAPI.shared.dropSnodeFromSwarmIfNeeded(snode, publicKey) - } - SwarmAPI.shared.snodePool = SwarmAPI.shared.snodePool.toMutableSet().minus(snode).toSet() - Log.d("Loki", "Snode pool count: ${SwarmAPI.shared.snodePool.count()}.") - SwarmAPI.shared.snodeFailureCount[snode] = 0 - } - } - - internal fun handleSnodeError(statusCode: Int, json: Map<*, *>?, snode: Snode, publicKey: String? = null): Exception { - when (statusCode) { - 400, 500, 503 -> { // Usually indicates that the snode isn't up to date - dropSnodeIfNeeded(snode, publicKey) - return Error.HTTPRequestFailed(statusCode) - } - 406 -> { - Log.d("Loki", "The user's clock is out of sync with the service node network.") - broadcaster.broadcast("clockOutOfSync") - return Error.ClockOutOfSync - } - 421 -> { - // The snode isn't associated with the given public key anymore - if (publicKey != null) { - Log.d("Loki", "Invalidating swarm for: $publicKey.") - SwarmAPI.shared.dropSnodeFromSwarmIfNeeded(snode, publicKey) - } else { - Log.d("Loki", "Got a 421 without an associated public key.") - } - return Error.SnodeMigrated - } - 432 -> { - // The PoW difficulty is too low - val powDifficulty = json?.get("difficulty") as? Int - if (powDifficulty != null && powDifficulty < 100) { - Log.d("Loki", "Setting proof of work difficulty to $powDifficulty (snode: $snode).") - SnodeAPI.powDifficulty = powDifficulty - } else { - Log.d("Loki", "Failed to update proof of work difficulty.") - } - return Error.InsufficientProofOfWork - } - else -> { - dropSnodeIfNeeded(snode, publicKey) - Log.d("Loki", "Unhandled response code: ${statusCode}.") - return Error.Generic - } - } - } - // endregion -} - -// region Convenience -typealias RawResponse = Map<*, *> -typealias MessageListPromise = Promise, Exception> -typealias RawResponsePromise = Promise -// endregion diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SwarmAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SwarmAPI.kt deleted file mode 100644 index 7930ae2aa..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/SwarmAPI.kt +++ /dev/null @@ -1,165 +0,0 @@ -package org.whispersystems.signalservice.loki.api - -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.deferred -import nl.komponents.kovenant.functional.bind -import nl.komponents.kovenant.functional.map -import nl.komponents.kovenant.task -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.loki.api.utilities.HTTP -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.utilities.getRandomElement -import org.whispersystems.signalservice.loki.utilities.prettifiedDescription -import java.security.SecureRandom - -class SwarmAPI private constructor(private val database: LokiAPIDatabaseProtocol) { - internal var snodeFailureCount: MutableMap = mutableMapOf() - - internal var snodePool: Set - get() = database.getSnodePool() - set(newValue) { database.setSnodePool(newValue) } - - companion object { - private val seedNodePool: Set = setOf( "https://storage.seed1.loki.network", "https://storage.seed3.loki.network", "https://public.loki.foundation" ) - - // region Settings - private val minimumSnodePoolCount = 64 - private val minimumSwarmSnodeCount = 2 - private val targetSwarmSnodeCount = 2 - - /** - * A snode is kicked out of a swarm and/or the snode pool if it fails this many times. - */ - internal val snodeFailureThreshold = 4 - // endregion - - // region Initialization - lateinit var shared: SwarmAPI - - fun configureIfNeeded(database: LokiAPIDatabaseProtocol) { - if (::shared.isInitialized) { return; } - shared = SwarmAPI(database) - } - // endregion - } - - // region Swarm API - internal fun getRandomSnode(): Promise { - val snodePool = this.snodePool - if (snodePool.count() < minimumSnodePoolCount) { - val target = seedNodePool.random() - val url = "$target/json_rpc" - Log.d("Loki", "Populating snode pool using: $target.") - val parameters = mapOf( - "method" to "get_n_service_nodes", - "params" to mapOf( - "active_only" to true, - "fields" to mapOf( "public_ip" to true, "storage_port" to true, "pubkey_x25519" to true, "pubkey_ed25519" to true ) - ) - ) - val deferred = deferred() - deferred(SnodeAPI.sharedContext) - Thread { - try { - val json = HTTP.execute(HTTP.Verb.POST, url, parameters, useSeedNodeConnection = true) - val intermediate = json["result"] as? Map<*, *> - val rawSnodes = intermediate?.get("service_node_states") as? List<*> - if (rawSnodes != null) { - @Suppress("NAME_SHADOWING") val snodePool = rawSnodes.mapNotNull { rawSnode -> - val rawSnodeAsJSON = rawSnode as? Map<*, *> - val address = rawSnodeAsJSON?.get("public_ip") as? String - val port = rawSnodeAsJSON?.get("storage_port") as? Int - val ed25519Key = rawSnodeAsJSON?.get("pubkey_ed25519") as? String - val x25519Key = rawSnodeAsJSON?.get("pubkey_x25519") as? String - if (address != null && port != null && ed25519Key != null && x25519Key != null && address != "0.0.0.0") { - Snode("https://$address", port, Snode.KeySet(ed25519Key, x25519Key)) - } else { - Log.d("Loki", "Failed to parse: ${rawSnode?.prettifiedDescription()}.") - null - } - }.toMutableSet() - Log.d("Loki", "Persisting snode pool to database.") - this.snodePool = snodePool - try { - deferred.resolve(snodePool.getRandomElement()) - } catch (exception: Exception) { - Log.d("Loki", "Got an empty snode pool from: $target.") - deferred.reject(SnodeAPI.Error.Generic) - } - } else { - Log.d("Loki", "Failed to update snode pool from: ${(rawSnodes as List<*>?)?.prettifiedDescription()}.") - deferred.reject(SnodeAPI.Error.Generic) - } - } catch (exception: Exception) { - deferred.reject(exception) - } - }.start() - return deferred.promise - } else { - return Promise.of(snodePool.getRandomElement()) - } - } - - public fun getSwarm(publicKey: String): Promise, Exception> { - val cachedSwarm = database.getSwarm(publicKey) - if (cachedSwarm != null && cachedSwarm.size >= minimumSwarmSnodeCount) { - val cachedSwarmCopy = mutableSetOf() // Workaround for a Kotlin compiler issue - cachedSwarmCopy.addAll(cachedSwarm) - return task { cachedSwarmCopy } - } else { - val parameters = mapOf( "pubKey" to publicKey ) - return getRandomSnode().bind { - SnodeAPI.shared.invoke(Snode.Method.GetSwarm, it, publicKey, parameters) - }.map(SnodeAPI.sharedContext) { - parseSnodes(it).toSet() - }.success { - database.setSwarm(publicKey, it) - } - } - } - - internal fun dropSnodeFromSwarmIfNeeded(snode: Snode, publicKey: String) { - val swarm = database.getSwarm(publicKey)?.toMutableSet() - if (swarm != null && swarm.contains(snode)) { - swarm.remove(snode) - database.setSwarm(publicKey, swarm) - } - } - - internal fun getSingleTargetSnode(publicKey: String): Promise { - // SecureRandom() should be cryptographically secure - return getSwarm(publicKey).map { it.shuffled(SecureRandom()).random() } - } - - internal fun getTargetSnodes(publicKey: String): Promise, Exception> { - // SecureRandom() should be cryptographically secure - return getSwarm(publicKey).map { it.shuffled(SecureRandom()).take(targetSwarmSnodeCount) } - } - // endregion - - // region Parsing - private fun parseSnodes(rawResponse: Any): List { - val json = rawResponse as? Map<*, *> - val rawSnodes = json?.get("snodes") as? List<*> - if (rawSnodes != null) { - return rawSnodes.mapNotNull { rawSnode -> - val rawSnodeAsJSON = rawSnode as? Map<*, *> - val address = rawSnodeAsJSON?.get("ip") as? String - val portAsString = rawSnodeAsJSON?.get("port") as? String - val port = portAsString?.toInt() - val ed25519Key = rawSnodeAsJSON?.get("pubkey_ed25519") as? String - val x25519Key = rawSnodeAsJSON?.get("pubkey_x25519") as? String - if (address != null && port != null && ed25519Key != null && x25519Key != null && address != "0.0.0.0") { - Snode("https://$address", port, Snode.KeySet(ed25519Key, x25519Key)) - } else { - Log.d("Loki", "Failed to parse snode from: ${rawSnode?.prettifiedDescription()}.") - null - } - } - } else { - Log.d("Loki", "Failed to parse snodes from: ${rawResponse.prettifiedDescription()}.") - return listOf() - } - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/crypto/ProofOfWork.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/crypto/ProofOfWork.kt deleted file mode 100644 index 13068ead7..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/crypto/ProofOfWork.kt +++ /dev/null @@ -1,64 +0,0 @@ -package org.whispersystems.signalservice.loki.api.crypto - -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.loki.api.SnodeAPI -import java.math.BigInteger -import java.nio.ByteBuffer -import java.security.MessageDigest - -/** - * Based on the desktop messenger's proof of work implementation. For more information, see libloki/proof-of-work.js. - */ -object ProofOfWork { - - // region Settings - private val nonceSize = 8 - // endregion - - // region Implementation - @kotlin.ExperimentalUnsignedTypes - fun calculate(data: String, hexEncodedPublicKey: String, timestamp: Long, ttl: Int): String? { - try { - val sha512 = MessageDigest.getInstance("SHA-512") - val payloadAsString = timestamp.toString() + ttl.toString() + hexEncodedPublicKey + data - val payload = payloadAsString.toByteArray() - val target = determineTarget(ttl, payload.size) - var currentTrialValue = ULong.MAX_VALUE - var nonce: Long = 0 - val initialHash = sha512.digest(payload) - while (currentTrialValue > target) { - nonce += 1 - // This is different from bitmessage's PoW implementation - // newHash = hash(nonce + hash(data)) → hash(nonce + initialHash) - val newHash = sha512.digest(nonce.toByteArray() + initialHash) - currentTrialValue = newHash.sliceArray(0 until nonceSize).toULong() - } - return Base64.encodeBytes(nonce.toByteArray()) - } catch (e: Exception) { - Log.d("Loki", "Couldn't calculate proof of work due to error: $e.") - return null - } - } - - @kotlin.ExperimentalUnsignedTypes - private fun determineTarget(ttl: Int, payloadSize: Int): ULong { - val x1 = BigInteger.valueOf(2).pow(16) - 1.toBigInteger() - val x2 = BigInteger.valueOf(2).pow(64) - 1.toBigInteger() - val size = (payloadSize + nonceSize).toBigInteger() - val ttlInSeconds = (ttl / 1000).toBigInteger() - val x3 = (ttlInSeconds * size) / x1 - val x4 = size + x3 - val x5 = SnodeAPI.powDifficulty.toBigInteger() * x4 - return (x2 / x5).toULong() - } - // endregion -} - -// region Convenience -@kotlin.ExperimentalUnsignedTypes -private fun BigInteger.toULong() = toLong().toULong() -private fun Long.toByteArray() = ByteBuffer.allocate(8).putLong(this).array() -@kotlin.ExperimentalUnsignedTypes -private fun ByteArray.toULong() = ByteBuffer.wrap(this).long.toULong() -// endregion diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/fileserver/FileServerAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/fileserver/FileServerAPI.kt deleted file mode 100644 index d6714b0f4..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/fileserver/FileServerAPI.kt +++ /dev/null @@ -1,262 +0,0 @@ -package org.whispersystems.signalservice.loki.api.fileserver - -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.functional.bind -import nl.komponents.kovenant.functional.map -import okhttp3.Request -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.libsignal.util.Hex -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.SnodeAPI -import org.whispersystems.signalservice.loki.api.LokiDotNetAPI -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink -import org.whispersystems.signalservice.loki.utilities.* -import java.net.URL -import java.util.concurrent.ConcurrentHashMap -import kotlin.collections.set - -class FileServerAPI(public val server: String, userPublicKey: String, userPrivateKey: ByteArray, private val database: LokiAPIDatabaseProtocol) : LokiDotNetAPI(userPublicKey, userPrivateKey, database) { - - companion object { - // region Settings - /** - * Deprecated. - */ - private val deviceLinkType = "network.loki.messenger.devicemapping" - /** - * Deprecated. - */ - private val deviceLinkRequestCache = ConcurrentHashMap, Exception>>() - /** - * Deprecated. - */ - private val deviceLinkUpdateInterval = 60 * 1000 - private val lastDeviceLinkUpdate = ConcurrentHashMap() - - internal val fileServerPublicKey = "62509D59BDEEC404DD0D489C1E15BA8F94FD3D619B01C1BF48A9922BFCB7311C" - internal val maxRetryCount = 4 - - public val maxFileSize = 10_000_000 // 10 MB - /** - * The file server has a file size limit of `maxFileSize`, which the Service Nodes try to enforce as well. However, the limit applied by the Service Nodes - * is on the **HTTP request** and not the actual file size. Because the file server expects the file data to be base 64 encoded, the size of the HTTP - * request for a given file will be at least `ceil(n / 3) * 4` bytes, where n is the file size in bytes. This is the minimum size because there might also - * be other parameters in the request. On average the multiplier appears to be about 1.5, so when checking whether the file will exceed the file size limit when - * uploading a file we just divide the size of the file by this number. The alternative would be to actually check the size of the HTTP request but that's only - * possible after proof of work has been calculated and the onion request encryption has happened, which takes several seconds. - */ - public val fileSizeORMultiplier = 2 // TODO: It should be possible to set this to 1.5? - public val fileStorageBucketURL = "https://file-static.lokinet.org" - // endregion - - // region Initialization - lateinit var shared: FileServerAPI - - /** - * Must be called before `LokiAPI` is used. - */ - fun configure(userPublicKey: String, userPrivateKey: ByteArray, database: LokiAPIDatabaseProtocol) { - if (Companion::shared.isInitialized) { return } - val server = "https://file.getsession.org" - shared = FileServerAPI(server, userPublicKey, userPrivateKey, database) - } - // endregion - } - - // region Device Link Update Result - sealed class DeviceLinkUpdateResult { - class Success(val publicKey: String, val deviceLinks: Set) : DeviceLinkUpdateResult() - class Failure(val publicKey: String, val error: Exception) : DeviceLinkUpdateResult() - } - // endregion - - // region API - public fun hasDeviceLinkCacheExpired(referenceTime: Long = System.currentTimeMillis(), publicKey: String): Boolean { - return !lastDeviceLinkUpdate.containsKey(publicKey) || (referenceTime - lastDeviceLinkUpdate[publicKey]!! > deviceLinkUpdateInterval) - } - - fun getDeviceLinks(publicKey: String, isForcedUpdate: Boolean = false): Promise, Exception> { - return Promise.of(setOf()) - /* - if (deviceLinkRequestCache.containsKey(publicKey) && !isForcedUpdate) { - val result = deviceLinkRequestCache[publicKey] - if (result != null) { return result } // A request was already pending - } - val promise = getDeviceLinks(setOf(publicKey), isForcedUpdate) - deviceLinkRequestCache[publicKey] = promise - promise.always { - deviceLinkRequestCache.remove(publicKey) - } - return promise - */ - } - - fun getDeviceLinks(publicKeys: Set, isForcedUpdate: Boolean = false): Promise, Exception> { - return Promise.of(setOf()) - /* - val validPublicKeys = publicKeys.filter { PublicKeyValidation.isValid(it) } - val now = System.currentTimeMillis() - // IMPORTANT: Don't fetch device links for the current user (i.e. don't remove the it != userHexEncodedPublicKey) check below - val updatees = validPublicKeys.filter { it != userPublicKey && (hasDeviceLinkCacheExpired(now, it) || isForcedUpdate) }.toSet() - val cachedDeviceLinks = validPublicKeys.minus(updatees).flatMap { database.getDeviceLinks(it) }.toSet() - if (updatees.isEmpty()) { - return Promise.of(cachedDeviceLinks) - } else { - return getUserProfiles(updatees, server, true).map(SnodeAPI.sharedContext) { data -> - data.map dataMap@ { node -> - val publicKey = node["username"] as String - val annotations = node["annotations"] as List> - val deviceLinksAnnotation = annotations.find { - annotation -> (annotation["type"] as String) == deviceLinkType - } ?: return@dataMap DeviceLinkUpdateResult.Success(publicKey, setOf()) - val value = deviceLinksAnnotation["value"] as Map<*, *> - val deviceLinksAsJSON = value["authorisations"] as List> - val deviceLinks = deviceLinksAsJSON.mapNotNull { deviceLinkAsJSON -> - try { - val masterPublicKey = deviceLinkAsJSON["primaryDevicePubKey"] as String - val slavePublicKey = deviceLinkAsJSON["secondaryDevicePubKey"] as String - var requestSignature: ByteArray? = null - var authorizationSignature: ByteArray? = null - if (deviceLinkAsJSON["requestSignature"] != null) { - val base64EncodedSignature = deviceLinkAsJSON["requestSignature"] as String - requestSignature = Base64.decode(base64EncodedSignature) - } - if (deviceLinkAsJSON["grantSignature"] != null) { - val base64EncodedSignature = deviceLinkAsJSON["grantSignature"] as String - authorizationSignature = Base64.decode(base64EncodedSignature) - } - val deviceLink = DeviceLink(masterPublicKey, slavePublicKey, requestSignature, authorizationSignature) - val isValid = deviceLink.verify() - if (!isValid) { - Log.d("Loki", "Ignoring invalid device link: $deviceLinkAsJSON.") - return@mapNotNull null - } - deviceLink - } catch (e: Exception) { - Log.d("Loki", "Failed to parse device links for $publicKey from $deviceLinkAsJSON due to error: $e.") - null - } - }.toSet() - DeviceLinkUpdateResult.Success(publicKey, deviceLinks) - } - }.recover { e -> - publicKeys.map { DeviceLinkUpdateResult.Failure(it, e) } - }.success { updateResults -> - for (updateResult in updateResults) { - if (updateResult is DeviceLinkUpdateResult.Success) { - database.clearDeviceLinks(updateResult.publicKey) - updateResult.deviceLinks.forEach { database.addDeviceLink(it) } - } else { - // Do nothing - } - } - }.map(SnodeAPI.sharedContext) { updateResults -> - val deviceLinks = mutableListOf() - for (updateResult in updateResults) { - when (updateResult) { - is DeviceLinkUpdateResult.Success -> { - lastDeviceLinkUpdate[updateResult.publicKey] = now - deviceLinks.addAll(updateResult.deviceLinks) - } - is DeviceLinkUpdateResult.Failure -> { - if (updateResult.error is SnodeAPI.Error.ParsingFailed) { - lastDeviceLinkUpdate[updateResult.publicKey] = now // Don't infinitely update in case of a parsing failure - } - deviceLinks.addAll(database.getDeviceLinks(updateResult.publicKey)) // Fall back on cached device links in case of a failure - } - } - } - // Updatees that didn't show up in the response provided by the file server are assumed to not have any device links - val excludedUpdatees = updatees.filter { updatee -> - updateResults.find { updateResult -> - when (updateResult) { - is DeviceLinkUpdateResult.Success -> updateResult.publicKey == updatee - is DeviceLinkUpdateResult.Failure -> updateResult.publicKey == updatee - } - } == null - } - excludedUpdatees.forEach { - lastDeviceLinkUpdate[it] = now - } - deviceLinks.union(cachedDeviceLinks) - }.recover { - publicKeys.flatMap { database.getDeviceLinks(it) }.toSet() - } - } - */ - } - - fun setDeviceLinks(deviceLinks: Set): Promise { - return Promise.of(Unit) - /* - val isMaster = deviceLinks.find { it.masterPublicKey == userPublicKey } != null - val deviceLinksAsJSON = deviceLinks.map { it.toJSON() } - val value = if (deviceLinks.isNotEmpty()) mapOf( "isPrimary" to isMaster, "authorisations" to deviceLinksAsJSON ) else null - val annotation = mapOf( "type" to deviceLinkType, "value" to value ) - val parameters = mapOf( "annotations" to listOf( annotation ) ) - return retryIfNeeded(maxRetryCount) { - execute(HTTPVerb.PATCH, server, "/users/me", parameters = parameters) - }.map { Unit } - */ - } - - fun addDeviceLink(deviceLink: DeviceLink): Promise { - return Promise.of(Unit) - /* - Log.d("Loki", "Updating device links.") - return getDeviceLinks(userPublicKey, true).bind { deviceLinks -> - val mutableDeviceLinks = deviceLinks.toMutableSet() - mutableDeviceLinks.add(deviceLink) - setDeviceLinks(mutableDeviceLinks) - }.success { - database.addDeviceLink(deviceLink) - }.map { Unit } - */ - } - - fun removeDeviceLink(deviceLink: DeviceLink): Promise { - return Promise.of(Unit) - /* - Log.d("Loki", "Updating device links.") - return getDeviceLinks(userPublicKey, true).bind { deviceLinks -> - val mutableDeviceLinks = deviceLinks.toMutableSet() - mutableDeviceLinks.remove(deviceLink) - setDeviceLinks(mutableDeviceLinks) - }.success { - database.removeDeviceLink(deviceLink) - }.map { Unit } - */ - } - // endregion - - // region Open Group Server Public Key - fun getPublicKeyForOpenGroupServer(openGroupServer: String): Promise { - val publicKey = database.getOpenGroupPublicKey(openGroupServer) - if (publicKey != null && PublicKeyValidation.isValid(publicKey, 64, false)) { - return Promise.of(publicKey) - } else { - val url = "$server/loki/v1/getOpenGroupKey/${URL(openGroupServer).host}" - val request = Request.Builder().url(url) - request.addHeader("Content-Type", "application/json") - request.addHeader("Authorization", "Bearer loki") // Tokenless request; use a dummy token - return OnionRequestAPI.sendOnionRequest(request.build(), server, fileServerPublicKey).map { json -> - try { - val bodyAsString = json["data"] as String - val body = JsonUtil.fromJson(bodyAsString) - val base64EncodedPublicKey = body.get("data").asText() - val prefixedPublicKey = Base64.decode(base64EncodedPublicKey) - val hexEncodedPrefixedPublicKey = prefixedPublicKey.toHexString() - val result = hexEncodedPrefixedPublicKey.removing05PrefixIfNeeded() - database.setOpenGroupPublicKey(openGroupServer, result) - result - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse open group public key from: $json.") - throw exception - } - } - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestAPI.kt deleted file mode 100644 index 374225e9a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestAPI.kt +++ /dev/null @@ -1,459 +0,0 @@ -package org.whispersystems.signalservice.loki.api.onionrequests - -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.all -import nl.komponents.kovenant.deferred -import nl.komponents.kovenant.functional.bind -import nl.komponents.kovenant.functional.map -import okhttp3.Request -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.* -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.api.utilities.* -import org.whispersystems.signalservice.loki.api.utilities.EncryptionResult -import org.whispersystems.signalservice.loki.api.utilities.getBodyForOnionRequest -import org.whispersystems.signalservice.loki.api.utilities.getHeadersForOnionRequest -import org.whispersystems.signalservice.loki.utilities.* - -private typealias Path = List - -/** - * See the "Onion Requests" section of [The Session Whitepaper](https://arxiv.org/pdf/2002.04609.pdf) for more information. - */ -public object OnionRequestAPI { - private val pathFailureCount = mutableMapOf() - private val snodeFailureCount = mutableMapOf() - public var guardSnodes = setOf() - public var paths: List // Not a set to ensure we consistently show the same path to the user - get() = SnodeAPI.shared.database.getOnionRequestPaths() - set(newValue) { - if (newValue.isEmpty()) { - SnodeAPI.shared.database.clearOnionRequestPaths() - } else { - SnodeAPI.shared.database.setOnionRequestPaths(newValue) - } - } - - // region Settings - /** - * The number of snodes (including the guard snode) in a path. - */ - private val pathSize = 3 - /** - * The number of times a path can fail before it's replaced. - */ - private val pathFailureThreshold = 2 - /** - * The number of times a snode can fail before it's replaced. - */ - private val snodeFailureThreshold = 2 - /** - * The number of paths to maintain. - */ - public val targetPathCount = 2 // A main path and a backup path for the case where the target snode is in the main path - - /** - * The number of guard snodes required to maintain `targetPathCount` paths. - */ - private val targetGuardSnodeCount - get() = targetPathCount // One per path - // endregion - - class HTTPRequestFailedAtDestinationException(val statusCode: Int, val json: Map<*, *>) - : Exception("HTTP request failed at destination with status code $statusCode.") - class InsufficientSnodesException : Exception("Couldn't find enough snodes to build a path.") - - private data class OnionBuildingResult( - internal val guardSnode: Snode, - internal val finalEncryptionResult: EncryptionResult, - internal val destinationSymmetricKey: ByteArray - ) - - internal sealed class Destination { - class Snode(val snode: org.whispersystems.signalservice.loki.api.Snode) : Destination() - class Server(val host: String, val target: String, val x25519PublicKey: String) : Destination() - } - - // region Private API - /** - * Tests the given snode. The returned promise errors out if the snode is faulty; the promise is fulfilled otherwise. - */ - private fun testSnode(snode: Snode): Promise { - val deferred = deferred() - Thread { // No need to block the shared context for this - val url = "${snode.address}:${snode.port}/get_stats/v1" - try { - val json = HTTP.execute(HTTP.Verb.GET, url) - val version = json["version"] as? String - if (version == null) { deferred.reject(Exception("Missing snode version.")); return@Thread } - if (version >= "2.0.7") { - deferred.resolve(Unit) - } else { - val message = "Unsupported snode version: $version." - Log.d("Loki", message) - deferred.reject(Exception(message)) - } - } catch (exception: Exception) { - deferred.reject(exception) - } - }.start() - return deferred.promise - } - - /** - * Finds `targetGuardSnodeCount` guard snodes to use for path building. The returned promise errors out if not - * enough (reliable) snodes are available. - */ - private fun getGuardSnodes(reusableGuardSnodes: List): Promise, Exception> { - if (guardSnodes.count() >= targetGuardSnodeCount) { - return Promise.of(guardSnodes) - } else { - Log.d("Loki", "Populating guard snode cache.") - return SwarmAPI.shared.getRandomSnode().bind(SnodeAPI.sharedContext) { // Just used to populate the snode pool - var unusedSnodes = SwarmAPI.shared.snodePool.minus(reusableGuardSnodes) - val reusableGuardSnodeCount = reusableGuardSnodes.count() - if (unusedSnodes.count() < (targetGuardSnodeCount - reusableGuardSnodeCount)) { throw InsufficientSnodesException() } - fun getGuardSnode(): Promise { - val candidate = unusedSnodes.getRandomElementOrNull() - ?: return Promise.ofFail(InsufficientSnodesException()) - unusedSnodes = unusedSnodes.minus(candidate) - Log.d("Loki", "Testing guard snode: $candidate.") - // Loop until a reliable guard snode is found - val deferred = deferred() - testSnode(candidate).success { - deferred.resolve(candidate) - }.fail { - getGuardSnode().success { - deferred.resolve(candidate) - }.fail { exception -> - if (exception is InsufficientSnodesException) { - deferred.reject(exception) - } - } - } - return deferred.promise - } - val promises = (0 until (targetGuardSnodeCount - reusableGuardSnodeCount)).map { getGuardSnode() } - all(promises).map(SnodeAPI.sharedContext) { guardSnodes -> - val guardSnodesAsSet = (guardSnodes + reusableGuardSnodes).toSet() - OnionRequestAPI.guardSnodes = guardSnodesAsSet - guardSnodesAsSet - } - } - } - } - - /** - * Builds and returns `targetPathCount` paths. The returned promise errors out if not - * enough (reliable) snodes are available. - */ - private fun buildPaths(reusablePaths: List): Promise, Exception> { - Log.d("Loki", "Building onion request paths.") - SnodeAPI.shared.broadcaster.broadcast("buildingPaths") - return SwarmAPI.shared.getRandomSnode().bind(SnodeAPI.sharedContext) { // Just used to populate the snode pool - val reusableGuardSnodes = reusablePaths.map { it[0] } - getGuardSnodes(reusableGuardSnodes).map(SnodeAPI.sharedContext) { guardSnodes -> - var unusedSnodes = SwarmAPI.shared.snodePool.minus(guardSnodes).minus(reusablePaths.flatten()) - val reusableGuardSnodeCount = reusableGuardSnodes.count() - val pathSnodeCount = (targetGuardSnodeCount - reusableGuardSnodeCount) * pathSize - (targetGuardSnodeCount - reusableGuardSnodeCount) - if (unusedSnodes.count() < pathSnodeCount) { throw InsufficientSnodesException() } - // Don't test path snodes as this would reveal the user's IP to them - guardSnodes.minus(reusableGuardSnodes).map { guardSnode -> - val result = listOf( guardSnode ) + (0 until (pathSize - 1)).map { - val pathSnode = unusedSnodes.getRandomElement() - unusedSnodes = unusedSnodes.minus(pathSnode) - pathSnode - } - Log.d("Loki", "Built new onion request path: $result.") - result - } - }.map { paths -> - OnionRequestAPI.paths = paths + reusablePaths - SnodeAPI.shared.broadcaster.broadcast("pathsBuilt") - paths - } - } - } - - /** - * Returns a `Path` to be used for building an onion request. Builds new paths as needed. - */ - private fun getPath(snodeToExclude: Snode?): Promise { - if (pathSize < 1) { throw Exception("Can't build path of size zero.") } - val paths = this.paths - val guardSnodes = mutableSetOf() - if (paths.isNotEmpty()) { - guardSnodes.add(paths[0][0]) - if (paths.count() >= 2) { - guardSnodes.add(paths[1][0]) - } - } - OnionRequestAPI.guardSnodes = guardSnodes - fun getPath(paths: List): Path { - if (snodeToExclude != null) { - return paths.filter { !it.contains(snodeToExclude) }.getRandomElement() - } else { - return paths.getRandomElement() - } - } - if (paths.count() >= targetPathCount) { - return Promise.of(getPath(paths)) - } else if (paths.isNotEmpty()) { - if (paths.any { !it.contains(snodeToExclude) }) { - buildPaths(paths) // Re-build paths in the background - return Promise.of(getPath(paths)) - } else { - return buildPaths(paths).map(SnodeAPI.sharedContext) { newPaths -> - getPath(newPaths) - } - } - } else { - return buildPaths(listOf()).map(SnodeAPI.sharedContext) { newPaths -> - getPath(newPaths) - } - } - } - - private fun dropGuardSnode(snode: Snode) { - guardSnodes = guardSnodes.filter { it != snode }.toSet() - } - - private fun dropSnode(snode: Snode) { - // We repair the path here because we can do it sync. In the case where we drop a whole - // path we leave the re-building up to getPath() because re-building the path in that case - // is async. - snodeFailureCount[snode] = 0 - val oldPaths = paths.toMutableList() - val pathIndex = oldPaths.indexOfFirst { it.contains(snode) } - if (pathIndex == -1) { return } - val path = oldPaths[pathIndex].toMutableList() - val snodeIndex = path.indexOf(snode) - if (snodeIndex == -1) { return } - path.removeAt(snodeIndex) - val unusedSnodes = SwarmAPI.shared.snodePool.minus(oldPaths.flatten()) - if (unusedSnodes.isEmpty()) { throw InsufficientSnodesException() } - path.add(unusedSnodes.getRandomElement()) - // Don't test the new snode as this would reveal the user's IP - oldPaths.removeAt(pathIndex) - val newPaths = oldPaths + listOf( path ) - paths = newPaths - } - - private fun dropPath(path: Path) { - pathFailureCount[path] = 0 - val paths = OnionRequestAPI.paths.toMutableList() - val pathIndex = paths.indexOf(path) - if (pathIndex == -1) { return } - paths.removeAt(pathIndex) - OnionRequestAPI.paths = paths - } - - /** - * Builds an onion around `payload` and returns the result. - */ - private fun buildOnionForDestination(payload: Map<*, *>, destination: Destination): Promise { - lateinit var guardSnode: Snode - lateinit var destinationSymmetricKey: ByteArray // Needed by LokiAPI to decrypt the response sent back by the destination - lateinit var encryptionResult: EncryptionResult - val snodeToExclude = when (destination) { - is Destination.Snode -> destination.snode - is Destination.Server -> null - } - return getPath(snodeToExclude).bind(SnodeAPI.sharedContext) { path -> - guardSnode = path.first() - // Encrypt in reverse order, i.e. the destination first - OnionRequestEncryption.encryptPayloadForDestination(payload, destination).bind(SnodeAPI.sharedContext) { r -> - destinationSymmetricKey = r.symmetricKey - // Recursively encrypt the layers of the onion (again in reverse order) - encryptionResult = r - @Suppress("NAME_SHADOWING") var path = path - var rhs = destination - fun addLayer(): Promise { - if (path.isEmpty()) { - return Promise.of(encryptionResult) - } else { - val lhs = Destination.Snode(path.last()) - path = path.dropLast(1) - return OnionRequestEncryption.encryptHop(lhs, rhs, encryptionResult).bind(SnodeAPI.sharedContext) { r -> - encryptionResult = r - rhs = lhs - addLayer() - } - } - } - addLayer() - } - }.map(SnodeAPI.sharedContext) { OnionBuildingResult(guardSnode, encryptionResult, destinationSymmetricKey) } - } - - /** - * Sends an onion request to `destination`. Builds new paths as needed. - */ - private fun sendOnionRequest(destination: Destination, payload: Map<*, *>, isJSONRequired: Boolean = true): Promise, Exception> { - val deferred = deferred, Exception>() - lateinit var guardSnode: Snode - buildOnionForDestination(payload, destination).success { result -> - guardSnode = result.guardSnode - val url = "${guardSnode.address}:${guardSnode.port}/onion_req/v2" - val finalEncryptionResult = result.finalEncryptionResult - val onion = finalEncryptionResult.ciphertext - if (destination is Destination.Server && onion.count().toDouble() > 0.75 * FileServerAPI.maxFileSize.toDouble()) { - Log.d("Loki", "Approaching request size limit: ~${onion.count()} bytes.") - } - @Suppress("NAME_SHADOWING") val parameters = mapOf( - "ephemeral_key" to finalEncryptionResult.ephemeralPublicKey.toHexString() - ) - val body: ByteArray - try { - body = OnionRequestEncryption.encode(onion, parameters) - } catch (exception: Exception) { - return@success deferred.reject(exception) - } - val destinationSymmetricKey = result.destinationSymmetricKey - Thread { - try { - val json = HTTP.execute(HTTP.Verb.POST, url, body) - val base64EncodedIVAndCiphertext = json["result"] as? String ?: return@Thread deferred.reject(Exception("Invalid JSON")) - val ivAndCiphertext = Base64.decode(base64EncodedIVAndCiphertext) - try { - val plaintext = DecryptionUtilities.decryptUsingAESGCM(ivAndCiphertext, destinationSymmetricKey) - try { - @Suppress("NAME_SHADOWING") val json = JsonUtil.fromJson(plaintext.toString(Charsets.UTF_8), Map::class.java) - val statusCode = json["status"] as Int - if (statusCode == 406) { - @Suppress("NAME_SHADOWING") val body = mapOf( "result" to "Your clock is out of sync with the service node network." ) - val exception = HTTPRequestFailedAtDestinationException(statusCode, body) - return@Thread deferred.reject(exception) - } else if (json["body"] != null) { - @Suppress("NAME_SHADOWING") val body: Map<*, *> - if (json["body"] is Map<*, *>) { - body = json["body"] as Map<*, *> - } else { - val bodyAsString = json["body"] as String - if (!isJSONRequired) { - body = mapOf( "result" to bodyAsString ) - } else { - body = JsonUtil.fromJson(bodyAsString, Map::class.java) - } - } - if (statusCode != 200) { - val exception = HTTPRequestFailedAtDestinationException(statusCode, body) - return@Thread deferred.reject(exception) - } - deferred.resolve(body) - } else { - if (statusCode != 200) { - val exception = HTTPRequestFailedAtDestinationException(statusCode, json) - return@Thread deferred.reject(exception) - } - deferred.resolve(json) - } - } catch (exception: Exception) { - deferred.reject(Exception("Invalid JSON: ${plaintext.toString(Charsets.UTF_8)}.")) - } - } catch (exception: Exception) { - deferred.reject(exception) - } - } catch (exception: Exception) { - deferred.reject(exception) - } - }.start() - }.fail { exception -> - deferred.reject(exception) - } - val promise = deferred.promise - promise.fail { exception -> - val path = paths.firstOrNull { it.contains(guardSnode) } - if (exception is HTTP.HTTPRequestFailedException) { - fun handleUnspecificError() { - if (path == null) { return } - var pathFailureCount = OnionRequestAPI.pathFailureCount[path] ?: 0 - pathFailureCount += 1 - if (pathFailureCount >= pathFailureThreshold) { - dropGuardSnode(guardSnode) - path.forEach { snode -> - @Suppress("ThrowableNotThrown") - SnodeAPI.shared.handleSnodeError(exception.statusCode, exception.json, snode, null) // Intentionally don't throw - } - dropPath(path) - } else { - OnionRequestAPI.pathFailureCount[path] = pathFailureCount - } - } - val json = exception.json - val message = json?.get("result") as? String - val prefix = "Next node not found: " - if (message != null && message.startsWith(prefix)) { - val ed25519PublicKey = message.substringAfter(prefix) - val snode = path?.firstOrNull { it.publicKeySet!!.ed25519Key == ed25519PublicKey } - if (snode != null) { - var snodeFailureCount = OnionRequestAPI.snodeFailureCount[snode] ?: 0 - snodeFailureCount += 1 - if (snodeFailureCount >= snodeFailureThreshold) { - @Suppress("ThrowableNotThrown") - SnodeAPI.shared.handleSnodeError(exception.statusCode, json, snode, null) // Intentionally don't throw - try { - dropSnode(snode) - } catch (exception: Exception) { - handleUnspecificError() - } - } else { - OnionRequestAPI.snodeFailureCount[snode] = snodeFailureCount - } - } else { - handleUnspecificError() - } - } else if (message == "Loki Server error") { - // Do nothing - } else { - handleUnspecificError() - } - } - } - return promise - } - // endregion - - // region Internal API - /** - * Sends an onion request to `snode`. Builds new paths as needed. - */ - internal fun sendOnionRequest(method: Snode.Method, parameters: Map<*, *>, snode: Snode, publicKey: String): Promise, Exception> { - val payload = mapOf( "method" to method.rawValue, "params" to parameters ) - return sendOnionRequest(Destination.Snode(snode), payload).recover { exception -> - @Suppress("NAME_SHADOWING") val exception = exception as? HTTPRequestFailedAtDestinationException ?: throw exception - throw SnodeAPI.shared.handleSnodeError(exception.statusCode, exception.json, snode, publicKey) - } - } - - /** - * Sends an onion request to `server`. Builds new paths as needed. - * - * `publicKey` is the hex encoded public key of the user the call is associated with. This is needed for swarm cache maintenance. - */ - public fun sendOnionRequest(request: Request, server: String, x25519PublicKey: String, target: String = "/loki/v3/lsrpc", isJSONRequired: Boolean = true): Promise, Exception> { - val headers = request.getHeadersForOnionRequest() - val url = request.url() - val urlAsString = url.toString() - val host = url.host() - val endpoint = when { - server.count() < urlAsString.count() -> urlAsString.substringAfter("$server/") - else -> "" - } - val body = request.getBodyForOnionRequest() ?: "null" - val payload = mapOf( - "body" to body, - "endpoint" to endpoint, - "method" to request.method(), - "headers" to headers - ) - val destination = Destination.Server(host, target, x25519PublicKey) - return sendOnionRequest(destination, payload, isJSONRequired).recover { exception -> - Log.d("Loki", "Couldn't reach server: $urlAsString due to error: $exception.") - throw exception - } - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestEncryption.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestEncryption.kt deleted file mode 100644 index d6a46f613..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/onionrequests/OnionRequestEncryption.kt +++ /dev/null @@ -1,94 +0,0 @@ -package org.whispersystems.signalservice.loki.api.onionrequests - -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.deferred -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.utilities.EncryptionResult -import org.whispersystems.signalservice.loki.api.utilities.EncryptionUtilities -import org.whispersystems.signalservice.loki.utilities.toHexString -import java.nio.Buffer -import java.nio.ByteBuffer -import java.nio.ByteOrder - -object OnionRequestEncryption { - - internal fun encode(ciphertext: ByteArray, json: Map<*, *>): ByteArray { - // The encoding of V2 onion requests looks like: | 4 bytes: size N of ciphertext | N bytes: ciphertext | json as utf8 | - val jsonAsData = JsonUtil.toJson(json).toByteArray() - val ciphertextSize = ciphertext.size - val buffer = ByteBuffer.allocate(Int.SIZE_BYTES) - buffer.order(ByteOrder.LITTLE_ENDIAN) - buffer.putInt(ciphertextSize) - val ciphertextSizeAsData = ByteArray(buffer.capacity()) - // Casting here avoids an issue where this gets compiled down to incorrect byte code. See - // https://github.com/eclipse/jetty.project/issues/3244 for more info - (buffer as Buffer).position(0) - buffer.get(ciphertextSizeAsData) - return ciphertextSizeAsData + ciphertext + jsonAsData - } - - /** - * Encrypts `payload` for `destination` and returns the result. Use this to build the core of an onion request. - */ - internal fun encryptPayloadForDestination(payload: Map<*, *>, destination: OnionRequestAPI.Destination): Promise { - val deferred = deferred() - Thread { - try { - // Wrapping isn't needed for file server or open group onion requests - when (destination) { - is OnionRequestAPI.Destination.Snode -> { - val snodeX25519PublicKey = destination.snode.publicKeySet!!.x25519Key - val payloadAsData = JsonUtil.toJson(payload).toByteArray() - val plaintext = encode(payloadAsData, mapOf( "headers" to "" )) - val result = EncryptionUtilities.encryptForX25519PublicKey(plaintext, snodeX25519PublicKey) - deferred.resolve(result) - } - is OnionRequestAPI.Destination.Server -> { - val plaintext = JsonUtil.toJson(payload).toByteArray() - val result = EncryptionUtilities.encryptForX25519PublicKey(plaintext, destination.x25519PublicKey) - deferred.resolve(result) - } - } - } catch (exception: Exception) { - deferred.reject(exception) - } - }.start() - return deferred.promise - } - - /** - * Encrypts the previous encryption result (i.e. that of the hop after this one) for this hop. Use this to build the layers of an onion request. - */ - internal fun encryptHop(lhs: OnionRequestAPI.Destination, rhs: OnionRequestAPI.Destination, previousEncryptionResult: EncryptionResult): Promise { - val deferred = deferred() - Thread { - try { - val payload: MutableMap - when (rhs) { - is OnionRequestAPI.Destination.Snode -> { - payload = mutableMapOf( "destination" to rhs.snode.publicKeySet!!.ed25519Key ) - } - is OnionRequestAPI.Destination.Server -> { - payload = mutableMapOf( "host" to rhs.host, "target" to rhs.target, "method" to "POST" ) - } - } - payload["ephemeral_key"] = previousEncryptionResult.ephemeralPublicKey.toHexString() - val x25519PublicKey: String - when (lhs) { - is OnionRequestAPI.Destination.Snode -> { - x25519PublicKey = lhs.snode.publicKeySet!!.x25519Key - } - is OnionRequestAPI.Destination.Server -> { - x25519PublicKey = lhs.x25519PublicKey - } - } - val plaintext = encode(previousEncryptionResult.ciphertext, payload) - val result = EncryptionUtilities.encryptForX25519PublicKey(plaintext, x25519PublicKey) - deferred.resolve(result) - } catch (exception: Exception) { - deferred.reject(exception) - } - }.start() - return deferred.promise - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChat.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChat.kt deleted file mode 100644 index 70c938f0e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChat.kt +++ /dev/null @@ -1,37 +0,0 @@ -package org.whispersystems.signalservice.loki.api.opengroups - -import org.whispersystems.signalservice.internal.util.JsonUtil - -public data class PublicChat( - public val channel: Long, - private val serverURL: String, - public val displayName: String, - public val isDeletable: Boolean -) { - public val server get() = serverURL.toLowerCase() - public val id get() = getId(channel, server) - - companion object { - - @JvmStatic fun getId(channel: Long, server: String): String { - return "$server.$channel" - } - - @JvmStatic fun fromJSON(jsonAsString: String): PublicChat? { - try { - val json = JsonUtil.fromJson(jsonAsString) - val channel = json.get("channel").asLong() - val server = json.get("server").asText().toLowerCase() - val displayName = json.get("displayName").asText() - val isDeletable = json.get("isDeletable").asBoolean() - return PublicChat(channel, server, displayName, isDeletable) - } catch (e: Exception) { - return null - } - } - } - - public fun toJSON(): Map { - return mapOf( "channel" to channel, "server" to server, "displayName" to displayName, "isDeletable" to isDeletable ) - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatAPI.kt deleted file mode 100644 index 0641d32dc..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatAPI.kt +++ /dev/null @@ -1,378 +0,0 @@ -package org.whispersystems.signalservice.loki.api.opengroups - -import nl.komponents.kovenant.Kovenant -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.deferred -import nl.komponents.kovenant.functional.map -import nl.komponents.kovenant.then -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.internal.util.Hex -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.api.LokiDotNetAPI -import org.whispersystems.signalservice.loki.api.SnodeAPI -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.database.LokiOpenGroupDatabaseProtocol -import org.whispersystems.signalservice.loki.database.LokiUserDatabaseProtocol -import org.whispersystems.signalservice.loki.utilities.DownloadUtilities -import org.whispersystems.signalservice.loki.utilities.createContext -import org.whispersystems.signalservice.loki.utilities.retryIfNeeded -import java.io.ByteArrayOutputStream -import java.text.SimpleDateFormat -import java.util.* - -class PublicChatAPI(userPublicKey: String, private val userPrivateKey: ByteArray, private val apiDatabase: LokiAPIDatabaseProtocol, - private val userDatabase: LokiUserDatabaseProtocol, private val openGroupDatabase: LokiOpenGroupDatabaseProtocol) : LokiDotNetAPI(userPublicKey, userPrivateKey, apiDatabase) { - - companion object { - private val moderators: HashMap>> = hashMapOf() // Server URL to (channel ID to set of moderator IDs) - val sharedContext = Kovenant.createContext("LokiPublicChatAPISharedContext") - - // region Settings - private val fallbackBatchCount = 64 - private val maxRetryCount = 8 - // endregion - - // region Convenience - private val channelInfoType = "net.patter-app.settings" - private val attachmentType = "net.app.core.oembed" - @JvmStatic - public val publicChatMessageType = "network.loki.messenger.publicChat" - @JvmStatic - public val profilePictureType = "network.loki.messenger.avatar" - - fun getDefaultChats(): List { - return listOf() // Don't auto-join any open groups right now - } - - public fun isUserModerator(hexEncodedPublicKey: String, channel: Long, server: String): Boolean { - if (moderators[server] != null && moderators[server]!![channel] != null) { - return moderators[server]!![channel]!!.contains(hexEncodedPublicKey) - } - return false - } - // endregion - } - - // region Public API - public fun getMessages(channel: Long, server: String): Promise, Exception> { - Log.d("Loki", "Getting messages for open group with ID: $channel on server: $server.") - val parameters = mutableMapOf( "include_annotations" to 1 ) - val lastMessageServerID = apiDatabase.getLastMessageServerID(channel, server) - if (lastMessageServerID != null) { - parameters["since_id"] = lastMessageServerID - } else { - parameters["count"] = fallbackBatchCount - parameters["include_deleted"] = 0 - } - return execute(HTTPVerb.GET, server, "channels/$channel/messages", parameters = parameters).then(sharedContext) { json -> - try { - val data = json["data"] as List> - val messages = data.mapNotNull { message -> - try { - val isDeleted = message["is_deleted"] as? Boolean ?: false - if (isDeleted) { return@mapNotNull null } - // Ignore messages without annotations - if (message["annotations"] == null) { return@mapNotNull null } - val annotation = (message["annotations"] as List>).find { - ((it["type"] as? String ?: "") == publicChatMessageType) && it["value"] != null - } ?: return@mapNotNull null - val value = annotation["value"] as Map<*, *> - val serverID = message["id"] as? Long ?: (message["id"] as? Int)?.toLong() ?: (message["id"] as String).toLong() - val user = message["user"] as Map<*, *> - val publicKey = user["username"] as String - val displayName = user["name"] as? String ?: "Anonymous" - var profilePicture: PublicChatMessage.ProfilePicture? = null - if (user["annotations"] != null) { - val profilePictureAnnotation = (user["annotations"] as List>).find { - ((it["type"] as? String ?: "") == profilePictureType) && it["value"] != null - } - val profilePictureAnnotationValue = profilePictureAnnotation?.get("value") as? Map<*, *> - if (profilePictureAnnotationValue != null && profilePictureAnnotationValue["profileKey"] != null && profilePictureAnnotationValue["url"] != null) { - try { - val profileKey = Base64.decode(profilePictureAnnotationValue["profileKey"] as String) - val url = profilePictureAnnotationValue["url"] as String - profilePicture = PublicChatMessage.ProfilePicture(profileKey, url) - } catch (e: Exception) {} - } - } - @Suppress("NAME_SHADOWING") val body = message["text"] as String - val timestamp = value["timestamp"] as? Long ?: (value["timestamp"] as? Int)?.toLong() ?: (value["timestamp"] as String).toLong() - var quote: PublicChatMessage.Quote? = null - if (value["quote"] != null) { - val replyTo = message["reply_to"] as? Long ?: (message["reply_to"] as? Int)?.toLong() ?: (message["reply_to"] as String).toLong() - val quoteAnnotation = value["quote"] as? Map<*, *> - val quoteTimestamp = quoteAnnotation?.get("id") as? Long ?: (quoteAnnotation?.get("id") as? Int)?.toLong() ?: (quoteAnnotation?.get("id") as? String)?.toLong() ?: 0L - val author = quoteAnnotation?.get("author") as? String - val text = quoteAnnotation?.get("text") as? String - quote = if (quoteTimestamp > 0L && author != null && text != null) PublicChatMessage.Quote(quoteTimestamp, author, text, replyTo) else null - } - val attachmentsAsJSON = (message["annotations"] as List>).filter { - ((it["type"] as? String ?: "") == attachmentType) && it["value"] != null - } - val attachments = attachmentsAsJSON.mapNotNull { it["value"] as? Map<*, *> }.mapNotNull { attachmentAsJSON -> - try { - val kindAsString = attachmentAsJSON["lokiType"] as String - val kind = PublicChatMessage.Attachment.Kind.values().first { it.rawValue == kindAsString } - val id = attachmentAsJSON["id"] as? Long ?: (attachmentAsJSON["id"] as? Int)?.toLong() ?: (attachmentAsJSON["id"] as String).toLong() - val contentType = attachmentAsJSON["contentType"] as String - val size = attachmentAsJSON["size"] as? Int ?: (attachmentAsJSON["size"] as? Long)?.toInt() ?: (attachmentAsJSON["size"] as String).toInt() - val fileName = attachmentAsJSON["fileName"] as String - val flags = 0 - val url = attachmentAsJSON["url"] as String - val caption = attachmentAsJSON["caption"] as? String - val linkPreviewURL = attachmentAsJSON["linkPreviewUrl"] as? String - val linkPreviewTitle = attachmentAsJSON["linkPreviewTitle"] as? String - if (kind == PublicChatMessage.Attachment.Kind.LinkPreview && (linkPreviewURL == null || linkPreviewTitle == null)) { - null - } else { - PublicChatMessage.Attachment(kind, server, id, contentType, size, fileName, flags, 0, 0, caption, url, linkPreviewURL, linkPreviewTitle) - } - } catch (e: Exception) { - Log.d("Loki","Couldn't parse attachment due to error: $e.") - null - } - } - // Set the last message server ID here to avoid the situation where a message doesn't have a valid signature and this function is called over and over - @Suppress("NAME_SHADOWING") val lastMessageServerID = apiDatabase.getLastMessageServerID(channel, server) - if (serverID > lastMessageServerID ?: 0) { apiDatabase.setLastMessageServerID(channel, server, serverID) } - val hexEncodedSignature = value["sig"] as String - val signatureVersion = value["sigver"] as? Long ?: (value["sigver"] as? Int)?.toLong() ?: (value["sigver"] as String).toLong() - val signature = PublicChatMessage.Signature(Hex.fromStringCondensed(hexEncodedSignature), signatureVersion) - val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US) - format.timeZone = TimeZone.getTimeZone("GMT") - val dateAsString = message["created_at"] as String - val serverTimestamp = format.parse(dateAsString).time - // Verify the message - val groupMessage = PublicChatMessage(serverID, publicKey, displayName, body, timestamp, publicChatMessageType, quote, attachments, profilePicture, signature, serverTimestamp) - if (groupMessage.hasValidSignature()) groupMessage else null - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse message for open group with ID: $channel on server: $server from: ${JsonUtil.toJson(message)}. Exception: ${exception.message}") - return@mapNotNull null - } - }.sortedBy { it.serverTimestamp } - messages - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse messages for open group with ID: $channel on server: $server.") - throw exception - } - } - } - - public fun getDeletedMessageServerIDs(channel: Long, server: String): Promise, Exception> { - Log.d("Loki", "Getting deleted messages for open group with ID: $channel on server: $server.") - val parameters = mutableMapOf() - val lastDeletionServerID = apiDatabase.getLastDeletionServerID(channel, server) - if (lastDeletionServerID != null) { - parameters["since_id"] = lastDeletionServerID - } else { - parameters["count"] = fallbackBatchCount - } - return execute(HTTPVerb.GET, server, "loki/v1/channel/$channel/deletes", parameters = parameters).then(sharedContext) { json -> - try { - val deletedMessageServerIDs = (json["data"] as List>).mapNotNull { deletion -> - try { - val serverID = deletion["id"] as? Long ?: (deletion["id"] as? Int)?.toLong() ?: (deletion["id"] as String).toLong() - val messageServerID = deletion["message_id"] as? Long ?: (deletion["message_id"] as? Int)?.toLong() ?: (deletion["message_id"] as String).toLong() - @Suppress("NAME_SHADOWING") val lastDeletionServerID = apiDatabase.getLastDeletionServerID(channel, server) - if (serverID > (lastDeletionServerID ?: 0)) { apiDatabase.setLastDeletionServerID(channel, server, serverID) } - messageServerID - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse deleted message for open group with ID: $channel on server: $server. Exception: ${exception.message}") - return@mapNotNull null - } - } - deletedMessageServerIDs - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse deleted messages for open group with ID: $channel on server: $server.") - throw exception - } - } - } - - public fun sendMessage(message: PublicChatMessage, channel: Long, server: String): Promise { - val deferred = deferred() - Thread { - val signedMessage = message.sign(userPrivateKey) - if (signedMessage == null) { - deferred.reject(SnodeAPI.Error.MessageSigningFailed) - } else { - retryIfNeeded(maxRetryCount) { - Log.d("Loki", "Sending message to open group with ID: $channel on server: $server.") - val parameters = signedMessage.toJSON() - execute(HTTPVerb.POST, server, "channels/$channel/messages", parameters = parameters).then(sharedContext) { json -> - try { - val data = json["data"] as Map<*, *> - val serverID = (data["id"] as? Long) ?: (data["id"] as? Int)?.toLong() ?: (data["id"] as String).toLong() - val displayName = userDatabase.getDisplayName(userPublicKey) ?: "Anonymous" - val text = data["text"] as String - val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US) - format.timeZone = TimeZone.getTimeZone("GMT") - val dateAsString = data["created_at"] as String - val timestamp = format.parse(dateAsString).time - @Suppress("NAME_SHADOWING") val message = PublicChatMessage(serverID, userPublicKey, displayName, text, timestamp, publicChatMessageType, message.quote, message.attachments, null, signedMessage.signature, timestamp) - message - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse message for open group with ID: $channel on server: $server.") - throw exception - } - } - }.success { - deferred.resolve(it) - }.fail { - deferred.reject(it) - } - } - }.start() - return deferred.promise - } - - public fun deleteMessage(messageServerID: Long, channel: Long, server: String, isSentByUser: Boolean): Promise { - return retryIfNeeded(maxRetryCount) { - val isModerationRequest = !isSentByUser - Log.d("Loki", "Deleting message with ID: $messageServerID from open group with ID: $channel on server: $server (isModerationRequest = $isModerationRequest).") - val endpoint = if (isSentByUser) "channels/$channel/messages/$messageServerID" else "loki/v1/moderation/message/$messageServerID" - execute(HTTPVerb.DELETE, server, endpoint, isJSONRequired = false).then { - Log.d("Loki", "Deleted message with ID: $messageServerID from open group with ID: $channel on server: $server.") - messageServerID - } - } - } - - public fun deleteMessages(messageServerIDs: List, channel: Long, server: String, isSentByUser: Boolean): Promise, Exception> { - return retryIfNeeded(maxRetryCount) { - val isModerationRequest = !isSentByUser - val parameters = mapOf( "ids" to messageServerIDs.joinToString(",") ) - Log.d("Loki", "Deleting messages with IDs: ${messageServerIDs.joinToString()} from open group with ID: $channel on server: $server (isModerationRequest = $isModerationRequest).") - val endpoint = if (isSentByUser) "loki/v1/messages" else "loki/v1/moderation/messages" - execute(HTTPVerb.DELETE, server, endpoint, parameters = parameters, isJSONRequired = false).then { json -> - Log.d("Loki", "Deleted messages with IDs: $messageServerIDs from open group with ID: $channel on server: $server.") - messageServerIDs - } - } - } - - public fun getModerators(channel: Long, server: String): Promise, Exception> { - return execute(HTTPVerb.GET, server, "loki/v1/channel/$channel/get_moderators").then(sharedContext) { json -> - try { - @Suppress("UNCHECKED_CAST") val moderators = json["moderators"] as? List - val moderatorsAsSet = moderators.orEmpty().toSet() - if (Companion.moderators[server] != null) { - Companion.moderators[server]!![channel] = moderatorsAsSet - } else { - Companion.moderators[server] = hashMapOf( channel to moderatorsAsSet ) - } - moderatorsAsSet - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse moderators for open group with ID: $channel on server: $server.") - throw exception - } - } - } - - public fun getChannelInfo(channel: Long, server: String): Promise { - return retryIfNeeded(maxRetryCount) { - val parameters = mapOf( "include_annotations" to 1 ) - execute(HTTPVerb.GET, server, "/channels/$channel", parameters = parameters).then(sharedContext) { json -> - try { - val data = json["data"] as Map<*, *> - val annotations = data["annotations"] as List> - val annotation = annotations.find { (it["type"] as? String ?: "") == channelInfoType } ?: throw SnodeAPI.Error.ParsingFailed - val info = annotation["value"] as Map<*, *> - val displayName = info["name"] as String - val countInfo = data["counts"] as Map<*, *> - val memberCount = countInfo["subscribers"] as? Int ?: (countInfo["subscribers"] as? Long)?.toInt() ?: (countInfo["subscribers"] as String).toInt() - val profilePictureURL = info["avatar"] as String - val publicChatInfo = PublicChatInfo(displayName, profilePictureURL, memberCount) - apiDatabase.setUserCount(channel, server, memberCount) - publicChatInfo - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse info for open group with ID: $channel on server: $server.") - throw exception - } - } - } - } - - public fun updateProfileIfNeeded(channel: Long, server: String, groupID: String, info: PublicChatInfo, isForcedUpdate: Boolean) { - apiDatabase.setUserCount(channel, server, info.memberCount) - openGroupDatabase.updateTitle(groupID, info.displayName) - // Download and update profile picture if needed - val oldProfilePictureURL = apiDatabase.getOpenGroupProfilePictureURL(channel, server) - if (isForcedUpdate || oldProfilePictureURL != info.profilePictureURL) { - val profilePictureAsByteArray = downloadOpenGroupProfilePicture(server, info.profilePictureURL) ?: return - openGroupDatabase.updateProfilePicture(groupID, profilePictureAsByteArray) - apiDatabase.setOpenGroupProfilePictureURL(channel, server, info.profilePictureURL) - } - } - - public fun downloadOpenGroupProfilePicture(server: String, endpoint: String): ByteArray? { - val url = "${server.removeSuffix("/")}/${endpoint.removePrefix("/")}" - Log.d("Loki", "Downloading open group profile picture from \"$url\".") - val outputStream = ByteArrayOutputStream() - try { - DownloadUtilities.downloadFile(outputStream, url, FileServerAPI.maxFileSize, null) - Log.d("Loki", "Open group profile picture was successfully loaded from \"$url\"") - return outputStream.toByteArray() - } catch (e: Exception) { - Log.d("Loki", "Failed to download open group profile picture from \"$url\" due to error: $e.") - return null - } finally { - outputStream.close() - } - } - - public fun join(channel: Long, server: String): Promise { - return retryIfNeeded(maxRetryCount) { - execute(HTTPVerb.POST, server, "/channels/$channel/subscribe").then { - Log.d("Loki", "Joined channel with ID: $channel on server: $server.") - } - } - } - - public fun leave(channel: Long, server: String): Promise { - return retryIfNeeded(maxRetryCount) { - execute(HTTPVerb.DELETE, server, "/channels/$channel/subscribe").then { - Log.d("Loki", "Left channel with ID: $channel on server: $server.") - } - } - } - - public fun getDisplayNames(publicKeys: Set, server: String): Promise, Exception> { - return getUserProfiles(publicKeys, server, false).map(sharedContext) { json -> - val mapping = mutableMapOf() - for (user in json) { - if (user["username"] != null) { - val publicKey = user["username"] as String - val displayName = user["name"] as? String ?: "Anonymous" - mapping[publicKey] = displayName - } - } - mapping - } - } - - public fun setDisplayName(newDisplayName: String?, server: String): Promise { - Log.d("Loki", "Updating display name on server: $server.") - val parameters = mapOf( "name" to (newDisplayName ?: "") ) - return execute(HTTPVerb.PATCH, server, "users/me", parameters = parameters).map { Unit } - } - - public fun setProfilePicture(server: String, profileKey: ByteArray, url: String?): Promise { - return setProfilePicture(server, Base64.encodeBytes(profileKey), url) - } - - public fun setProfilePicture(server: String, profileKey: String, url: String?): Promise { - Log.d("Loki", "Updating profile picture on server: $server.") - val value = when (url) { - null -> null - else -> mapOf( "profileKey" to profileKey, "url" to url ) - } - // TODO: This may actually completely replace the annotations, have to double check it - return setSelfAnnotation(server, profilePictureType, value).map { Unit }.fail { - Log.d("Loki", "Failed to update profile picture due to error: $it.") - } - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatInfo.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatInfo.kt deleted file mode 100644 index 6b307e4b4..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatInfo.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.whispersystems.signalservice.loki.api.opengroups - -public data class PublicChatInfo ( - public val displayName: String, - public val profilePictureURL: String, - public val memberCount: Int -) diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatMessage.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatMessage.kt deleted file mode 100644 index 5beb48703..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/opengroups/PublicChatMessage.kt +++ /dev/null @@ -1,178 +0,0 @@ -package org.whispersystems.signalservice.loki.api.opengroups - -import org.whispersystems.curve25519.Curve25519 -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.Hex -import org.whispersystems.signalservice.loki.utilities.removing05PrefixIfNeeded - -public data class PublicChatMessage( - public val serverID: Long?, - public val senderPublicKey: String, - public val displayName: String, - public val body: String, - public val timestamp: Long, - public val type: String, - public val quote: Quote?, - public val attachments: List, - public val profilePicture: ProfilePicture?, - public val signature: Signature?, - public val serverTimestamp: Long -) { - - // region Settings - companion object { - private val curve = Curve25519.getInstance(Curve25519.BEST) - private val signatureVersion: Long = 1 - private val attachmentType = "net.app.core.oembed" - } - // endregion - - // region Types - public data class ProfilePicture( - public val profileKey: ByteArray, - public val url: String - ) - - public data class Quote( - public val quotedMessageTimestamp: Long, - public val quoteePublicKey: String, - public val quotedMessageBody: String, - public val quotedMessageServerID: Long? = null - ) - - public data class Signature( - public val data: ByteArray, - public val version: Long - ) - - public data class Attachment( - public val kind: Kind, - public val server: String, - public val serverID: Long, - public val contentType: String, - public val size: Int, - public val fileName: String, - public val flags: Int, - public val width: Int, - public val height: Int, - public val caption: String?, - public val url: String, - /** - Guaranteed to be non-`nil` if `kind` is `LinkPreview`. - */ - public val linkPreviewURL: String?, - /** - Guaranteed to be non-`nil` if `kind` is `LinkPreview`. - */ - public val linkPreviewTitle: String? - ) { - public val dotNetAPIType = when { - contentType.startsWith("image") -> "photo" - contentType.startsWith("video") -> "video" - contentType.startsWith("audio") -> "audio" - else -> "other" - } - - public enum class Kind(val rawValue: String) { - Attachment("attachment"), LinkPreview("preview") - } - } - // endregion - - // region Initialization - constructor(hexEncodedPublicKey: String, displayName: String, body: String, timestamp: Long, type: String, quote: Quote?, attachments: List) - : this(null, hexEncodedPublicKey, displayName, body, timestamp, type, quote, attachments, null, null, 0) - // endregion - - // region Crypto - internal fun sign(privateKey: ByteArray): PublicChatMessage? { - val data = getValidationData(signatureVersion) - if (data == null) { - Log.d("Loki", "Failed to sign public chat message.") - return null - } - try { - val signatureData = curve.calculateSignature(privateKey, data) - val signature = Signature(signatureData, signatureVersion) - return copy(signature = signature) - } catch (e: Exception) { - Log.d("Loki", "Failed to sign public chat message due to error: ${e.message}.") - return null - } - } - - internal fun hasValidSignature(): Boolean { - if (signature == null) { return false } - val data = getValidationData(signature.version) ?: return false - val publicKey = Hex.fromStringCondensed(senderPublicKey.removing05PrefixIfNeeded()) - try { - return curve.verifySignature(publicKey, data, signature.data) - } catch (e: Exception) { - Log.d("Loki", "Failed to verify public chat message due to error: ${e.message}.") - return false - } - } - // endregion - - // region Parsing - internal fun toJSON(): Map { - val value = mutableMapOf( "timestamp" to timestamp ) - if (quote != null) { - value["quote"] = mapOf( "id" to quote.quotedMessageTimestamp, "author" to quote.quoteePublicKey, "text" to quote.quotedMessageBody ) - } - if (signature != null) { - value["sig"] = Hex.toStringCondensed(signature.data) - value["sigver"] = signature.version - } - val annotation = mapOf( "type" to type, "value" to value ) - val annotations = mutableListOf( annotation ) - attachments.forEach { attachment -> - val attachmentValue = mutableMapOf( - // Fields required by the .NET API - "version" to 1, - "type" to attachment.dotNetAPIType, - // Custom fields - "lokiType" to attachment.kind.rawValue, - "server" to attachment.server, - "id" to attachment.serverID, - "contentType" to attachment.contentType, - "size" to attachment.size, - "fileName" to attachment.fileName, - "flags" to attachment.flags, - "width" to attachment.width, - "height" to attachment.height, - "url" to attachment.url - ) - if (attachment.caption != null) { attachmentValue["caption"] = attachment.caption } - if (attachment.linkPreviewURL != null) { attachmentValue["linkPreviewUrl"] = attachment.linkPreviewURL } - if (attachment.linkPreviewTitle != null) { attachmentValue["linkPreviewTitle"] = attachment.linkPreviewTitle } - val attachmentAnnotation = mapOf( "type" to attachmentType, "value" to attachmentValue ) - annotations.add(attachmentAnnotation) - } - val result = mutableMapOf( "text" to body, "annotations" to annotations ) - if (quote?.quotedMessageServerID != null) { - result["reply_to"] = quote.quotedMessageServerID - } - return result - } - // endregion - - // region Convenience - private fun getValidationData(signatureVersion: Long): ByteArray? { - var string = "${body.trim()}$timestamp" - if (quote != null) { - string += "${quote.quotedMessageTimestamp}${quote.quoteePublicKey}${quote.quotedMessageBody.trim()}" - if (quote.quotedMessageServerID != null) { - string += "${quote.quotedMessageServerID}" - } - } - string += attachments.sortedBy { it.serverID }.map { it.serverID }.joinToString("") - string += "$signatureVersion" - try { - return string.toByteArray(Charsets.UTF_8) - } catch (exception: Exception) { - return null - } - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPI.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPI.kt deleted file mode 100644 index 7cff76a72..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPI.kt +++ /dev/null @@ -1,70 +0,0 @@ -package org.whispersystems.signalservice.loki.api.shelved.p2p - -import java.util.* -import kotlin.concurrent.timer - -class LokiP2PAPI private constructor(private val userHexEncodedPublicKey: String, private val onPeerConnectionStatusChanged: (Boolean, String) -> Void, private val delegate: LokiP2PAPIDelegate) { - internal val peerInfo = mutableMapOf() - private val pingIntervals = mutableMapOf() - private val timers = mutableMapOf() - - // region Settings - /** - * The pinging interval for offline users. - */ - private val offlinePingInterval = 2 * 60 * 1000 - // endregion - - // region Types - internal data class PeerInfo(val contactHexEncodedPublicKey: String, val address: String, val port: Int, val isOnline: Boolean) - // endregion - - // region Initialization - companion object { - private var isConfigured = false - - lateinit var shared: LokiP2PAPI - - /** - * Must be called before `LokiAPI` is used. - */ - fun configure(userHexEncodedPublicKey: String, onPeerConnectionStatusChanged: (Boolean, String) -> Void, delegate: LokiP2PAPIDelegate) { - if (isConfigured) { return } - shared = LokiP2PAPI(userHexEncodedPublicKey, onPeerConnectionStatusChanged, delegate) - isConfigured = true - } - } - // endregion - - // region Public API - fun handlePeerInfoReceived(contactHexEncodedPublicKey: String, address: String, port: Int, isP2PMessage: Boolean) { - // Avoid peers pinging eachother at the same time by staggering their timers - val pingInterval = if (contactHexEncodedPublicKey < this.userHexEncodedPublicKey) 1 * 60 else 2 * 60 - pingIntervals[contactHexEncodedPublicKey] = pingInterval - val oldPeerInfo = peerInfo[contactHexEncodedPublicKey] - val newPeerInfo = PeerInfo(contactHexEncodedPublicKey, address, port, false) - peerInfo[contactHexEncodedPublicKey] = newPeerInfo - // Ping the peer back and mark them online based on the result of that call if either: - // • We didn't know about the peer at all, i.e. no P2P connection was established yet during this session - // • The message wasn't a P2P message, i.e. no P2P connection was established yet during this session or it was dropped for some reason - // • The peer was marked offline before; test the new P2P connection - // • The peer's address and/or port changed; test the new P2P connection - if (oldPeerInfo == null || !isP2PMessage || !oldPeerInfo.isOnline || oldPeerInfo.address != address || oldPeerInfo.port != port) { - delegate.ping(contactHexEncodedPublicKey) - } else { - mark(true, contactHexEncodedPublicKey) - } - } - - fun mark(isOnline: Boolean, contactHexEncodedPublicKey: String) { - val oldTimer = timers[contactHexEncodedPublicKey] - oldTimer?.cancel() - val pingInterval = if (isOnline) { pingIntervals[contactHexEncodedPublicKey]!! } else { offlinePingInterval } - val newTimer = timer(period = pingInterval.toLong()) { delegate.ping(contactHexEncodedPublicKey) } - timers[contactHexEncodedPublicKey] = newTimer - val updatedPeerInfo = peerInfo[contactHexEncodedPublicKey]!!.copy(isOnline = isOnline) - peerInfo[contactHexEncodedPublicKey] = updatedPeerInfo - onPeerConnectionStatusChanged(isOnline, contactHexEncodedPublicKey) - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPIDelegate.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPIDelegate.kt deleted file mode 100644 index dfbaa676e..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/shelved/p2p/LokiP2PAPIDelegate.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.whispersystems.signalservice.loki.api.shelved.p2p - -interface LokiP2PAPIDelegate { - - fun ping(contactHexEncodedPublicKey: String) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/DecryptionUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/DecryptionUtilities.kt deleted file mode 100644 index 4e9306f10..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/DecryptionUtilities.kt +++ /dev/null @@ -1,19 +0,0 @@ -package org.whispersystems.signalservice.loki.api.utilities - -import javax.crypto.Cipher -import javax.crypto.spec.GCMParameterSpec -import javax.crypto.spec.SecretKeySpec - -internal object DecryptionUtilities { - - /** - * Sync. Don't call from the main thread. - */ - internal fun decryptUsingAESGCM(ivAndCiphertext: ByteArray, symmetricKey: ByteArray): ByteArray { - val iv = ivAndCiphertext.sliceArray(0 until EncryptionUtilities.ivSize) - val ciphertext = ivAndCiphertext.sliceArray(EncryptionUtilities.ivSize until ivAndCiphertext.count()) - val cipher = Cipher.getInstance("AES/GCM/NoPadding") - cipher.init(Cipher.DECRYPT_MODE, SecretKeySpec(symmetricKey, "AES"), GCMParameterSpec(EncryptionUtilities.gcmTagSize, iv)) - return cipher.doFinal(ciphertext) - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/EncryptionUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/EncryptionUtilities.kt deleted file mode 100644 index b3d86c7d5..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/EncryptionUtilities.kt +++ /dev/null @@ -1,45 +0,0 @@ -package org.whispersystems.signalservice.loki.api.utilities - -import org.whispersystems.curve25519.Curve25519 -import org.whispersystems.libsignal.util.ByteUtil -import org.whispersystems.libsignal.util.Hex -import org.whispersystems.signalservice.internal.util.Util -import javax.crypto.Cipher -import javax.crypto.Mac -import javax.crypto.spec.GCMParameterSpec -import javax.crypto.spec.SecretKeySpec - -internal data class EncryptionResult( - internal val ciphertext: ByteArray, - internal val symmetricKey: ByteArray, - internal val ephemeralPublicKey: ByteArray -) - -internal object EncryptionUtilities { - internal val gcmTagSize = 128 - internal val ivSize = 12 - - /** - * Sync. Don't call from the main thread. - */ - internal fun encryptUsingAESGCM(plaintext: ByteArray, symmetricKey: ByteArray): ByteArray { - val iv = Util.getSecretBytes(ivSize) - val cipher = Cipher.getInstance("AES/GCM/NoPadding") - cipher.init(Cipher.ENCRYPT_MODE, SecretKeySpec(symmetricKey, "AES"), GCMParameterSpec(gcmTagSize, iv)) - return ByteUtil.combine(iv, cipher.doFinal(plaintext)) - } - - /** - * Sync. Don't call from the main thread. - */ - internal fun encryptForX25519PublicKey(plaintext: ByteArray, hexEncodedX25519PublicKey: String): EncryptionResult { - val x25519PublicKey = Hex.fromStringCondensed(hexEncodedX25519PublicKey) - val ephemeralKeyPair = Curve25519.getInstance(Curve25519.BEST).generateKeyPair() - val ephemeralSharedSecret = Curve25519.getInstance(Curve25519.BEST).calculateAgreement(x25519PublicKey, ephemeralKeyPair.privateKey) - val mac = Mac.getInstance("HmacSHA256") - mac.init(SecretKeySpec("LOKI".toByteArray(), "HmacSHA256")) - val symmetricKey = mac.doFinal(ephemeralSharedSecret) - val ciphertext = encryptUsingAESGCM(plaintext, symmetricKey) - return EncryptionResult(ciphertext, symmetricKey, ephemeralKeyPair.publicKey) - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/HTTP.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/HTTP.kt deleted file mode 100644 index c0e90f7c9..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/HTTP.kt +++ /dev/null @@ -1,110 +0,0 @@ -package org.whispersystems.signalservice.loki.api.utilities - -import okhttp3.* -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.JsonUtil -import java.security.SecureRandom -import java.security.cert.X509Certificate -import java.util.concurrent.TimeUnit -import javax.net.ssl.SSLContext -import javax.net.ssl.X509TrustManager - -object HTTP { - - private val seedNodeConnection by lazy { - OkHttpClient().newBuilder() - .connectTimeout(timeout, TimeUnit.SECONDS) - .readTimeout(timeout, TimeUnit.SECONDS) - .writeTimeout(timeout, TimeUnit.SECONDS) - .build() - } - - private val defaultConnection by lazy { - // Snode to snode communication uses self-signed certificates but clients can safely ignore this - val trustManager = object : X509TrustManager { - - override fun checkClientTrusted(chain: Array?, authorizationType: String?) { } - override fun checkServerTrusted(chain: Array?, authorizationType: String?) { } - override fun getAcceptedIssuers(): Array { - return arrayOf() - } - } - val sslContext = SSLContext.getInstance("SSL") - sslContext.init(null, arrayOf( trustManager ), SecureRandom()) - OkHttpClient().newBuilder() - .sslSocketFactory(sslContext.socketFactory, trustManager) - .hostnameVerifier { _, _ -> true } - .connectTimeout(timeout, TimeUnit.SECONDS) - .readTimeout(timeout, TimeUnit.SECONDS) - .writeTimeout(timeout, TimeUnit.SECONDS) - .build() - } - - private const val timeout: Long = 20 - - class HTTPRequestFailedException(val statusCode: Int, val json: Map<*, *>?) - : kotlin.Exception("HTTP request failed with status code $statusCode.") - - enum class Verb(val rawValue: String) { - GET("GET"), PUT("PUT"), POST("POST"), DELETE("DELETE") - } - - /** - * Sync. Don't call from the main thread. - */ - fun execute(verb: Verb, url: String, useSeedNodeConnection: Boolean = false): Map<*, *> { - return execute(verb = verb, url = url, body = null, useSeedNodeConnection = useSeedNodeConnection) - } - - /** - * Sync. Don't call from the main thread. - */ - fun execute(verb: Verb, url: String, parameters: Map?, useSeedNodeConnection: Boolean = false): Map<*, *> { - if (parameters != null) { - val body = JsonUtil.toJson(parameters).toByteArray() - return execute(verb = verb, url = url, body = body, useSeedNodeConnection = useSeedNodeConnection) - } else { - return execute(verb = verb, url = url, body = null, useSeedNodeConnection = useSeedNodeConnection) - } - } - - /** - * Sync. Don't call from the main thread. - */ - fun execute(verb: Verb, url: String, body: ByteArray?, useSeedNodeConnection: Boolean = false): Map<*, *> { - val request = Request.Builder().url(url) - when (verb) { - Verb.GET -> request.get() - Verb.PUT, Verb.POST -> { - if (body == null) { throw Exception("Invalid request body.") } - val contentType = MediaType.get("application/json; charset=utf-8") - @Suppress("NAME_SHADOWING") val body = RequestBody.create(contentType, body) - if (verb == Verb.PUT) request.put(body) else request.post(body) - } - Verb.DELETE -> request.delete() - } - lateinit var response: Response - try { - val connection = if (useSeedNodeConnection) seedNodeConnection else defaultConnection - response = connection.newCall(request.build()).execute() - } catch (exception: Exception) { - Log.d("Loki", "${verb.rawValue} request to $url failed due to error: ${exception.localizedMessage}.") - // Override the actual error so that we can correctly catch failed requests in OnionRequestAPI - throw HTTPRequestFailedException(0, null) - } - when (val statusCode = response.code()) { - 200 -> { - val bodyAsString = response.body()?.string() ?: throw Exception("An error occurred.") - try { - return JsonUtil.fromJson(bodyAsString, Map::class.java) - } catch (exception: Exception) { - return mapOf( "result" to bodyAsString) - } - } - else -> { - Log.d("Loki", "${verb.rawValue} request to $url failed with status code: $statusCode.") - throw HTTPRequestFailedException(statusCode, null) - } - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/OKHTTPUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/OKHTTPUtilities.kt deleted file mode 100644 index 745e0adc9..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/api/utilities/OKHTTPUtilities.kt +++ /dev/null @@ -1,49 +0,0 @@ -package org.whispersystems.signalservice.loki.api.utilities - -import okhttp3.MultipartBody -import okhttp3.Request -import okio.Buffer -import org.whispersystems.signalservice.internal.util.Base64 -import java.io.IOException -import java.util.* - -internal fun Request.getHeadersForOnionRequest(): Map { - val result = mutableMapOf() - val contentType = body()?.contentType() - if (contentType != null) { - result["content-type"] = contentType.toString() - } - val headers = headers() - for (name in headers.names()) { - val value = headers.get(name) - if (value != null) { - if (value.toLowerCase(Locale.US) == "true" || value.toLowerCase(Locale.US) == "false") { - result[name] = value.toBoolean() - } else if (value.toIntOrNull() != null) { - result[name] = value.toInt() - } else { - result[name] = value - } - } - } - return result -} - -internal fun Request.getBodyForOnionRequest(): Any? { - try { - val copyOfThis = newBuilder().build() - val buffer = Buffer() - val body = copyOfThis.body() ?: return null - body.writeTo(buffer) - val bodyAsData = buffer.readByteArray() - if (body is MultipartBody) { - val base64EncodedBody: String = Base64.encodeBytes(bodyAsData) - return mapOf( "fileUpload" to base64EncodedBody ) - } else { - val charset = body.contentType()?.charset() ?: Charsets.UTF_8 - return bodyAsData?.toString(charset) - } - } catch (e: IOException) { - return null - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/LokiServiceCipher.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/LokiServiceCipher.kt deleted file mode 100644 index 36f3ee33a..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/LokiServiceCipher.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.whispersystems.signalservice.loki.crypto - -import org.signal.libsignal.metadata.certificate.CertificateValidator -import org.whispersystems.libsignal.InvalidMessageException -import org.whispersystems.libsignal.loki.FallbackSessionCipher -import org.whispersystems.libsignal.loki.SessionResetProtocol -import org.whispersystems.libsignal.state.SignalProtocolStore -import org.whispersystems.signalservice.api.crypto.SignalServiceCipher -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.internal.push.PushTransportDetails -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysDatabaseProtocol - -class LokiServiceCipher(localAddress: SignalServiceAddress, private val signalProtocolStore: SignalProtocolStore, private val sskDatabase: SharedSenderKeysDatabaseProtocol, sessionResetProtocol: SessionResetProtocol, certificateValidator: CertificateValidator?) : SignalServiceCipher(localAddress, signalProtocolStore, sskDatabase, sessionResetProtocol, certificateValidator) { - - private val userPrivateKey get() = signalProtocolStore.identityKeyPair.privateKey.serialize() - - override fun decrypt(envelope: SignalServiceEnvelope, ciphertext: ByteArray): Plaintext { - return if (envelope.isFallbackMessage) decryptFallbackMessage(envelope, ciphertext) else super.decrypt(envelope, ciphertext) - } - - private fun decryptFallbackMessage(envelope: SignalServiceEnvelope, ciphertext: ByteArray): Plaintext { - val cipher = FallbackSessionCipher(userPrivateKey, envelope.source) - val paddedMessageBody = cipher.decrypt(ciphertext) ?: throw InvalidMessageException("Failed to decrypt fallback message.") - val transportDetails = PushTransportDetails(FallbackSessionCipher.sessionVersion) - val unpaddedMessageBody = transportDetails.getStrippedPaddingMessageBody(paddedMessageBody) - val metadata = Metadata(envelope.source, envelope.sourceDevice, envelope.timestamp, false) - return Plaintext(metadata, unpaddedMessageBody) - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/MnemonicCodec.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/MnemonicCodec.kt deleted file mode 100644 index 99e6af0b5..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/crypto/MnemonicCodec.kt +++ /dev/null @@ -1,139 +0,0 @@ -package org.whispersystems.signalservice.loki.crypto - -import java.io.File -import java.util.zip.CRC32 - -/** - * Based on [mnemonic.js](https://github.com/loki-project/loki-messenger/blob/development/libloki/modules/mnemonic.js) . - */ -class MnemonicCodec(private val loadFileContents: (String) -> String) { - - class Language(private val loadFileContents: (String) -> String, private val configuration: Configuration) { - - data class Configuration(val filename: String, val prefixLength: Int) { - - companion object { - val english = Configuration("english", 3) - val japanese = Configuration("japanese", 3) - val portuguese = Configuration("portuguese", 4) - val spanish = Configuration("spanish", 4) - } - } - - companion object { - internal val wordSetCache = mutableMapOf>() - internal val truncatedWordSetCache = mutableMapOf>() - } - - internal fun loadWordSet(): List { - val cachedResult = wordSetCache[this] - if (cachedResult != null) { - return cachedResult - } else { - val contents = loadFileContents(configuration.filename) - val result = contents.split(",") - wordSetCache[this] = result - return result - } - } - - internal fun loadTruncatedWordSet(): List { - val cachedResult = wordSetCache[this] - if (cachedResult != null) { - return cachedResult - } else { - val prefixLength = configuration.prefixLength - val result = loadWordSet().map { it.substring(0 until prefixLength) } - truncatedWordSetCache[this] = result - return result - } - } - } - - sealed class DecodingError(val description: String) : Exception() { - object Generic : DecodingError("Something went wrong. Please check your mnemonic and try again.") - object InputTooShort : DecodingError("Looks like you didn't enter enough words. Please check your mnemonic and try again.") - object MissingLastWord : DecodingError("You seem to be missing the last word of your mnemonic. Please check what you entered and try again.") - object InvalidWord : DecodingError("There appears to be an invalid word in your mnemonic. Please check what you entered and try again.") - object VerificationFailed : DecodingError("Your mnemonic couldn't be verified. Please check what you entered and try again.") - } - - fun encode(hexEncodedString: String, languageConfiguration: Language.Configuration = Language.Configuration.english): String { - var string = hexEncodedString - val language = Language(loadFileContents, languageConfiguration) - val wordSet = language.loadWordSet() - val prefixLength = languageConfiguration.prefixLength - val result = mutableListOf() - val n = wordSet.size.toLong() - val characterCount = string.length - for (chunkStartIndex in 0..(characterCount - 8) step 8) { - val chunkEndIndex = chunkStartIndex + 8 - val p1 = string.substring(0 until chunkStartIndex) - val p2 = swap(string.substring(chunkStartIndex until chunkEndIndex)) - val p3 = string.substring(chunkEndIndex until characterCount) - string = p1 + p2 + p3 - } - for (chunkStartIndex in 0..(characterCount - 8) step 8) { - val chunkEndIndex = chunkStartIndex + 8 - val x = string.substring(chunkStartIndex until chunkEndIndex).toLong(16) - val w1 = x % n - val w2 = ((x / n) + w1) % n - val w3 = (((x / n) / n) + w2) % n - result += listOf( wordSet[w1.toInt()], wordSet[w2.toInt()], wordSet[w3.toInt()] ) - } - val checksumIndex = determineChecksumIndex(result, prefixLength) - val checksumWord = result[checksumIndex] - result.add(checksumWord) - return result.joinToString(" ") - } - - fun decode(mnemonic: String, languageConfiguration: Language.Configuration = Language.Configuration.english): String { - val words = mnemonic.split(" ").toMutableList() - val language = Language(loadFileContents, languageConfiguration) - val truncatedWordSet = language.loadTruncatedWordSet() - val prefixLength = languageConfiguration.prefixLength - var result = "" - val n = truncatedWordSet.size.toLong() - // Check preconditions - if (words.size < 12) { throw DecodingError.InputTooShort } - if (words.size % 3 == 0) { throw DecodingError.MissingLastWord } - // Get checksum word - val checksumWord = words.removeAt(words.lastIndex) - // Decode - for (chunkStartIndex in 0..(words.size - 3) step 3) { - try { - val w1 = truncatedWordSet.indexOf(words[chunkStartIndex].substring(0 until prefixLength)) - val w2 = truncatedWordSet.indexOf(words[chunkStartIndex + 1].substring(0 until prefixLength)) - val w3 = truncatedWordSet.indexOf(words[chunkStartIndex + 2].substring(0 until prefixLength)) - val x = w1 + n * ((n - w1 + w2) % n) + n * n * ((n - w2 + w3) % n) - if (x % n != w1.toLong()) { throw DecodingError.Generic } - val string = "0000000" + x.toString(16) - result += swap(string.substring(string.length - 8 until string.length)) - } catch (e: Exception) { - throw DecodingError.InvalidWord - } - } - // Verify checksum - val checksumIndex = determineChecksumIndex(words, prefixLength) - val expectedChecksumWord = words[checksumIndex] - if (expectedChecksumWord.substring(0 until prefixLength) != checksumWord.substring(0 until prefixLength)) { throw DecodingError.VerificationFailed } - // Return - return result - } - - private fun swap(x: String): String { - val p1 = x.substring(6 until 8) - val p2 = x.substring(4 until 6) - val p3 = x.substring(2 until 4) - val p4 = x.substring(0 until 2) - return p1 + p2 + p3 + p4 - } - - private fun determineChecksumIndex(x: List, prefixLength: Int): Int { - val bytes = x.joinToString("") { it.substring(0 until prefixLength) }.toByteArray() - val crc32 = CRC32() - crc32.update(bytes) - val checksum = crc32.value - return (checksum % x.size.toLong()).toInt() - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiAPIDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiAPIDatabaseProtocol.kt deleted file mode 100644 index 634ca0e40..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiAPIDatabaseProtocol.kt +++ /dev/null @@ -1,41 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -import org.whispersystems.signalservice.loki.api.Snode -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.DeviceLink - -interface LokiAPIDatabaseProtocol { - - fun getSnodePool(): Set - fun setSnodePool(newValue: Set) - fun getOnionRequestPaths(): List> - fun clearOnionRequestPaths() - fun setOnionRequestPaths(newValue: List>) - fun getSwarm(publicKey: String): Set? - fun setSwarm(publicKey: String, newValue: Set) - fun getLastMessageHashValue(snode: Snode, publicKey: String): String? - fun setLastMessageHashValue(snode: Snode, publicKey: String, newValue: String) - fun getReceivedMessageHashValues(publicKey: String): Set? - fun setReceivedMessageHashValues(publicKey: String, newValue: Set) - fun getAuthToken(server: String): String? - fun setAuthToken(server: String, newValue: String?) - fun getLastMessageServerID(group: Long, server: String): Long? - fun setLastMessageServerID(group: Long, server: String, newValue: Long) - fun getLastDeletionServerID(group: Long, server: String): Long? - fun setLastDeletionServerID(group: Long, server: String, newValue: Long) - fun setUserCount(group: Long, server: String, newValue: Int) - fun getSessionRequestSentTimestamp(publicKey: String): Long? - fun setSessionRequestSentTimestamp(publicKey: String, newValue: Long) - fun getSessionRequestProcessedTimestamp(publicKey: String): Long? - fun setSessionRequestProcessedTimestamp(publicKey: String, newValue: Long) - fun getOpenGroupPublicKey(server: String): String? - fun setOpenGroupPublicKey(server: String, newValue: String) - fun setOpenGroupProfilePictureURL(group: Long, server: String, newValue: String) - fun getOpenGroupProfilePictureURL(group: Long, server: String): String? - - // region Deprecated - fun getDeviceLinks(publicKey: String): Set - fun clearDeviceLinks(publicKey: String) - fun addDeviceLink(deviceLink: DeviceLink) - fun removeDeviceLink(deviceLink: DeviceLink) - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiMessageDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiMessageDatabaseProtocol.kt deleted file mode 100644 index a53bca957..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiMessageDatabaseProtocol.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -interface LokiMessageDatabaseProtocol { - - fun getQuoteServerID(quoteID: Long, quoteePublicKey: String): Long? - fun setServerID(messageID: Long, serverID: Long) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiOpenGroupDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiOpenGroupDatabaseProtocol.kt deleted file mode 100644 index f57e6117b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiOpenGroupDatabaseProtocol.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -interface LokiOpenGroupDatabaseProtocol { - - fun updateTitle(groupID: String, newValue: String) - fun updateProfilePicture(groupID: String, newValue: ByteArray) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyBundleDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyBundleDatabaseProtocol.kt deleted file mode 100644 index c568e3a97..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyBundleDatabaseProtocol.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -import org.whispersystems.libsignal.state.PreKeyBundle - -interface LokiPreKeyBundleDatabaseProtocol { - - fun getPreKeyBundle(publicKey: String): PreKeyBundle? - fun removePreKeyBundle(publicKey: String) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyRecordDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyRecordDatabaseProtocol.kt deleted file mode 100644 index f80cd6cfc..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiPreKeyRecordDatabaseProtocol.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -import org.whispersystems.libsignal.state.PreKeyRecord - -interface LokiPreKeyRecordDatabaseProtocol { - - fun getPreKeyRecord(publicKey: String): PreKeyRecord? -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiThreadDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiThreadDatabaseProtocol.kt deleted file mode 100644 index 0a298b6f3..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiThreadDatabaseProtocol.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -import org.whispersystems.signalservice.loki.api.opengroups.PublicChat - -interface LokiThreadDatabaseProtocol { - - fun getThreadID(publicKey: String): Long - fun getPublicChat(threadID: Long): PublicChat? - fun setPublicChat(publicChat: PublicChat, threadID: Long) - fun removePublicChat(threadID: Long) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiUserDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiUserDatabaseProtocol.kt deleted file mode 100644 index 9b16fe5ba..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/database/LokiUserDatabaseProtocol.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.whispersystems.signalservice.loki.database - -interface LokiUserDatabaseProtocol { - - fun getDisplayName(publicKey: String): String? - fun getServerDisplayName(serverID: String, publicKey: String): String? - fun getProfilePictureURL(publicKey: String): String? -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupRatchet.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupRatchet.kt deleted file mode 100644 index 33715d6bf..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupRatchet.kt +++ /dev/null @@ -1,22 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.closedgroups - -import org.whispersystems.signalservice.loki.utilities.prettifiedDescription - -public class ClosedGroupRatchet(public val chainKey: String, public val keyIndex: Int, public val messageKeys: List) { - - override fun equals(other: Any?): Boolean { - return if (other is ClosedGroupRatchet) { - chainKey == other.chainKey && keyIndex == other.keyIndex && messageKeys == other.messageKeys - } else { - false - } - } - - override fun hashCode(): Int { - return chainKey.hashCode() xor keyIndex.hashCode() xor messageKeys.hashCode() - } - - override fun toString(): String { - return "[ chainKey : $chainKey, keyIndex : $keyIndex, messageKeys : ${messageKeys.prettifiedDescription()} ]" - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupSenderKey.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupSenderKey.kt deleted file mode 100644 index 9bd32dbf7..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupSenderKey.kt +++ /dev/null @@ -1,57 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.closedgroups - -import com.google.protobuf.ByteString -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.libsignal.protocol.SignalProtos -import org.whispersystems.libsignal.util.Hex -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.internal.util.JsonUtil -import org.whispersystems.signalservice.loki.utilities.toHexString - -public class ClosedGroupSenderKey(public val chainKey: ByteArray, public val keyIndex: Int, public val publicKey: ByteArray) { - - companion object { - - public fun fromJSON(jsonAsString: String): ClosedGroupSenderKey? { - try { - val json = JsonUtil.fromJson(jsonAsString, Map::class.java) - val chainKey = Hex.fromStringCondensed(json["chainKey"] as String) - val keyIndex = json["keyIndex"] as Int - val publicKey = Hex.fromStringCondensed(json["publicKey"] as String) - return ClosedGroupSenderKey(chainKey, keyIndex, publicKey) - } catch (exception: Exception) { - Log.d("Loki", "Couldn't parse closed group sender key from: $jsonAsString.") - return null - } - } - } - - public fun toJSON(): String { - val json = mapOf( "chainKey" to chainKey.toHexString(), "keyIndex" to keyIndex, "publicKey" to publicKey.toHexString() ) - return JsonUtil.toJson(json) - } - - public fun toProto(): SignalServiceProtos.ClosedGroupUpdate.SenderKey { - val builder = SignalServiceProtos.ClosedGroupUpdate.SenderKey.newBuilder() - builder.chainKey = ByteString.copyFrom(chainKey) - builder.keyIndex = keyIndex - builder.publicKey = ByteString.copyFrom(publicKey) - return builder.build() - } - - override fun equals(other: Any?): Boolean { - return if (other is ClosedGroupSenderKey) { - chainKey.contentEquals(other.chainKey) && keyIndex == other.keyIndex && publicKey.contentEquals(other.publicKey) - } else { - false - } - } - - override fun hashCode(): Int { - return chainKey.hashCode() xor keyIndex.hashCode() xor publicKey.hashCode() - } - - override fun toString(): String { - return "[ chainKey : ${chainKey.toHexString()}, keyIndex : $keyIndex, messageKeys : ${publicKey.toHexString()} ]" - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupUtilities.kt deleted file mode 100644 index e4063f829..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/ClosedGroupUtilities.kt +++ /dev/null @@ -1,78 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.closedgroups - -import com.google.protobuf.ByteString -import org.whispersystems.curve25519.Curve25519 -import org.whispersystems.libsignal.loki.ClosedGroupCiphertextMessage -import org.whispersystems.libsignal.util.Hex -import org.whispersystems.libsignal.util.Pair -import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope -import org.whispersystems.signalservice.internal.push.SignalServiceProtos -import org.whispersystems.signalservice.loki.api.utilities.DecryptionUtilities -import org.whispersystems.signalservice.loki.api.utilities.EncryptionUtilities -import org.whispersystems.signalservice.loki.utilities.removing05PrefixIfNeeded -import org.whispersystems.signalservice.loki.utilities.toHexString -import javax.crypto.Mac -import javax.crypto.spec.SecretKeySpec - -public object ClosedGroupUtilities { - - sealed class Error(val description: String) : Exception() { - object InvalidGroupPublicKey : Error("Invalid group public key.") - object NoData : Error("Received an empty envelope.") - object NoGroupPrivateKey : Error("Missing group private key.") - object ParsingFailed : Error("Couldn't parse closed group ciphertext message.") - } - - @JvmStatic - public fun encrypt(data: ByteArray, groupPublicKey: String, userPublicKey: String): ByteArray { - // 1. ) Encrypt the data with the user's sender key - val ciphertextAndKeyIndex = SharedSenderKeysImplementation.shared.encrypt(data, groupPublicKey, userPublicKey) - val ivAndCiphertext = ciphertextAndKeyIndex.first - val keyIndex = ciphertextAndKeyIndex.second - val x0 = ClosedGroupCiphertextMessage(ivAndCiphertext, Hex.fromStringCondensed(userPublicKey), keyIndex); - // 2. ) Encrypt the result for the group's public key to hide the sender public key and key index - val x1 = EncryptionUtilities.encryptForX25519PublicKey(x0.serialize(), groupPublicKey.removing05PrefixIfNeeded()) - // 3. ) Wrap the result - return SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.newBuilder() - .setCiphertext(ByteString.copyFrom(x1.ciphertext)) - .setEphemeralPublicKey(ByteString.copyFrom(x1.ephemeralPublicKey)) - .build().toByteArray() - } - - @JvmStatic - public fun decrypt(envelope: SignalServiceEnvelope): Pair { - // 1. ) Check preconditions - val groupPublicKey = envelope.source - if (groupPublicKey == null || !SharedSenderKeysImplementation.shared.isClosedGroup(groupPublicKey)) { - throw Error.InvalidGroupPublicKey - } - val data = envelope.content - if (data.count() == 0) { - throw Error.NoData - } - val groupPrivateKey = SharedSenderKeysImplementation.shared.getKeyPair(groupPublicKey)?.privateKey?.serialize() - if (groupPrivateKey == null) { - throw Error.NoGroupPrivateKey - } - // 2. ) Parse the wrapper - val x0 = SignalServiceProtos.ClosedGroupCiphertextMessageWrapper.parseFrom(data) - val ivAndCiphertext = x0.ciphertext.toByteArray() - val ephemeralPublicKey = x0.ephemeralPublicKey.toByteArray() - // 3. ) Decrypt the data inside - val ephemeralSharedSecret = Curve25519.getInstance(Curve25519.BEST).calculateAgreement(ephemeralPublicKey, groupPrivateKey) - val mac = Mac.getInstance("HmacSHA256") - mac.init(SecretKeySpec("LOKI".toByteArray(), "HmacSHA256")) - val symmetricKey = mac.doFinal(ephemeralSharedSecret) - val x1 = DecryptionUtilities.decryptUsingAESGCM(ivAndCiphertext, symmetricKey) - // 4. ) Parse the closed group ciphertext message - val x2 = ClosedGroupCiphertextMessage.from(x1) - if (x2 == null) { - throw Error.ParsingFailed - } - val senderPublicKey = x2.senderPublicKey.toHexString() - // 5. ) Use the info inside the closed group ciphertext message to decrypt the actual message content - val plaintext = SharedSenderKeysImplementation.shared.decrypt(x2.ivAndCiphertext, groupPublicKey, senderPublicKey, x2.keyIndex) - // 6. ) Return - return Pair(plaintext, senderPublicKey) - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysDatabaseProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysDatabaseProtocol.kt deleted file mode 100644 index 8914bc869..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysDatabaseProtocol.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.closedgroups - -enum class ClosedGroupRatchetCollectionType { Old, Current } - -interface SharedSenderKeysDatabaseProtocol { - - // region Ratchets & Sender Keys - fun getClosedGroupRatchet(groupPublicKey: String, senderPublicKey: String, collection: ClosedGroupRatchetCollectionType): ClosedGroupRatchet? - fun setClosedGroupRatchet(groupPublicKey: String, senderPublicKey: String, ratchet: ClosedGroupRatchet, collection: ClosedGroupRatchetCollectionType) - fun removeAllClosedGroupRatchets(groupPublicKey: String, collection: ClosedGroupRatchetCollectionType) - fun getAllClosedGroupRatchets(groupPublicKey: String, collection: ClosedGroupRatchetCollectionType): Set> - fun getAllClosedGroupSenderKeys(groupPublicKey: String, collection: ClosedGroupRatchetCollectionType): Set - // endregion - - // region Private & Public Keys - fun getClosedGroupPrivateKey(groupPublicKey: String): String? - fun setClosedGroupPrivateKey(groupPublicKey: String, groupPrivateKey: String) - fun removeClosedGroupPrivateKey(groupPublicKey: String) - fun getAllClosedGroupPublicKeys(): Set - // endregion - - // region Convenience - fun isSSKBasedClosedGroup(groupPublicKey: String): Boolean - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementation.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementation.kt deleted file mode 100644 index 0300da089..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementation.kt +++ /dev/null @@ -1,217 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.closedgroups - -import org.whispersystems.libsignal.ecc.DjbECPrivateKey -import org.whispersystems.libsignal.ecc.DjbECPublicKey -import org.whispersystems.libsignal.ecc.ECKeyPair -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.libsignal.util.ByteUtil -import org.whispersystems.libsignal.util.Hex -import org.whispersystems.signalservice.internal.util.Util -import org.whispersystems.signalservice.loki.api.utilities.EncryptionUtilities -import org.whispersystems.signalservice.loki.utilities.removing05PrefixIfNeeded -import org.whispersystems.signalservice.loki.utilities.toHexString -import javax.crypto.Cipher -import javax.crypto.Mac -import javax.crypto.spec.GCMParameterSpec -import javax.crypto.spec.SecretKeySpec - -public final class SharedSenderKeysImplementation(private val database: SharedSenderKeysDatabaseProtocol, private val delegate: SharedSenderKeysImplementationDelegate) { - private val gcmTagSize = 128 - private val ivSize = 12 - - // A quick overview of how shared sender key based closed groups work: - // - // • When a user creates a group, they generate a key pair for the group along with a ratchet for - // every member of the group. They bundle this together with some other group info such as the group - // name in a `ClosedGroupUpdateMessage` and send that using established channels to every member of - // the group. Note that because a user can only pick from their existing contacts when selecting - // the group members they shouldn't need to establish sessions before being able to send the - // `ClosedGroupUpdateMessage`. - // • After the group is created, every user polls for the public key associated with the group. - // • Upon receiving a `ClosedGroupUpdateMessage` of type `.new`, a user sends session requests to all - // other members of the group they don't yet have a session with for reasons outlined below. - // • When a user sends a message they step their ratchet and use the resulting message key to encrypt - // the message. - // • When another user receives that message, they step the ratchet associated with the sender and - // use the resulting message key to decrypt the message. - // • When a user leaves or is kicked from a group, all members must generate new ratchets to ensure that - // removed users can't decrypt messages going forward. To this end every user deletes all ratchets - // associated with the group in question upon receiving a group update message that indicates that - // a user left. They then generate a new ratchet for themselves and send it out to all members of - // the group. The user should already have established sessions with all other members at this point - // because of the behavior outlined a few points above. - // • When a user adds a new member to the group, they generate a ratchet for that new member and - // send that bundled in a `ClosedGroupUpdateMessage` to the group. They send a - // `ClosedGroupUpdateMessage` with the newly generated ratchet but also the existing ratchets of - // every other member of the group to the user that joined. - - // region Initialization - companion object { - - public lateinit var shared: SharedSenderKeysImplementation - - public fun configureIfNeeded(database: SharedSenderKeysDatabaseProtocol, delegate: SharedSenderKeysImplementationDelegate) { - if (::shared.isInitialized) { return; } - shared = SharedSenderKeysImplementation(database, delegate) - } - } - // endregion - - // region Error - public class LoadingFailed(val groupPublicKey: String, val senderPublicKey: String) - : Exception("Couldn't get ratchet for closed group with public key: $groupPublicKey, sender public key: $senderPublicKey.") - public class MessageKeyMissing(val targetKeyIndex: Int, val groupPublicKey: String, val senderPublicKey: String) - : Exception("Couldn't find message key for old key index: $targetKeyIndex, public key: $groupPublicKey, sender public key: $senderPublicKey.") - public class GenericRatchetingException : Exception("An error occurred.") - // endregion - - // region Private API - private fun hmac(key: ByteArray, input: ByteArray): ByteArray { - val mac = Mac.getInstance("HmacSHA256") - mac.init(SecretKeySpec(key, "HmacSHA256")) - return mac.doFinal(input) - } - - private fun step(ratchet: ClosedGroupRatchet): ClosedGroupRatchet { - val nextMessageKey = hmac(Hex.fromStringCondensed(ratchet.chainKey), ByteArray(1) { 1.toByte() }) - val nextChainKey = hmac(Hex.fromStringCondensed(ratchet.chainKey), ByteArray(1) { 2.toByte() }) - val nextKeyIndex = ratchet.keyIndex + 1 - val messageKeys = ratchet.messageKeys + listOf( nextMessageKey.toHexString() ) - return ClosedGroupRatchet(nextChainKey.toHexString(), nextKeyIndex, messageKeys) - } - - /** - * Sync. Don't call from the main thread. - */ - private fun stepRatchetOnce(groupPublicKey: String, senderPublicKey: String): ClosedGroupRatchet { - val ratchet = database.getClosedGroupRatchet(groupPublicKey, senderPublicKey, ClosedGroupRatchetCollectionType.Current) - if (ratchet == null) { - val exception = LoadingFailed(groupPublicKey, senderPublicKey) - Log.d("Loki", exception.message ?: "An error occurred.") - throw exception - } - try { - val result = step(ratchet) - database.setClosedGroupRatchet(groupPublicKey, senderPublicKey, result, ClosedGroupRatchetCollectionType.Current) - return result - } catch (exception: Exception) { - Log.d("Loki", "Couldn't step ratchet due to error: $exception.") - throw exception - } - } - - private fun stepRatchet(groupPublicKey: String, senderPublicKey: String, targetKeyIndex: Int, isRetry: Boolean = false): ClosedGroupRatchet { - val collection = if (isRetry) ClosedGroupRatchetCollectionType.Old else ClosedGroupRatchetCollectionType.Current - val ratchet = database.getClosedGroupRatchet(groupPublicKey, senderPublicKey, collection) - if (ratchet == null) { - val exception = LoadingFailed(groupPublicKey, senderPublicKey) - Log.d("Loki", exception.message ?: "An error occurred.") - throw exception - } - if (targetKeyIndex < ratchet.keyIndex) { - // There's no need to advance the ratchet if this is invoked for an old key index - if (ratchet.messageKeys.count() <= targetKeyIndex) { - val exception = MessageKeyMissing(targetKeyIndex, groupPublicKey, senderPublicKey) - Log.d("Loki", exception.message ?: "An error occurred.") - throw exception - } - return ratchet - } else { - var currentKeyIndex = ratchet.keyIndex - var result: ClosedGroupRatchet = ratchet // Explicitly typed because otherwise the compiler has trouble inferring that this can't be null - while (currentKeyIndex < targetKeyIndex) { - try { - result = step(result) - currentKeyIndex = result.keyIndex - } catch (exception: Exception) { - Log.d("Loki", "Couldn't step ratchet due to error: $exception.") - throw exception - } - } - val collection = if (isRetry) ClosedGroupRatchetCollectionType.Old else ClosedGroupRatchetCollectionType.Current - database.setClosedGroupRatchet(groupPublicKey, senderPublicKey, result, collection) - return result - } - } - // endregion - - // region Public API - public fun generateRatchet(groupPublicKey: String, senderPublicKey: String): ClosedGroupRatchet { - val rootChainKey = Util.getSecretBytes(32).toHexString() - val ratchet = ClosedGroupRatchet(rootChainKey, 0, listOf()) - database.setClosedGroupRatchet(groupPublicKey, senderPublicKey, ratchet, ClosedGroupRatchetCollectionType.Current) - return ratchet - } - - public fun encrypt(plaintext: ByteArray, groupPublicKey: String, senderPublicKey: String): Pair { - val ratchet: ClosedGroupRatchet - try { - ratchet = stepRatchetOnce(groupPublicKey, senderPublicKey) - } catch (exception: Exception) { - if (exception is LoadingFailed) { - delegate.requestSenderKey(groupPublicKey, senderPublicKey) - } - throw exception - } - val iv = Util.getSecretBytes(ivSize) - val cipher = Cipher.getInstance("AES/GCM/NoPadding") - val messageKey = ratchet.messageKeys.last() - cipher.init(Cipher.ENCRYPT_MODE, SecretKeySpec(Hex.fromStringCondensed(messageKey), "AES"), GCMParameterSpec(gcmTagSize, iv)) - return Pair(ByteUtil.combine(iv, cipher.doFinal(plaintext)), ratchet.keyIndex) - } - - public fun decrypt(ivAndCiphertext: ByteArray, groupPublicKey: String, senderPublicKey: String, keyIndex: Int, isRetry: Boolean = false): ByteArray { - val ratchet: ClosedGroupRatchet - try { - ratchet = stepRatchet(groupPublicKey, senderPublicKey, keyIndex, isRetry) - } catch (exception: Exception) { - if (!isRetry) { - return decrypt(ivAndCiphertext, groupPublicKey, senderPublicKey, keyIndex, true) - } else { - if (exception is LoadingFailed) { - delegate.requestSenderKey(groupPublicKey, senderPublicKey) - } - throw exception - } - } - val iv = ivAndCiphertext.sliceArray(0 until ivSize) - val ciphertext = ivAndCiphertext.sliceArray(ivSize until ivAndCiphertext.count()) - val messageKeys = ratchet.messageKeys - val lastNMessageKeys: List - if (messageKeys.count() > 16) { // Pick an arbitrary number of message keys to try; this helps resolve issues caused by messages arriving out of order - lastNMessageKeys = messageKeys.subList(messageKeys.lastIndex - 16, messageKeys.lastIndex) - } else { - lastNMessageKeys = messageKeys - } - if (lastNMessageKeys.isEmpty()) { - throw MessageKeyMissing(keyIndex, groupPublicKey, senderPublicKey) - } - var exception: Exception? = null - for (messageKey in lastNMessageKeys.reversed()) { // Reversed because most likely the last one is the one we need - val cipher = Cipher.getInstance("AES/GCM/NoPadding") - cipher.init(Cipher.DECRYPT_MODE, SecretKeySpec(Hex.fromStringCondensed(messageKey), "AES"), GCMParameterSpec(EncryptionUtilities.gcmTagSize, iv)) - try { - return cipher.doFinal(ciphertext) - } catch (e: Exception) { - exception = e - } - } - if (!isRetry) { - return decrypt(ivAndCiphertext, groupPublicKey, senderPublicKey, keyIndex, true) - } else { - delegate.requestSenderKey(groupPublicKey, senderPublicKey) - throw exception ?: GenericRatchetingException() - } - } - - public fun isClosedGroup(publicKey: String): Boolean { - return database.getAllClosedGroupPublicKeys().contains(publicKey) - } - - public fun getKeyPair(groupPublicKey: String): ECKeyPair? { - val privateKey = database.getClosedGroupPrivateKey(groupPublicKey) ?: return null - return ECKeyPair(DjbECPublicKey(Hex.fromStringCondensed(groupPublicKey.removing05PrefixIfNeeded())), - DjbECPrivateKey(Hex.fromStringCondensed(privateKey))) - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementationDelegate.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementationDelegate.kt deleted file mode 100644 index 116b0f473..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/closedgroups/SharedSenderKeysImplementationDelegate.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.closedgroups - -public interface SharedSenderKeysImplementationDelegate { - - public fun requestSenderKey(groupPublicKey: String, senderPublicKey: String) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/Mention.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/Mention.kt deleted file mode 100644 index 8952c2553..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/Mention.kt +++ /dev/null @@ -1,3 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.mentions - -data class Mention(val publicKey: String, val displayName: String) diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/MentionsManager.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/MentionsManager.kt deleted file mode 100644 index 7cfc780f7..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/mentions/MentionsManager.kt +++ /dev/null @@ -1,57 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.mentions - -import org.whispersystems.signalservice.loki.database.LokiThreadDatabaseProtocol -import org.whispersystems.signalservice.loki.database.LokiUserDatabaseProtocol - -class MentionsManager(private val userPublicKey: String, private val threadDatabase: LokiThreadDatabaseProtocol, - private val userDatabase: LokiUserDatabaseProtocol) { - var userPublicKeyCache = mutableMapOf>() // Thread ID to set of user hex encoded public keys - - companion object { - - public lateinit var shared: MentionsManager - - public fun configureIfNeeded(userPublicKey: String, threadDatabase: LokiThreadDatabaseProtocol, userDatabase: LokiUserDatabaseProtocol) { - if (::shared.isInitialized) { return; } - shared = MentionsManager(userPublicKey, threadDatabase, userDatabase) - } - } - - fun cache(publicKey: String, threadID: Long) { - val cache = userPublicKeyCache[threadID] - if (cache != null) { - userPublicKeyCache[threadID] = cache.plus(publicKey) - } else { - userPublicKeyCache[threadID] = setOf( publicKey ) - } - } - - fun getMentionCandidates(query: String, threadID: Long): List { - // Prepare - val cache = userPublicKeyCache[threadID] ?: return listOf() - // Gather candidates - val publicChat = threadDatabase.getPublicChat(threadID) - var candidates: List = cache.mapNotNull { publicKey -> - val displayName: String? - if (publicChat != null) { - displayName = userDatabase.getServerDisplayName(publicChat.id, publicKey) - } else { - displayName = userDatabase.getDisplayName(publicKey) - } - if (displayName == null) { return@mapNotNull null } - if (displayName.startsWith("Anonymous")) { return@mapNotNull null } - Mention(publicKey, displayName) - } - candidates = candidates.filter { it.publicKey != userPublicKey } - // Sort alphabetically first - candidates.sortedBy { it.displayName } - if (query.length >= 2) { - // Filter out any non-matching candidates - candidates = candidates.filter { it.displayName.toLowerCase().contains(query.toLowerCase()) } - // Sort based on where in the candidate the query occurs - candidates.sortedBy { it.displayName.toLowerCase().indexOf(query.toLowerCase()) } - } - // Return - return candidates - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/SessionMetaProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/SessionMetaProtocol.kt deleted file mode 100644 index 4f93441ef..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/SessionMetaProtocol.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.meta - -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol -import org.whispersystems.signalservice.loki.protocol.shelved.multidevice.MultiDeviceProtocol - -public class SessionMetaProtocol(private val apiDatabase: LokiAPIDatabaseProtocol, private val userPublicKey: String) { - - // region Initialization - companion object { - - public lateinit var shared: SessionMetaProtocol - - public fun configureIfNeeded(apiDatabase: LokiAPIDatabaseProtocol, userPublicKey: String) { - if (::shared.isInitialized) { return; } - shared = SessionMetaProtocol(apiDatabase, userPublicKey) - } - } - // endregion - - // region Utilities - public fun isNoteToSelf(publicKey: String): Boolean { - return userPublicKey == publicKey // return MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey).contains(publicKey) - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/TTLUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/TTLUtilities.kt deleted file mode 100644 index 5fa179610..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/meta/TTLUtilities.kt +++ /dev/null @@ -1,38 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.meta - -public object TTLUtilities { - - /** - * If a message type specifies an invalid TTL, this will be used. - */ - public val fallbackMessageTTL = 2 * 24 * 60 * 60 * 1000 - - public enum class MessageType { - // Unimportant control messages - Address, Call, TypingIndicator, Verified, - // Somewhat important control messages - DeviceLink, - // Important control messages - ClosedGroupUpdate, Ephemeral, SessionRequest, Receipt, Sync, DeviceUnlinkingRequest, - // Visible messages - Regular - } - - @JvmStatic - public fun getTTL(messageType: MessageType): Int { - val minuteInMs = 60 * 1000 - val hourInMs = 60 * minuteInMs - val dayInMs = 24 * hourInMs - return when (messageType) { - // Unimportant control messages - MessageType.Address, MessageType.Call, MessageType.TypingIndicator, MessageType.Verified -> 1 * minuteInMs - // Somewhat important control messages - MessageType.DeviceLink -> 1 * hourInMs - // Important control messages - MessageType.ClosedGroupUpdate, MessageType.Ephemeral, MessageType.SessionRequest, MessageType.Receipt, - MessageType.Sync, MessageType.DeviceUnlinkingRequest -> 2 * dayInMs - 1 * hourInMs - // Visible messages - MessageType.Regular -> 2 * dayInMs - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/PreKeyBundleMessage.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/PreKeyBundleMessage.kt deleted file mode 100644 index 4895610ab..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/PreKeyBundleMessage.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.sessionmanagement - -import org.whispersystems.libsignal.IdentityKey -import org.whispersystems.libsignal.ecc.Curve -import org.whispersystems.libsignal.state.PreKeyBundle - -data class PreKeyBundleMessage( - val identityKey: ByteArray, - val deviceID: Int, - val preKeyID: Int, - val signedPreKeyID: Int, - val preKey: ByteArray, - val signedPreKey: ByteArray, - val signedPreKeySignature: ByteArray -) { - - constructor(preKeyBundle: PreKeyBundle) : this(preKeyBundle.identityKey.serialize(), preKeyBundle.deviceId, preKeyBundle.preKeyId, - preKeyBundle.signedPreKeyId, preKeyBundle.preKey.serialize(), preKeyBundle.signedPreKey.serialize(), preKeyBundle.signedPreKeySignature) - - fun getPreKeyBundle(registrationID: Int): PreKeyBundle { - return PreKeyBundle(registrationID, deviceID, preKeyID, Curve.decodePoint(preKey, 0), signedPreKeyID, Curve.decodePoint(signedPreKey, 0), signedPreKeySignature, IdentityKey(identityKey, 0)) - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocol.kt deleted file mode 100644 index b47da550b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocol.kt +++ /dev/null @@ -1,67 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.sessionmanagement - -import org.whispersystems.libsignal.SignalProtocolAddress -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.libsignal.loki.SessionResetProtocol -import org.whispersystems.libsignal.loki.SessionResetStatus -import org.whispersystems.libsignal.state.SignalProtocolStore -import org.whispersystems.libsignal.util.guava.Optional -import org.whispersystems.signalservice.api.SignalServiceMessageSender -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage -import org.whispersystems.signalservice.api.push.SignalServiceAddress -import org.whispersystems.signalservice.loki.api.SnodeAPI -import org.whispersystems.signalservice.loki.database.LokiThreadDatabaseProtocol -import org.whispersystems.signalservice.loki.protocol.closedgroups.SharedSenderKeysDatabaseProtocol - -public class SessionManagementProtocol(private val sessionResetImpl: SessionResetProtocol, private val sskDatabase: SharedSenderKeysDatabaseProtocol, - private val delegate: SessionManagementProtocolDelegate) { - - // region Initialization - companion object { - - public lateinit var shared: SessionManagementProtocol - - public fun configureIfNeeded(sessionResetImpl: SessionResetProtocol, sskDatabase: SharedSenderKeysDatabaseProtocol, delegate: SessionManagementProtocolDelegate) { - if (::shared.isInitialized) { return; } - shared = SessionManagementProtocol(sessionResetImpl, sskDatabase, delegate) - } - } - // endregion - - // region Sending - public fun shouldMessageUseFallbackEncryption(message: Any, publicKey: String, store: SignalProtocolStore): Boolean { - if (sskDatabase.isSSKBasedClosedGroup(publicKey)) { return true } // We don't actually use fallback encryption but this indicates that we don't need a session - if (message is SignalServiceDataMessage && message.preKeyBundle.isPresent) { return true; } // This covers session requests as well as end session messages - val recipient = SignalProtocolAddress(publicKey, SignalServiceAddress.DEFAULT_DEVICE_ID) - return !store.containsSession(recipient) - } - - /** - * Called after an end session message is sent. - */ - public fun setSessionResetStatusToInProgressIfNeeded(recipient: SignalServiceAddress, eventListener: Optional) { - val publicKey = recipient.number - val sessionResetStatus = sessionResetImpl.getSessionResetStatus(publicKey) - if (sessionResetStatus == SessionResetStatus.REQUEST_RECEIVED) { return } - Log.d("Loki", "Starting session reset") - sessionResetImpl.setSessionResetStatus(publicKey, SessionResetStatus.IN_PROGRESS) - if (!eventListener.isPresent) { return } - eventListener.get().onSecurityEvent(recipient) - } - - public fun repairSessionIfNeeded(recipient: SignalServiceAddress, isClosedGroup: Boolean) { - val publicKey = recipient.number - if (!isClosedGroup) { return } - delegate.sendSessionRequestIfNeeded(publicKey) - } - - public fun shouldIgnoreMissingPreKeyBundleException(isClosedGroup: Boolean): Boolean { - // When a closed group is created, members try to establish sessions with eachother in the background through - // session requests. Until ALL users those session requests were sent to have come online, stored the pre key - // bundles contained in the session requests and replied with background messages to finalize the session - // creation, a given user won't be able to successfully send a message to all members of a group. This check - // is so that until we can do better on this front the user at least won't see this as an error in the UI. - return isClosedGroup - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocolDelegate.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocolDelegate.kt deleted file mode 100644 index 86b5ac2d5..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/sessionmanagement/SessionManagementProtocolDelegate.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.sessionmanagement - -interface SessionManagementProtocolDelegate { - - fun sendSessionRequestIfNeeded(publicKey: String) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLink.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLink.kt deleted file mode 100644 index 452bb87d0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLink.kt +++ /dev/null @@ -1,72 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.shelved.multidevice - -import org.whispersystems.curve25519.Curve25519 -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.internal.util.Hex -import org.whispersystems.signalservice.loki.utilities.removing05PrefixIfNeeded -import java.util.* - -data class DeviceLink(val masterPublicKey: String, val slavePublicKey: String, val requestSignature: ByteArray?, val authorizationSignature: ByteArray?) { - private val curve = Curve25519.getInstance(Curve25519.BEST) - - val type: Type - get() = when (authorizationSignature) { - null -> Type.REQUEST - else -> Type.AUTHORIZATION - } - - enum class Type(val rawValue: Int) { REQUEST(1), AUTHORIZATION(2) } - - constructor(masterPublicKey: String, slavePublicKey: String) : this(masterPublicKey, slavePublicKey, null, null) - - fun sign(type: Type, privateKey: ByteArray): DeviceLink? { - val target = if (type == Type.REQUEST) masterPublicKey else slavePublicKey - val data = Hex.fromStringCondensed(target) + ByteArray(1) { type.rawValue.toByte() } - try { - val signature = curve.calculateSignature(privateKey, data) - return if (type == Type.REQUEST) copy(requestSignature = signature) else copy(authorizationSignature = signature) - } catch (e: Exception) { - return null - } - } - - fun verify(): Boolean { - if (requestSignature == null && authorizationSignature == null) { return false } - val signature = if (type == Type.REQUEST) requestSignature else authorizationSignature - val issuer = if (type == Type.REQUEST) slavePublicKey else masterPublicKey - val target = if (type == Type.REQUEST) masterPublicKey else slavePublicKey - return try { - val data = Hex.fromStringCondensed(target) + ByteArray(1) { type.rawValue.toByte() } - val issuerPublicKey = Hex.fromStringCondensed(issuer.removing05PrefixIfNeeded()) - curve.verifySignature(issuerPublicKey, data, signature) - } catch (e: Exception) { - Log.w("LOKI", e.message) - false - } - } - - fun toJSON(): Map { - val result = mutableMapOf( "primaryDevicePubKey" to masterPublicKey, "secondaryDevicePubKey" to slavePublicKey ) - if (requestSignature != null) { result["requestSignature"] = Base64.encodeBytes(requestSignature) } - if (authorizationSignature != null) { result["grantSignature"] = Base64.encodeBytes(authorizationSignature) } - return result - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other is DeviceLink) { - return (masterPublicKey == other.masterPublicKey && slavePublicKey == other.slavePublicKey - && Arrays.equals(requestSignature, other.requestSignature) && Arrays.equals(authorizationSignature, other.authorizationSignature)) - } else { - return false - } - } - - override fun hashCode(): Int { - var hash = masterPublicKey.hashCode() xor slavePublicKey.hashCode() - if (requestSignature != null) { hash = hash xor Arrays.hashCode(requestSignature) } - if (authorizationSignature != null) { hash = hash xor Arrays.hashCode(authorizationSignature) } - return hash - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSession.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSession.kt deleted file mode 100644 index 3a5e2405b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSession.kt +++ /dev/null @@ -1,37 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.shelved.multidevice - -class DeviceLinkingSession { - private val listeners = mutableListOf() - var isListeningForLinkingRequests: Boolean = false - private set - - companion object { - val shared = DeviceLinkingSession() - } - - fun addListener(listener: DeviceLinkingSessionListener) { - listeners.add(listener) - } - - fun removeListener(listener: DeviceLinkingSessionListener) { - listeners.remove(listener) - } - - fun startListeningForLinkingRequests() { - isListeningForLinkingRequests = true - } - - fun stopListeningForLinkingRequests() { - isListeningForLinkingRequests = false - } - - fun processLinkingRequest(deviceLink: DeviceLink) { - if (!isListeningForLinkingRequests || !deviceLink.verify()) { return } - listeners.forEach { it.requestUserAuthorization(deviceLink) } - } - - fun processLinkingAuthorization(deviceLink: DeviceLink) { - if (!isListeningForLinkingRequests || !deviceLink.verify()) { return } - listeners.forEach { it.onDeviceLinkRequestAuthorized(deviceLink) } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSessionListener.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSessionListener.kt deleted file mode 100644 index 2243f259d..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/DeviceLinkingSessionListener.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.shelved.multidevice - -interface DeviceLinkingSessionListener { - - fun requestUserAuthorization(deviceLink: DeviceLink) { } - fun onDeviceLinkRequestAuthorized(deviceLink: DeviceLink) { } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/MultiDeviceProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/MultiDeviceProtocol.kt deleted file mode 100644 index da0f58b08..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/multidevice/MultiDeviceProtocol.kt +++ /dev/null @@ -1,46 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.shelved.multidevice - -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol - -public class MultiDeviceProtocol(private val apiDatabase: LokiAPIDatabaseProtocol) { - - // region Initialization - companion object { - - public lateinit var shared: MultiDeviceProtocol - - public fun configureIfNeeded(apiDatabase: LokiAPIDatabaseProtocol) { - if (Companion::shared.isInitialized) { return; } - shared = MultiDeviceProtocol(apiDatabase) - } - } - // endregion - - // region Utilities - public fun getMasterDevice(publicKey: String): String? { - return null - /* - val deviceLinks = apiDatabase.getDeviceLinks(publicKey) - return deviceLinks.firstOrNull { it.slavePublicKey == publicKey }?.masterPublicKey - */ - } - - public fun getSlaveDevices(publicKey: String): Set { - return setOf() - /* - val deviceLinks = apiDatabase.getDeviceLinks(publicKey) - if (deviceLinks.isEmpty()) { return setOf() } - return deviceLinks.map { it.slavePublicKey }.toSet() - */ - } - - public fun getAllLinkedDevices(publicKey: String): Set { - return setOf( publicKey ) - /* - val deviceLinks = apiDatabase.getDeviceLinks(publicKey) - if (deviceLinks.isEmpty()) { return setOf( publicKey ) } - return deviceLinks.flatMap { listOf( it.masterPublicKey, it.slavePublicKey ) }.toSet() - */ - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/syncmessages/SyncMessagesProtocol.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/syncmessages/SyncMessagesProtocol.kt deleted file mode 100644 index bce8bab79..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/protocol/shelved/syncmessages/SyncMessagesProtocol.kt +++ /dev/null @@ -1,36 +0,0 @@ -package org.whispersystems.signalservice.loki.protocol.shelved.syncmessages - -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage -import org.whispersystems.signalservice.api.messages.SignalServiceGroup -import org.whispersystems.signalservice.loki.database.LokiAPIDatabaseProtocol - -public class SyncMessagesProtocol(private val apiDatabase: LokiAPIDatabaseProtocol, private val userPublicKey: String) { - - // region Initialization - companion object { - - public lateinit var shared: SyncMessagesProtocol - - public fun configureIfNeeded(apiDatabase: LokiAPIDatabaseProtocol, userPublicKey: String) { - if (Companion::shared.isInitialized) { return; } - shared = SyncMessagesProtocol(apiDatabase, userPublicKey) - } - } - // endregion - - // region Sending - /** - * Note: This is called only if based on Signal's logic we'd want to send a sync message. - */ - public fun shouldSyncMessage(message: SignalServiceDataMessage): Boolean { - return false - /* - if (message.deviceLink.isPresent) { return false } - val isOpenGroupMessage = message.group.isPresent && message.group.get().groupType == SignalServiceGroup.GroupType.PUBLIC_CHAT - if (isOpenGroupMessage) { return false } - val usesMultiDevice = apiDatabase.getDeviceLinks(userPublicKey).isNotEmpty() - return usesMultiDevice - */ - } - // endregion -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Broadcaster.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Broadcaster.kt deleted file mode 100644 index 663413bb7..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Broadcaster.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -interface Broadcaster { - - fun broadcast(event: String) - fun broadcast(event: String, long: Long) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/DownloadUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/DownloadUtilities.kt deleted file mode 100644 index 8b07faf92..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/DownloadUtilities.kt +++ /dev/null @@ -1,85 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import okhttp3.HttpUrl -import okhttp3.Request -import org.whispersystems.libsignal.logging.Log -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment -import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException -import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException -import org.whispersystems.signalservice.internal.util.Base64 -import org.whispersystems.signalservice.loki.api.fileserver.FileServerAPI -import org.whispersystems.signalservice.loki.api.onionrequests.OnionRequestAPI -import java.io.* - -object DownloadUtilities { - - /** - * Blocks the calling thread. - */ - fun downloadFile(destination: File, url: String, maxSize: Int, listener: SignalServiceAttachment.ProgressListener?) { - val outputStream = FileOutputStream(destination) // Throws - var remainingAttempts = 4 - var exception: Exception? = null - while (remainingAttempts > 0) { - remainingAttempts -= 1 - try { - downloadFile(outputStream, url, maxSize, listener) - exception = null - break - } catch (e: Exception) { - exception = e - } - } - if (exception != null) { throw exception } - } - - /** - * Blocks the calling thread. - */ - fun downloadFile(outputStream: OutputStream, url: String, maxSize: Int, listener: SignalServiceAttachment.ProgressListener?) { - // We need to throw a PushNetworkException or NonSuccessfulResponseCodeException - // because the underlying Signal logic requires these to work correctly - val oldPrefixedHost = "https://" + HttpUrl.get(url).host() - var newPrefixedHost = oldPrefixedHost - if (oldPrefixedHost.contains(FileServerAPI.fileStorageBucketURL)) { - newPrefixedHost = FileServerAPI.shared.server - } - // Edge case that needs to work: https://file-static.lokinet.org/i1pNmpInq3w9gF3TP8TFCa1rSo38J6UM - // → https://file.getsession.org/loki/v1/f/XLxogNXVEIWHk14NVCDeppzTujPHxu35 - val fileID = url.substringAfter(oldPrefixedHost).substringAfter("/f/") - val sanitizedURL = "$newPrefixedHost/loki/v1/f/$fileID" - val request = Request.Builder().url(sanitizedURL).get() - try { - val serverPublicKey = if (newPrefixedHost.contains(FileServerAPI.shared.server)) FileServerAPI.fileServerPublicKey - else FileServerAPI.shared.getPublicKeyForOpenGroupServer(newPrefixedHost).get() - val json = OnionRequestAPI.sendOnionRequest(request.build(), newPrefixedHost, serverPublicKey, isJSONRequired = false).get() - val result = json["result"] as? String - if (result == null) { - Log.d("Loki", "Couldn't parse attachment from: $json.") - throw PushNetworkException("Missing response body.") - } - val body = Base64.decode(result) - if (body.size > maxSize) { - Log.d("Loki", "Attachment size limit exceeded.") - throw PushNetworkException("Max response size exceeded.") - } - val input = body.inputStream() - val buffer = ByteArray(32768) - var count = 0 - var bytes = input.read(buffer) - while (bytes >= 0) { - outputStream.write(buffer, 0, bytes) - count += bytes - if (count > maxSize) { - Log.d("Loki", "Attachment size limit exceeded.") - throw PushNetworkException("Max response size exceeded.") - } - listener?.onAttachmentProgress(body.size.toLong(), count.toLong()) - bytes = input.read(buffer) - } - } catch (e: Exception) { - Log.d("Loki", "Couldn't download attachment due to error: $e.") - throw if (e is NonSuccessfulResponseCodeException) e else PushNetworkException(e) - } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/HexEncoding.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/HexEncoding.kt deleted file mode 100644 index 93bb60915..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/HexEncoding.kt +++ /dev/null @@ -1,20 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import org.whispersystems.libsignal.IdentityKeyPair -import org.whispersystems.libsignal.ecc.ECKeyPair - -fun ByteArray.toHexString(): String { - return joinToString("") { String.format("%02x", it) } -} - -val IdentityKeyPair.hexEncodedPublicKey: String - get() = publicKey.serialize().toHexString() - -val IdentityKeyPair.hexEncodedPrivateKey: String - get() = privateKey.serialize().toHexString() - -val ECKeyPair.hexEncodedPublicKey: String - get() = publicKey.serialize().toHexString() - -val ECKeyPair.hexEncodedPrivateKey: String - get() = privateKey.serialize().toHexString() diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PlaintextOutputStreamFactory.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PlaintextOutputStreamFactory.kt deleted file mode 100644 index 973445cf4..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PlaintextOutputStreamFactory.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import org.whispersystems.signalservice.api.crypto.DigestingOutputStream -import org.whispersystems.signalservice.internal.push.http.OutputStreamFactory -import java.io.OutputStream - -/** - * An `OutputStreamFactory` that copies the input directly to the output without modification. - * - * For encrypted attachments, see `AttachmentCipherOutputStreamFactory`. - * For encrypted profiles, see `ProfileCipherOutputStreamFactory`. - */ -class PlaintextOutputStreamFactory : OutputStreamFactory { - - override fun createFor(outputStream: OutputStream?): DigestingOutputStream { - return object : DigestingOutputStream(outputStream) { } - } -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PrettifiedDescription.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PrettifiedDescription.kt deleted file mode 100644 index c3353712b..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PrettifiedDescription.kt +++ /dev/null @@ -1,27 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -fun Any.prettifiedDescription(): String { - if (this is List<*>) { return prettifiedDescription() } - if (this is Map<*, *>) { return prettifiedDescription() } - return toString() -} - -fun List<*>.prettifiedDescription(): String { - if (isEmpty()) { return "[]" } - return "[ " + joinToString(", ") { it?.prettifiedDescription() ?: "null" } + " ]" -} - -fun Map<*, *>.prettifiedDescription(): String { - return "[ " + map { entry -> - val keyDescription = entry.key?.prettifiedDescription() ?: "null" - var valueDescription = entry.value?.prettifiedDescription() ?: "null" - if (valueDescription.isEmpty()) { valueDescription = "\"\"" } - val maxLength = 20 - val truncatedValueDescription = if (valueDescription.length > maxLength) { - valueDescription.substring(0 until maxLength) + "..." - } else { - valueDescription - } - "$keyDescription : $truncatedValueDescription" - }.joinToString(", ") + " ]" -} \ No newline at end of file diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PromiseUtilities.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PromiseUtilities.kt deleted file mode 100644 index 6a4b4bad2..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/PromiseUtilities.kt +++ /dev/null @@ -1,51 +0,0 @@ -@file:JvmName("PromiseUtilities") -package org.whispersystems.signalservice.loki.utilities - -import nl.komponents.kovenant.* -import org.whispersystems.libsignal.logging.Log -import kotlin.math.max - -// Try to use all available threads minus one for the callback -private val recommendedThreadCount: Int - get() = Runtime.getRuntime().availableProcessors() - 1 - -fun Kovenant.createContext(contextName: String, threadCount: Int = max(recommendedThreadCount, 1)): Context { - return createContext { - callbackContext.dispatcher = buildDispatcher { - name = "${contextName}CallbackDispatcher" - // Ref: http://kovenant.komponents.nl/api/core_usage/#execution-order - // Having 1 concurrent task ensures we have in-order callback handling - concurrentTasks = 1 - } - workerContext.dispatcher = buildDispatcher { - name = "${contextName}WorkerDispatcher" - concurrentTasks = threadCount - } - multipleCompletion = { v1, v2 -> - Log.d("Loki", "Promise resolved more than once (first with $v1, then with $v2); ignoring $v2.") - } - } -} - -fun Promise.get(defaultValue: V): V { - return try { - get() - } catch (e: Exception) { - defaultValue - } -} - -fun Promise.recover(callback: (exception: E) -> V): Promise { - val deferred = deferred() - success { - deferred.resolve(it) - }.fail { - try { - val value = callback(it) - deferred.resolve(value) - } catch (e: Throwable) { - deferred.reject(it) - } - } - return deferred.promise -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Random.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Random.kt deleted file mode 100644 index 36c1a05de..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Random.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import java.security.SecureRandom - -/** - * Uses `SecureRandom` to pick an element from this collection. - */ -fun Collection.getRandomElementOrNull(): T? { - val index = SecureRandom().nextInt(size) // SecureRandom() should be cryptographically secure - return elementAtOrNull(index) -} - -/** - * Uses `SecureRandom` to pick an element from this collection. - */ -fun Collection.getRandomElement(): T { - return getRandomElementOrNull()!! -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Reflection.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Reflection.kt deleted file mode 100644 index e134aac28..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Reflection.kt +++ /dev/null @@ -1,10 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import kotlin.reflect.KProperty1 -import kotlin.reflect.full.memberProperties - -@Suppress("UNCHECKED_CAST") -fun T.getProperty(name: String): U { - val p = this::class.memberProperties.first { it.name == name } as KProperty1 - return p.get(this) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Retrying.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Retrying.kt deleted file mode 100644 index d120e86cd..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Retrying.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import nl.komponents.kovenant.Promise -import nl.komponents.kovenant.deferred -import java.util.* - -fun > retryIfNeeded(maxRetryCount: Int, retryInterval: Long = 1 * 1000, body: () -> T): Promise { - var retryCount = 0 - val deferred = deferred() - val thread = Thread.currentThread() - fun retryIfNeeded() { - body().success { - deferred.resolve(it) - }.fail { - if (retryCount == maxRetryCount) { - deferred.reject(it) - } else { - retryCount += 1 - Timer().schedule(object : TimerTask() { - - override fun run() { - thread.run { retryIfNeeded() } - } - }, retryInterval) - } - } - } - retryIfNeeded() - return deferred.promise -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Trimming.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Trimming.kt deleted file mode 100644 index adb77cfc0..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Trimming.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -import org.whispersystems.signalservice.internal.util.Hex - -fun String.removing05PrefixIfNeeded(): String { - return if (length == 66) removePrefix("05") else this -} - -fun ByteArray.removing05PrefixIfNeeded(): ByteArray { - val string = Hex.toStringCondensed(this).removing05PrefixIfNeeded() - return Hex.fromStringCondensed(string) -} diff --git a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Validation.kt b/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Validation.kt deleted file mode 100644 index 427154697..000000000 --- a/service/java/src/main/java/org/whispersystems/signalservice/loki/utilities/Validation.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.whispersystems.signalservice.loki.utilities - -object PublicKeyValidation { - - @JvmStatic - fun isValid(candidate: String): Boolean { - return isValid(candidate, 66, true) - } - - @JvmStatic - fun isValid(candidate: String, expectedLength: Int, isPrefixRequired: Boolean): Boolean { - val hexCharacters = "0123456789ABCDEF".toSet() - val isValidHexEncoding = hexCharacters.containsAll(candidate.toUpperCase().toSet()) - val hasValidLength = candidate.length == expectedLength - val hasValidPrefix = if (isPrefixRequired) candidate.startsWith("05") else true - return isValidHexEncoding && hasValidLength && hasValidPrefix - } -} diff --git a/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java b/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java deleted file mode 100644 index 8c273ed76..000000000 --- a/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java +++ /dev/null @@ -1,244 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - -import junit.framework.TestCase; - -import org.conscrypt.Conscrypt; -import org.whispersystems.libsignal.InvalidMessageException; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.security.Security; -import java.util.Arrays; - -public class AttachmentCipherTest extends TestCase { - - static { - Security.insertProviderAt(Conscrypt.newProvider(), 1); - } - - public void test_attachment_encryptDecrypt() throws IOException, InvalidMessageException { - byte[] key = Util.getSecretBytes(64); - byte[] plaintextInput = "Peter Parker".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, key); - File cipherFile = writeToFile(encryptResult.ciphertext); - InputStream inputStream = AttachmentCipherInputStream.createForAttachment(cipherFile, plaintextInput.length, key, encryptResult.digest); - byte[] plaintextOutput = readInputStreamFully(inputStream); - - assertTrue(Arrays.equals(plaintextInput, plaintextOutput)); - - cipherFile.delete(); - } - - public void test_attachment_encryptDecryptEmpty() throws IOException, InvalidMessageException { - byte[] key = Util.getSecretBytes(64); - byte[] plaintextInput = "".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, key); - File cipherFile = writeToFile(encryptResult.ciphertext); - InputStream inputStream = AttachmentCipherInputStream.createForAttachment(cipherFile, plaintextInput.length, key, encryptResult.digest); - byte[] plaintextOutput = readInputStreamFully(inputStream); - - assertTrue(Arrays.equals(plaintextInput, plaintextOutput)); - - cipherFile.delete(); - } - - public void test_attachment_decryptFailOnBadKey() throws IOException{ - File cipherFile = null; - boolean hitCorrectException = false; - - try { - byte[] key = Util.getSecretBytes(64); - byte[] plaintextInput = "Gwen Stacy".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, key); - byte[] badKey = new byte[64]; - - cipherFile = writeToFile(encryptResult.ciphertext); - - AttachmentCipherInputStream.createForAttachment(cipherFile, plaintextInput.length, badKey, encryptResult.digest); - } catch (InvalidMessageException e) { - hitCorrectException = true; - } finally { - if (cipherFile != null) { - cipherFile.delete(); - } - } - - assertTrue(hitCorrectException); - } - - public void test_attachment_decryptFailOnBadDigest() throws IOException{ - File cipherFile = null; - boolean hitCorrectException = false; - - try { - byte[] key = Util.getSecretBytes(64); - byte[] plaintextInput = "Mary Jane Watson".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, key); - byte[] badDigest = new byte[32]; - - cipherFile = writeToFile(encryptResult.ciphertext); - - AttachmentCipherInputStream.createForAttachment(cipherFile, plaintextInput.length, key, badDigest); - } catch (InvalidMessageException e) { - hitCorrectException = true; - } finally { - if (cipherFile != null) { - cipherFile.delete(); - } - } - - assertTrue(hitCorrectException); - } - - public void test_attachment_decryptFailOnNullDigest() throws IOException{ - File cipherFile = null; - boolean hitCorrectException = false; - - try { - byte[] key = Util.getSecretBytes(64); - byte[] plaintextInput = "Aunt May".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, key); - - cipherFile = writeToFile(encryptResult.ciphertext); - - AttachmentCipherInputStream.createForAttachment(cipherFile, plaintextInput.length, key, null); - } catch (InvalidMessageException e) { - hitCorrectException = true; - } finally { - if (cipherFile != null) { - cipherFile.delete(); - } - } - - assertTrue(hitCorrectException); - } - - public void test_attachment_decryptFailOnBadMac() throws IOException { - File cipherFile = null; - boolean hitCorrectException = false; - - try { - byte[] key = Util.getSecretBytes(64); - byte[] plaintextInput = "Uncle Ben".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, key); - byte[] badMacCiphertext = Arrays.copyOf(encryptResult.ciphertext, encryptResult.ciphertext.length); - - badMacCiphertext[badMacCiphertext.length - 1] = 0; - - cipherFile = writeToFile(badMacCiphertext); - - AttachmentCipherInputStream.createForAttachment(cipherFile, plaintextInput.length, key, encryptResult.digest); - } catch (InvalidMessageException e) { - hitCorrectException = true; - } finally { - if (cipherFile != null) { - cipherFile.delete(); - } - } - - assertTrue(hitCorrectException); - } - - public void test_sticker_encryptDecrypt() throws IOException, InvalidMessageException { - byte[] packKey = Util.getSecretBytes(32); - byte[] plaintextInput = "Peter Parker".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, expandPackKey(packKey)); - InputStream inputStream = AttachmentCipherInputStream.createForStickerData(encryptResult.ciphertext, packKey); - byte[] plaintextOutput = readInputStreamFully(inputStream); - - assertTrue(Arrays.equals(plaintextInput, plaintextOutput)); - } - - public void test_sticker_encryptDecryptEmpty() throws IOException, InvalidMessageException { - byte[] packKey = Util.getSecretBytes(32); - byte[] plaintextInput = "".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, expandPackKey(packKey)); - InputStream inputStream = AttachmentCipherInputStream.createForStickerData(encryptResult.ciphertext, packKey); - byte[] plaintextOutput = readInputStreamFully(inputStream); - - assertTrue(Arrays.equals(plaintextInput, plaintextOutput)); - } - - public void test_sticker_decryptFailOnBadKey() throws IOException{ - boolean hitCorrectException = false; - - try { - byte[] packKey = Util.getSecretBytes(32); - byte[] plaintextInput = "Gwen Stacy".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, expandPackKey(packKey)); - byte[] badPackKey = new byte[32]; - - AttachmentCipherInputStream.createForStickerData(encryptResult.ciphertext, badPackKey); - } catch (InvalidMessageException e) { - hitCorrectException = true; - } - - assertTrue(hitCorrectException); - } - - public void test_sticker_decryptFailOnBadMac() throws IOException { - boolean hitCorrectException = false; - - try { - byte[] packKey = Util.getSecretBytes(32); - byte[] plaintextInput = "Uncle Ben".getBytes(); - EncryptResult encryptResult = encryptData(plaintextInput, expandPackKey(packKey)); - byte[] badMacCiphertext = Arrays.copyOf(encryptResult.ciphertext, encryptResult.ciphertext.length); - - badMacCiphertext[badMacCiphertext.length - 1] = 0; - - AttachmentCipherInputStream.createForStickerData(badMacCiphertext, packKey); - } catch (InvalidMessageException e) { - hitCorrectException = true; - } - - assertTrue(hitCorrectException); - } - - private static EncryptResult encryptData(byte[] data, byte[] keyMaterial) throws IOException { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - AttachmentCipherOutputStream encryptStream = new AttachmentCipherOutputStream(keyMaterial, outputStream); - - encryptStream.write(data); - encryptStream.flush(); - encryptStream.close(); - - return new EncryptResult(outputStream.toByteArray(), encryptStream.getTransmittedDigest()); - } - - private static File writeToFile(byte[] data) throws IOException { - File file = File.createTempFile("temp", ".data"); - OutputStream outputStream = new FileOutputStream(file); - - outputStream.write(data); - outputStream.close(); - - return file; - } - - private static byte[] readInputStreamFully(InputStream inputStream) throws IOException { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - Util.copy(inputStream, outputStream); - return outputStream.toByteArray(); - } - - private static byte[] expandPackKey(byte[] shortKey) { - return new HKDFv3().deriveSecrets(shortKey, "Sticker Pack".getBytes(), 64); - } - - private static class EncryptResult { - final byte[] ciphertext; - final byte[] digest; - - private EncryptResult(byte[] ciphertext, byte[] digest) { - this.ciphertext = ciphertext; - this.digest = digest; - } - } -} diff --git a/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java b/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java deleted file mode 100644 index ab0b0ec50..000000000 --- a/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - - -import junit.framework.TestCase; - -import org.conscrypt.Conscrypt; -import org.whispersystems.signalservice.internal.util.Util; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.security.Security; - -public class ProfileCipherTest extends TestCase { - - static { - Security.insertProviderAt(Conscrypt.newProvider(), 1); - } - - public void testEncryptDecrypt() throws InvalidCiphertextException { - byte[] key = Util.getSecretBytes(32); - ProfileCipher cipher = new ProfileCipher(key); - byte[] name = cipher.encryptName("Clement Duval".getBytes(), 26); - byte[] plaintext = cipher.decryptName(name); - assertEquals(new String(plaintext), "Clement Duval"); - } - - public void testEmpty() throws Exception { - byte[] key = Util.getSecretBytes(32); - ProfileCipher cipher = new ProfileCipher(key); - byte[] name = cipher.encryptName("".getBytes(), 26); - byte[] plaintext = cipher.decryptName(name); - - assertEquals(plaintext.length, 0); - } - - public void testStreams() throws Exception { - byte[] key = Util.getSecretBytes(32); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ProfileCipherOutputStream out = new ProfileCipherOutputStream(baos, key); - - out.write("This is an avatar".getBytes()); - out.flush(); - out.close(); - - ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); - ProfileCipherInputStream in = new ProfileCipherInputStream(bais, key); - - ByteArrayOutputStream result = new ByteArrayOutputStream(); - byte[] buffer = new byte[2048]; - - int read; - - while ((read = in.read(buffer)) != -1) { - result.write(buffer, 0, read); - } - - assertEquals(new String(result.toByteArray()), "This is an avatar"); - } - -} diff --git a/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java b/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java deleted file mode 100644 index 55a050398..000000000 --- a/service/java/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.whispersystems.signalservice.api.crypto; - -import junit.framework.TestCase; - -import org.conscrypt.Conscrypt; -import org.whispersystems.signalservice.internal.contacts.crypto.SigningCertificate; -import org.whispersystems.signalservice.internal.util.Base64; - -import java.io.IOException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.Security; -import java.security.SignatureException; -import java.security.cert.CertPathValidatorException; -import java.security.cert.CertificateException; -import java.util.Arrays; - -public class SigningCertificateTest extends TestCase { - - static { - Security.insertProviderAt(Conscrypt.newProvider(), 1); - } - - public void testGoodSignature() throws CertificateException, NoSuchAlgorithmException, IOException, KeyStoreException, CertPathValidatorException, SignatureException { - String certificateChain = "-----BEGIN%20CERTIFICATE-----%0AMIIEoTCCAwmgAwIBAgIJANEHdl0yo7CWMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV%0ABAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNV%0ABAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQDDCdJbnRlbCBTR1ggQXR0ZXN0%0AYXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwHhcNMTYxMTIyMDkzNjU4WhcNMjYxMTIw%0AMDkzNjU4WjB7MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFDASBgNVBAcMC1Nh%0AbnRhIENsYXJhMRowGAYDVQQKDBFJbnRlbCBDb3Jwb3JhdGlvbjEtMCsGA1UEAwwk%0ASW50ZWwgU0dYIEF0dGVzdGF0aW9uIFJlcG9ydCBTaWduaW5nMIIBIjANBgkqhkiG%0A9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqXot4OZuphR8nudFrAFiaGxxkgma/Es/BA%2Bt%0AbeCTUR106AL1ENcWA4FX3K%2BE9BBL0/7X5rj5nIgX/R/1ubhkKWw9gfqPG3KeAtId%0Acv/uTO1yXv50vqaPvE1CRChvzdS/ZEBqQ5oVvLTPZ3VEicQjlytKgN9cLnxbwtuv%0ALUK7eyRPfJW/ksddOzP8VBBniolYnRCD2jrMRZ8nBM2ZWYwnXnwYeOAHV%2BW9tOhA%0AImwRwKF/95yAsVwd21ryHMJBcGH70qLagZ7Ttyt%2B%2BqO/6%2BKAXJuKwZqjRlEtSEz8%0AgZQeFfVYgcwSfo96oSMAzVr7V0L6HSDLRnpb6xxmbPdqNol4tQIDAQABo4GkMIGh%0AMB8GA1UdIwQYMBaAFHhDe3amfrzQr35CN%2Bs1fDuHAVE8MA4GA1UdDwEB/wQEAwIG%0AwDAMBgNVHRMBAf8EAjAAMGAGA1UdHwRZMFcwVaBToFGGT2h0dHA6Ly90cnVzdGVk%0Ac2VydmljZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML1NHWC9BdHRlc3RhdGlvblJl%0AcG9ydFNpZ25pbmdDQS5jcmwwDQYJKoZIhvcNAQELBQADggGBAGcIthtcK9IVRz4r%0ARq%2BZKE%2B7k50/OxUsmW8aavOzKb0iCx07YQ9rzi5nU73tME2yGRLzhSViFs/LpFa9%0AlpQL6JL1aQwmDR74TxYGBAIi5f4I5TJoCCEqRHz91kpG6Uvyn2tLmnIdJbPE4vYv%0AWLrtXXfFBSSPD4Afn7%2B3/XUggAlc7oCTizOfbbtOFlYA4g5KcYgS1J2ZAeMQqbUd%0AZseZCcaZZZn65tdqee8UXZlDvx0%2BNdO0LR%2B5pFy%2BjuM0wWbu59MvzcmTXbjsi7HY%0A6zd53Yq5K244fwFHRQ8eOB0IWB%2B4PfM7FeAApZvlfqlKOlLcZL2uyVmzRkyR5yW7%0A2uo9mehX44CiPJ2fse9Y6eQtcfEhMPkmHXI01sN%2BKwPbpA39%2BxOsStjhP9N1Y1a2%0AtQAVo%2ByVgLgV2Hws73Fc0o3wC78qPEA%2Bv2aRs/Be3ZFDgDyghc/1fgU%2B7C%2BP6kbq%0Ad4poyb6IW8KCJbxfMJvkordNOgOUUxndPHEi/tb/U7uLjLOgPA%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIFSzCCA7OgAwIBAgIJANEHdl0yo7CUMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV%0ABAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNV%0ABAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQDDCdJbnRlbCBTR1ggQXR0ZXN0%0AYXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwIBcNMTYxMTE0MTUzNzMxWhgPMjA0OTEy%0AMzEyMzU5NTlaMH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwL%0AU2FudGEgQ2xhcmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQD%0ADCdJbnRlbCBTR1ggQXR0ZXN0YXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwggGiMA0G%0ACSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCfPGR%2BtXc8u1EtJzLA10Feu1Wg%2Bp7e%0ALmSRmeaCHbkQ1TF3Nwl3RmpqXkeGzNLd69QUnWovYyVSndEMyYc3sHecGgfinEeh%0ArgBJSEdsSJ9FpaFdesjsxqzGRa20PYdnnfWcCTvFoulpbFR4VBuXnnVLVzkUvlXT%0AL/TAnd8nIZk0zZkFJ7P5LtePvykkar7LcSQO85wtcQe0R1Raf/sQ6wYKaKmFgCGe%0ANpEJUmg4ktal4qgIAxk%2BQHUxQE42sxViN5mqglB0QJdUot/o9a/V/mMeH8KvOAiQ%0AbyinkNndn%2BBgk5sSV5DFgF0DffVqmVMblt5p3jPtImzBIH0QQrXJq39AT8cRwP5H%0AafuVeLHcDsRp6hol4P%2BZFIhu8mmbI1u0hH3W/0C2BuYXB5PC%2B5izFFh/nP0lc2Lf%0A6rELO9LZdnOhpL1ExFOq9H/B8tPQ84T3Sgb4nAifDabNt/zu6MmCGo5U8lwEFtGM%0ARoOaX4AS%2B909x00lYnmtwsDVWv9vBiJCXRsCAwEAAaOByTCBxjBgBgNVHR8EWTBX%0AMFWgU6BRhk9odHRwOi8vdHJ1c3RlZHNlcnZpY2VzLmludGVsLmNvbS9jb250ZW50%0AL0NSTC9TR1gvQXR0ZXN0YXRpb25SZXBvcnRTaWduaW5nQ0EuY3JsMB0GA1UdDgQW%0ABBR4Q3t2pn680K9%2BQjfrNXw7hwFRPDAfBgNVHSMEGDAWgBR4Q3t2pn680K9%2BQjfr%0ANXw7hwFRPDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkq%0AhkiG9w0BAQsFAAOCAYEAeF8tYMXICvQqeXYQITkV2oLJsp6J4JAqJabHWxYJHGir%0AIEqucRiJSSx%2BHjIJEUVaj8E0QjEud6Y5lNmXlcjqRXaCPOqK0eGRz6hi%2BripMtPZ%0AsFNaBwLQVV905SDjAzDzNIDnrcnXyB4gcDFCvwDFKKgLRjOB/WAqgscDUoGq5ZVi%0AzLUzTqiQPmULAQaB9c6Oti6snEFJiCQ67JLyW/E83/frzCmO5Ru6WjU4tmsmy8Ra%0AUd4APK0wZTGtfPXU7w%2BIBdG5Ez0kE1qzxGQaL4gINJ1zMyleDnbuS8UicjJijvqA%0A152Sq049ESDz%2B1rRGc2NVEqh1KaGXmtXvqxXcTB%2BLjy5Bw2ke0v8iGngFBPqCTVB%0A3op5KBG3RjbF6RRSzwzuWfL7QErNC8WEy5yDVARzTA5%2BxmBc388v9Dm21HGfcC8O%0ADD%2BgT9sSpssq0ascmvH49MOgjt1yoysLtdCtJW/9FZpoOypaHx0R%2BmJTLwPXVMrv%0ADaVzWh5aiEx%2BidkSGMnX%0A-----END%20CERTIFICATE-----%0A"; - String signature = "Kn2Ya2T039qvEWIzIQeSksNyyCQIkcVjciClcp3a6C766dJANXxLLIn6CfyvUZddMtePrTOLpC2e5QTQxB4RwtWmFfr7nxRdFUtA3dH2DAQL5DqqlmPv46ZWSPfiiOXUsu8vNgX3Z4Znt4Q+dIPIquNPY8ZmiAcpKR7n2K3QtabgOnJ2EyngabY3LMQTtriXbZjpl53ynhVhV1rciMdvMaTz4DUYt7gKi+KeNd3CBFSev+eTgYPC3em96J/3bfVR+wC5m3JGbIBCrwAsbO05JkiNIMck3s+p4d/hwiABR75EplxaWmGgIm6VvUKtGhdJ/cNrmF0nxMX6Vi6N2WaLTA=="; - String signatureBody = "{\"id\":\"287419896494669543891634765983074535548\",\"timestamp\":\"2019-03-11T20:01:21.658293\",\"version\":3,\"isvEnclaveQuoteStatus\":\"OK\",\"isvEnclaveQuoteBody\":\"AgAAADILAAAIAAcAAAAAAPiLWcRSSA3shraxepsGV9qF4zYUPJgE42ZZZXS2G9zaBQUCBP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAAM1s/DQpN7I7G907v5chqlYVrJ/1CnXFUn1EHNMnaCbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrzm117Qj8NlEllyDkV4Pae4UgsPjgVXtAA5UsG90gVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHgz6GaO6bkxfPLBYcR5rEf9Itrt81OEanXteSMcd/BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}"; - - KeyStore keyStore = KeyStore.getInstance("JKS"); - keyStore.load(getClass().getResourceAsStream("/ias.jks"), "whisper".toCharArray()); - - SigningCertificate certificate = new SigningCertificate(certificateChain, keyStore); - - certificate.verifySignature(signatureBody, signature); - } - - public void testBadSignature() throws CertificateException, NoSuchAlgorithmException, IOException, KeyStoreException, CertPathValidatorException, SignatureException { - String certificateChain = "-----BEGIN%20CERTIFICATE-----%0AMIIEoTCCAwmgAwIBAgIJANEHdl0yo7CWMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV%0ABAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNV%0ABAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQDDCdJbnRlbCBTR1ggQXR0ZXN0%0AYXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwHhcNMTYxMTIyMDkzNjU4WhcNMjYxMTIw%0AMDkzNjU4WjB7MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFDASBgNVBAcMC1Nh%0AbnRhIENsYXJhMRowGAYDVQQKDBFJbnRlbCBDb3Jwb3JhdGlvbjEtMCsGA1UEAwwk%0ASW50ZWwgU0dYIEF0dGVzdGF0aW9uIFJlcG9ydCBTaWduaW5nMIIBIjANBgkqhkiG%0A9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqXot4OZuphR8nudFrAFiaGxxkgma/Es/BA%2Bt%0AbeCTUR106AL1ENcWA4FX3K%2BE9BBL0/7X5rj5nIgX/R/1ubhkKWw9gfqPG3KeAtId%0Acv/uTO1yXv50vqaPvE1CRChvzdS/ZEBqQ5oVvLTPZ3VEicQjlytKgN9cLnxbwtuv%0ALUK7eyRPfJW/ksddOzP8VBBniolYnRCD2jrMRZ8nBM2ZWYwnXnwYeOAHV%2BW9tOhA%0AImwRwKF/95yAsVwd21ryHMJBcGH70qLagZ7Ttyt%2B%2BqO/6%2BKAXJuKwZqjRlEtSEz8%0AgZQeFfVYgcwSfo96oSMAzVr7V0L6HSDLRnpb6xxmbPdqNol4tQIDAQABo4GkMIGh%0AMB8GA1UdIwQYMBaAFHhDe3amfrzQr35CN%2Bs1fDuHAVE8MA4GA1UdDwEB/wQEAwIG%0AwDAMBgNVHRMBAf8EAjAAMGAGA1UdHwRZMFcwVaBToFGGT2h0dHA6Ly90cnVzdGVk%0Ac2VydmljZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML1NHWC9BdHRlc3RhdGlvblJl%0AcG9ydFNpZ25pbmdDQS5jcmwwDQYJKoZIhvcNAQELBQADggGBAGcIthtcK9IVRz4r%0ARq%2BZKE%2B7k50/OxUsmW8aavOzKb0iCx07YQ9rzi5nU73tME2yGRLzhSViFs/LpFa9%0AlpQL6JL1aQwmDR74TxYGBAIi5f4I5TJoCCEqRHz91kpG6Uvyn2tLmnIdJbPE4vYv%0AWLrtXXfFBSSPD4Afn7%2B3/XUggAlc7oCTizOfbbtOFlYA4g5KcYgS1J2ZAeMQqbUd%0AZseZCcaZZZn65tdqee8UXZlDvx0%2BNdO0LR%2B5pFy%2BjuM0wWbu59MvzcmTXbjsi7HY%0A6zd53Yq5K244fwFHRQ8eOB0IWB%2B4PfM7FeAApZvlfqlKOlLcZL2uyVmzRkyR5yW7%0A2uo9mehX44CiPJ2fse9Y6eQtcfEhMPkmHXI01sN%2BKwPbpA39%2BxOsStjhP9N1Y1a2%0AtQAVo%2ByVgLgV2Hws73Fc0o3wC78qPEA%2Bv2aRs/Be3ZFDgDyghc/1fgU%2B7C%2BP6kbq%0Ad4poyb6IW8KCJbxfMJvkordNOgOUUxndPHEi/tb/U7uLjLOgPA%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIIFSzCCA7OgAwIBAgIJANEHdl0yo7CUMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV%0ABAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNV%0ABAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQDDCdJbnRlbCBTR1ggQXR0ZXN0%0AYXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwIBcNMTYxMTE0MTUzNzMxWhgPMjA0OTEy%0AMzEyMzU5NTlaMH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwL%0AU2FudGEgQ2xhcmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQD%0ADCdJbnRlbCBTR1ggQXR0ZXN0YXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwggGiMA0G%0ACSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCfPGR%2BtXc8u1EtJzLA10Feu1Wg%2Bp7e%0ALmSRmeaCHbkQ1TF3Nwl3RmpqXkeGzNLd69QUnWovYyVSndEMyYc3sHecGgfinEeh%0ArgBJSEdsSJ9FpaFdesjsxqzGRa20PYdnnfWcCTvFoulpbFR4VBuXnnVLVzkUvlXT%0AL/TAnd8nIZk0zZkFJ7P5LtePvykkar7LcSQO85wtcQe0R1Raf/sQ6wYKaKmFgCGe%0ANpEJUmg4ktal4qgIAxk%2BQHUxQE42sxViN5mqglB0QJdUot/o9a/V/mMeH8KvOAiQ%0AbyinkNndn%2BBgk5sSV5DFgF0DffVqmVMblt5p3jPtImzBIH0QQrXJq39AT8cRwP5H%0AafuVeLHcDsRp6hol4P%2BZFIhu8mmbI1u0hH3W/0C2BuYXB5PC%2B5izFFh/nP0lc2Lf%0A6rELO9LZdnOhpL1ExFOq9H/B8tPQ84T3Sgb4nAifDabNt/zu6MmCGo5U8lwEFtGM%0ARoOaX4AS%2B909x00lYnmtwsDVWv9vBiJCXRsCAwEAAaOByTCBxjBgBgNVHR8EWTBX%0AMFWgU6BRhk9odHRwOi8vdHJ1c3RlZHNlcnZpY2VzLmludGVsLmNvbS9jb250ZW50%0AL0NSTC9TR1gvQXR0ZXN0YXRpb25SZXBvcnRTaWduaW5nQ0EuY3JsMB0GA1UdDgQW%0ABBR4Q3t2pn680K9%2BQjfrNXw7hwFRPDAfBgNVHSMEGDAWgBR4Q3t2pn680K9%2BQjfr%0ANXw7hwFRPDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkq%0AhkiG9w0BAQsFAAOCAYEAeF8tYMXICvQqeXYQITkV2oLJsp6J4JAqJabHWxYJHGir%0AIEqucRiJSSx%2BHjIJEUVaj8E0QjEud6Y5lNmXlcjqRXaCPOqK0eGRz6hi%2BripMtPZ%0AsFNaBwLQVV905SDjAzDzNIDnrcnXyB4gcDFCvwDFKKgLRjOB/WAqgscDUoGq5ZVi%0AzLUzTqiQPmULAQaB9c6Oti6snEFJiCQ67JLyW/E83/frzCmO5Ru6WjU4tmsmy8Ra%0AUd4APK0wZTGtfPXU7w%2BIBdG5Ez0kE1qzxGQaL4gINJ1zMyleDnbuS8UicjJijvqA%0A152Sq049ESDz%2B1rRGc2NVEqh1KaGXmtXvqxXcTB%2BLjy5Bw2ke0v8iGngFBPqCTVB%0A3op5KBG3RjbF6RRSzwzuWfL7QErNC8WEy5yDVARzTA5%2BxmBc388v9Dm21HGfcC8O%0ADD%2BgT9sSpssq0ascmvH49MOgjt1yoysLtdCtJW/9FZpoOypaHx0R%2BmJTLwPXVMrv%0ADaVzWh5aiEx%2BidkSGMnX%0A-----END%20CERTIFICATE-----%0A"; - String signature = "Kn2Ya2T039qvEWIzIQeSksNyyCQIkcVjciClcp3a6C766dJANXxLLIn6CfyvUZddMtePrTOLpC2e5QTQxB4RwtWmFfr7nxRdFUtA3dH2DAQL5DqqlmPv46ZWSPfiiOXUsu8vNgX3Z4Znt4Q+dIPIquNPY8ZmiAcpKR7n2K3QtabgOnJ2EyngabY3LMQTtriXbZjpl53ynhVhV1rciMdvMaTz4DUYt7gKi+KeNd3CBFSev+eTgYPC3em96J/3bfVR+wC5m3JGbIBCrwAsbO05JkiNIMck3s+p4d/hwiABR75EplxaWmGgIm6VvUKtGhdJ/cNrmF0nxMX6Vi6N2WaLTA=="; - String signatureBody = "{\"id\":\"287419896494669543891634765983074535548\",\"timestamp\":\"2019-03-11T20:01:21.658293\",\"version\":3,\"isvEnclaveQuoteStatus\":\"OK\",\"isvEnclaveQuoteBody\":\"AgAAADILAAAIAAcAAAAAAPiLWcRSSA3shraxepsGV9qF4zYUPJgE42ZZZXS2G9zaBQUCBP//AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAAAAAAAM1s/DQpN7I7G907v5chqlYVrJ/1CnXFUn1EHNMnaCbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrzm117Qj8NlEllyDkV4Pae4UgsPjgVXtAA5UsG90gVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHgz6GaO6bkxfPLBYcR5rEf9Itrt81OEanXteSMcd/BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}"; - - KeyStore keyStore = KeyStore.getInstance("JKS"); - keyStore.load(getClass().getResourceAsStream("/ias.jks"), "whisper".toCharArray()); - - SigningCertificate certificate = new SigningCertificate(certificateChain, keyStore); - byte[] decodedSignature = Base64.decode(signature); - - for (int i=0;i3{l0*gPoW!C;Ln#9ZkSG_Apl4o5YL0?)eo;Yw zQDRAEex9L$fgVVXnMWNW7wjIP;8;?UT3iB_R|rZ4DlJh6&P>nC%u82rb~I2B=QT7l zG&D3ZG&MFiHjI+sH!?7>G&C{>B2!CK%cuc&VH4vb}N1&V(emSVr*oX zZnf$NTOyF(ZJns-kxW#Y_dO|m-$t{Rq`bC$bhWyQI-ow;=P^%ar1 zS^CMUL31zioNPDWP(DYB{m~rvh3gnRJ=}9V=DRLk7+ZDX&9ODdT-R=~ZBL*3bq=TX z(M2yab3!UYq^Hj-^$xcb*%x|Q|I2~7_th0=nw*`GgmbQlsHTe zS#Fbvil@^zzrWB_Zm1QQU7VBk#lCEBIey)CU zK9HGLqVF8!qYq53`bfzYl3JmO)!9)mxhTg#7Gwh-ix`VYg>!Y;vbsGN*4H_izc#J0 zZf6X%F^~sIE3-%#h&5nWzz0&m&&c?ng$0;1*}yqWRv5(RFkk~xOpFZ3sSTJ#fvK&L zp(0*4;phpjFItsl0*aQRx0+6Fn%DVYf|lyCUM zG;uQ2D_>?g<>vIMCtkUhHQBuCy7+M7`4vgOcC0kId~-u^6g$&}(D;(43Xho$KASW= zUwiWU2|0xVL#O==M>SS(yBRnBP0(sO&K%UZ>gm*^Gh2=QR!p!<xKr3x zML25nkrXNY4i1yK#m1U(d}Z&vk17=zCH4JkxITB%YCl^+h0njEE=r#54e?rdWm#KX zcKE(E;e`fudNw=Rd6!gs|LMqlAR_#V)70@^SEYvFb~m%5FGYgR^Sq1v^xMJfEcelt z({q|bSc-l4>W(GE+&{1X#d6z~!ubXId_49G{BH{_JFRtbwal!KKfWAZ(08|Ju{QVC s3u{&L|BBAau-1x_mlgb#6s*sDJ>=AT-lfG+a#0;Vb)7ebBu-uj01{LUm;e9( diff --git a/service/java/src/test/resources/ias.jks b/service/java/src/test/resources/ias.jks deleted file mode 100644 index 2f437b55ef6334a65474e90d98047b13f3e354f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1419 zcmezO_TO6u1_mY|W(3pBnTf?fc4l6{aUTZO2t88+O9lp3e}g7gZ-XZ0%?p^B7@3$j z87{Jy#TqT%FvWnEjZ>@5qwPB{BO^B}gF&4kw*e;`b0`a&FjHtSjKjghD}C<%Te0~1R_ zBV!;kwKTPi8gLgjF)l(5G)7hi<|f8|27@NXE~X~NMuzz|DRo=RZFUFhsv8}+?ijZ_ zbiuEA_w-UG&V1G+yHnt*VYxYHxm#9NoO|1uOLt#i5t*B%pR5`*_ae{9cJmG8bEMcG z&2eA2j=|HzJ;!6d>(Yg>RVUsYTXW2H?H1ei^toT>a9ST-^fEIiq#{Im`n*!_a7&SW zp_lc)9GH7wU2&$#*_o{Bn}6zE@87SflC|%2p$gyUIl6`HTiipU>VFHoX5-3O+1j8u z&uk)RP=>{%YfB%k;9!=tb0{@*@H5*inq)q6RZ~ET!}O3v_g{QnfAwFoocy8n7911u zHI`4fd3XMUgvqmo!Y3SUh-I$*nl&?6dfL6rd&X~-at&xw_uL|G40Rf9{#T zr&esd!*?X}m6Ym(|1(88@;+tGR*v4%QhV*c!#1{O;_Q!@~ zTVJ|aR=jY@UY8@mtG?79{B-%k=a%nYY(M63%;#NpcKe@qFHSZ|^@V(jVG+C7Lusr>L=#|nRzAp&Otu=L3|DaHXy~s$bg*MfLRon+8P-u;&l^_p5XeTRaqvWXeoND z>Exz)oew5xsV+MnEygL6v0A}vU7<>m1|j( z&8x194=0{qk@RcFN~6m+Hv~tqGhGOcFL|o)nAza7NyGECC$FE7Qz$TW+Rt!QV+FUH zapT_vt)}D5L5-`PPE9(q)!1*v1iMsjMz+SU=lZtkt(oKK*`Z?fX40qVk2d$ezdobc z_f&dUl&QtGY_-!zq5|(R*sL{3HC$Ws^~!tx4%Ul1g>6-Yqc$H&k<#zrFqvCytQp5w z_RjmLQjt+o->-)2b0@9#vlUeM{5$HR6|#P&tUfG}q(0mH|~V zFtA4GnHpFEX@7$zR&RqQ=FJP3nHZUvI2kUom&F<_-Y~_0myJ`a&7dghg+ z<|sJl7Zv0eC6;97=NTFp=z-*zdDJ0t!R`?XjwL0j#U)^Qg`iZR(h`N>%=Em>ymSR; zM*{_MUPCiOLqiioQ)6>u!zc-UBLfplLnC7#GPN|dj2dtkHZd+j4m3tq2IeNleg=ak z#xABN#zuzuHYs&m%WZZC>Z%(Zxb7IYJ9NRXdH3{ECeD1;B)e1Ks$sb~XSrKeR-Aj= znM-$HUlEy`rJt-CH1{IU$#(M%<#VLiAI))JxQ@Zo!#&4izU$J3u~jGD99whDb?p}0 z_Vl@5=WtpdUGy?DC!``odiuOl?{G_zeW922zZ{r*UtMvg$=R8#>YIP+UGLwosgkwt zbfF60=Q+BC>|5MJqUwJOyk_IdSlQa3IL~Y%XHbU4q-#qbt>9pmv~wsmbnr9VESh9K zb5&D7iNo}eMfYEPU4QjovYh;(^%fix@->!ExOsQ}gM`Vmg~BHsZHQ&A{hBp1SbEyM z%zMUfm2wU$)CxFlJ-NEx!T-46fq(9qzo%Agyu)`S^Ocn9ga0!{I`Tec&Q^}z(o%cv zzr!}RXX5OW5B;98StO!<&R^Byr2DTna$8@zSysGo$zGQu!K=R1AN+Lr!snLnUTi<+ zaLngjc6R%pcP~yhN%e(%ieVAE*yGkbE51SK_g&lLzN$%;YY!c`8udS)P01-%nu(c_ zfpKx;NrT2?1_{8_Co9hqX%KD@x*&K#V4HtNNlAf~zJ5tjX>mzvN^xpYS!Qx-v0f%9 z>FOot=jtct1DSax`p!W<`oQF>kCa>?sTG=7ogMX(i*gKPK{oKQh_Q%NI9Hb~tJ`y7 zeVvo}YttI*cE&&(19_0NGK++PSOazid>{q9Px zoDrv>YgGS16DLEx@@1A&Zcd+i;+1Pzlg+EHiw`HBUy<}{$4aBiH#Y=Fu`^u=jW2ns z@R-@)vq{7AwI{EikW(lyblT5wRAU9Vn{ngc1g)my%t4K-o=#0Vv(?yd#RR)lZbr7o zujl%<>8+XL=-HuS^=8ti=#Mt{zrQ}C+4od>SCpy6wrsW2N1_7nG1#m%NHttr^YzMm z{tniQJB4jkgrhbeNs-d;;4qn6Y^)i_SN6{Ps8W$pQs1wJ>vJcq_OlgK`20KSqU71$ z5U+(-mbJxYhwobxUT9FKXS0)?cS*JPpN`B2BEqjYO RcZ)scQZTsQY7d+&%4M^ zza6~JavyCuJ*PQ@rPznB?pQ+1{qy=?EVo@LoL`{N$78?1|F+Pw(^?l-%gp-t1Bm$#Naxay6{qM3DBmjOA4C9ePg diff --git a/service/protobuf/FingerprintProtocol.proto b/service/protobuf/FingerprintProtocol.proto deleted file mode 100644 index 8af9dde0f..000000000 --- a/service/protobuf/FingerprintProtocol.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto2"; - -package textsecure; - -option java_package = "org.whispersystems.libsignal.fingerprint"; -option java_outer_classname = "FingerprintProtos"; - -message LogicalFingerprint { - optional bytes content = 1; -// optional bytes identifier = 2; -} - -message CombinedFingerprints { - optional uint32 version = 1; - optional LogicalFingerprint localFingerprint = 2; - optional LogicalFingerprint remoteFingerprint = 3; -} \ No newline at end of file diff --git a/service/protobuf/LocalStorageProtocol.proto b/service/protobuf/LocalStorageProtocol.proto deleted file mode 100644 index 81bada9f7..000000000 --- a/service/protobuf/LocalStorageProtocol.proto +++ /dev/null @@ -1,114 +0,0 @@ -syntax = "proto2"; - -package textsecure; - -option java_package = "org.whispersystems.libsignal.state"; -option java_outer_classname = "StorageProtos"; - -message SessionStructure { - message Chain { - optional bytes senderRatchetKey = 1; - optional bytes senderRatchetKeyPrivate = 2; - - message ChainKey { - optional uint32 index = 1; - optional bytes key = 2; - } - - optional ChainKey chainKey = 3; - - message MessageKey { - optional uint32 index = 1; - optional bytes cipherKey = 2; - optional bytes macKey = 3; - optional bytes iv = 4; - } - - repeated MessageKey messageKeys = 4; - } - - message PendingKeyExchange { - optional uint32 sequence = 1; - optional bytes localBaseKey = 2; - optional bytes localBaseKeyPrivate = 3; - optional bytes localRatchetKey = 4; - optional bytes localRatchetKeyPrivate = 5; - optional bytes localIdentityKey = 7; - optional bytes localIdentityKeyPrivate = 8; - } - - message PendingPreKey { - optional uint32 preKeyId = 1; - optional int32 signedPreKeyId = 3; - optional bytes baseKey = 2; - } - - optional uint32 sessionVersion = 1; - optional bytes localIdentityPublic = 2; - optional bytes remoteIdentityPublic = 3; - - optional bytes rootKey = 4; - optional uint32 previousCounter = 5; - - optional Chain senderChain = 6; - repeated Chain receiverChains = 7; - - optional PendingKeyExchange pendingKeyExchange = 8; - optional PendingPreKey pendingPreKey = 9; - - optional uint32 remoteRegistrationId = 10; - optional uint32 localRegistrationId = 11; - - optional bool needsRefresh = 12; - optional bytes aliceBaseKey = 13; -} - -message RecordStructure { - optional SessionStructure currentSession = 1; - repeated SessionStructure previousSessions = 2; -} - -message PreKeyRecordStructure { - optional uint32 id = 1; - optional bytes publicKey = 2; - optional bytes privateKey = 3; -} - -message SignedPreKeyRecordStructure { - optional uint32 id = 1; - optional bytes publicKey = 2; - optional bytes privateKey = 3; - optional bytes signature = 4; - optional fixed64 timestamp = 5; -} - -message IdentityKeyPairStructure { - optional bytes publicKey = 1; - optional bytes privateKey = 2; -} - -message SenderKeyStateStructure { - message SenderChainKey { - optional uint32 iteration = 1; - optional bytes seed = 2; - } - - message SenderMessageKey { - optional uint32 iteration = 1; - optional bytes seed = 2; - } - - message SenderSigningKey { - optional bytes public = 1; - optional bytes private = 2; - } - - optional uint32 senderKeyId = 1; - optional SenderChainKey senderChainKey = 2; - optional SenderSigningKey senderSigningKey = 3; - repeated SenderMessageKey senderMessageKeys = 4; -} - -message SenderKeyRecordStructure { - repeated SenderKeyStateStructure senderKeyStates = 1; -} \ No newline at end of file diff --git a/service/protobuf/Makefile b/service/protobuf/Makefile deleted file mode 100644 index c8de5cd9d..000000000 --- a/service/protobuf/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -all: - protoc25 --java_out=../java/src/main/java/ SignalService.proto Provisioning.proto WebSocketResources.proto StickerResources.proto - protoc25 --java_out=../java/src/main/java/ UnidentifiedDelivery.proto - protoc25 --java_out=../java/src/main/java/ WhisperTextProtocol.proto LocalStorageProtocol.proto FingerprintProtocol.proto diff --git a/service/protobuf/Provisioning.proto b/service/protobuf/Provisioning.proto deleted file mode 100644 index c75d2ca69..000000000 --- a/service/protobuf/Provisioning.proto +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -syntax = "proto2"; - -package signalservice; - -option java_package = "org.whispersystems.signalservice.internal.push"; -option java_outer_classname = "ProvisioningProtos"; - -message ProvisionEnvelope { - optional bytes publicKey = 1; - optional bytes body = 2; // Encrypted ProvisionMessage -} - -message ProvisionMessage { - optional bytes identityKeyPublic = 1; - optional bytes identityKeyPrivate = 2; - optional string number = 3; - optional string provisioningCode = 4; - optional string userAgent = 5; - optional bytes profileKey = 6; - optional bool readReceipts = 7; -} diff --git a/service/protobuf/README.md b/service/protobuf/README.md deleted file mode 100644 index 3f02ab7c0..000000000 --- a/service/protobuf/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Generating Protobuf Files - -Android requires protobuf `2.5.0` to auto generate the files. -To generate the files just run `make`. - -**Note: Protobuf `2.5.0` will have to be aliased to `protoc25`.** - -## Mac Installation Instructions - -Protobuf can be installed using brew but this will only get versions > 3. -To install protobuf `2.5.0` follow these steps: - -```sh -wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.bz2 -tar xvf protobuf-2.5.0.tar.bz2 -cd protobuf-2.5.0 -./configure CC=clang CXX=clang++ CXXFLAGS='-std=c++11 -stdlib=libc++ -O3 -g' LDFLAGS='-stdlib=libc++' LIBS="-lc++ -lc++abi" --disable-shared --prefix='' -make -j4 -make install -``` - -This will compile and build the binary at `PATH TO A DIRECTORY` which you specified in the `./configure` command. -Next you need to move it to your local bin: - -``` -cd /bin -chmod +x ./protoc -mv ./protoc /usr/local/bin/protoc25 -``` diff --git a/service/protobuf/SignalService.proto b/service/protobuf/SignalService.proto deleted file mode 100644 index 49c47e70e..000000000 --- a/service/protobuf/SignalService.proto +++ /dev/null @@ -1,448 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -syntax = "proto2"; - -package signalservice; - -option java_package = "org.whispersystems.signalservice.internal.push"; -option java_outer_classname = "SignalServiceProtos"; - -message Envelope { - enum Type { - UNKNOWN = 0; - CIPHERTEXT = 1; - KEY_EXCHANGE = 2; - PREKEY_BUNDLE = 3; - RECEIPT = 5; - UNIDENTIFIED_SENDER = 6; - CLOSED_GROUP_CIPHERTEXT = 7; // Loki - FALLBACK_MESSAGE = 101; // Loki - Encrypted using the fallback session cipher. Contains a pre key bundle if it's a session request. - } - - optional Type type = 1; - optional string source = 2; - optional uint32 sourceDevice = 7; - optional string relay = 3; - optional uint64 timestamp = 5; - optional bytes legacyMessage = 6; // Contains an encrypted DataMessage - optional bytes content = 8; // Contains an encrypted Content - optional string serverGuid = 9; - optional uint64 serverTimestamp = 10; -} - -message Content { - optional DataMessage dataMessage = 1; - optional SyncMessage syncMessage = 2; - optional CallMessage callMessage = 3; - optional NullMessage nullMessage = 4; - optional ReceiptMessage receiptMessage = 5; - optional TypingMessage typingMessage = 6; - optional PreKeyBundleMessage preKeyBundleMessage = 101; // Loki - optional DeviceLinkMessage deviceLinkMessage = 103; // Loki -} - -message DeviceLinkMessage { - optional string primaryPublicKey = 1; - optional string secondaryPublicKey = 2; - optional bytes requestSignature = 3; - optional bytes authorizationSignature = 4; -} - -message PreKeyBundleMessage { - optional bytes identityKey = 1; - optional uint32 deviceId = 2; - optional uint32 preKeyId = 3; - optional uint32 signedKeyId = 4; - optional bytes preKey = 5; - optional bytes signedKey = 6; - optional bytes signature = 7; -} - -message CallMessage { - message Offer { - optional uint64 id = 1; - optional string description = 2; - } - - message Answer { - optional uint64 id = 1; - optional string description = 2; - } - - message IceUpdate { - optional uint64 id = 1; - optional string sdpMid = 2; - optional uint32 sdpMLineIndex = 3; - optional string sdp = 4; - } - - message Busy { - optional uint64 id = 1; - } - - message Hangup { - optional uint64 id = 1; - } - - optional Offer offer = 1; - optional Answer answer = 2; - repeated IceUpdate iceUpdate = 3; - optional Hangup hangup = 4; - optional Busy busy = 5; -} - -message ClosedGroupCiphertextMessageWrapper { - // @required - optional bytes ciphertext = 1; - // @required - optional bytes ephemeralPublicKey = 2; -} - -message DataMessage { - enum Flags { - END_SESSION = 1; - EXPIRATION_TIMER_UPDATE = 2; - PROFILE_KEY_UPDATE = 4; - DEVICE_UNLINKING_REQUEST = 128; - } - - message Quote { - message QuotedAttachment { - optional string contentType = 1; - optional string fileName = 2; - optional AttachmentPointer thumbnail = 3; - } - - optional uint64 id = 1; - optional string author = 2; - optional string text = 3; - repeated QuotedAttachment attachments = 4; - } - - message Contact { - message Name { - optional string givenName = 1; - optional string familyName = 2; - optional string prefix = 3; - optional string suffix = 4; - optional string middleName = 5; - optional string displayName = 6; - } - - message Phone { - enum Type { - HOME = 1; - MOBILE = 2; - WORK = 3; - CUSTOM = 4; - } - - optional string value = 1; - optional Type type = 2; - optional string label = 3; - } - - message Email { - enum Type { - HOME = 1; - MOBILE = 2; - WORK = 3; - CUSTOM = 4; - } - - optional string value = 1; - optional Type type = 2; - optional string label = 3; - } - - message PostalAddress { - enum Type { - HOME = 1; - WORK = 2; - CUSTOM = 3; - } - - optional Type type = 1; - optional string label = 2; - optional string street = 3; - optional string pobox = 4; - optional string neighborhood = 5; - optional string city = 6; - optional string region = 7; - optional string postcode = 8; - optional string country = 9; - } - - message Avatar { - optional AttachmentPointer avatar = 1; - optional bool isProfile = 2; - } - - optional Name name = 1; - repeated Phone number = 3; - repeated Email email = 4; - repeated PostalAddress address = 5; - optional Avatar avatar = 6; - optional string organization = 7; - } - - message Preview { - optional string url = 1; - optional string title = 2; - optional AttachmentPointer image = 3; - } - - message Sticker { - optional bytes packId = 1; - optional bytes packKey = 2; - optional uint32 stickerId = 3; - optional AttachmentPointer data = 4; - } - - optional string body = 1; - repeated AttachmentPointer attachments = 2; - optional GroupContext group = 3; - optional uint32 flags = 4; - optional uint32 expireTimer = 5; - optional bytes profileKey = 6; - optional uint64 timestamp = 7; - optional Quote quote = 8; - repeated Contact contact = 9; - repeated Preview preview = 10; - optional Sticker sticker = 11; - optional LokiUserProfile profile = 101; // Loki - The profile of the current user - optional ClosedGroupUpdate closedGroupUpdate = 103; // Loki -} - -message LokiUserProfile { - optional string displayName = 1; - optional string profilePictureURL = 2; -} - -message ClosedGroupUpdate { // Loki - enum Type { - NEW = 0; // groupPublicKey, name, groupPrivateKey, senderKeys, members, admins - INFO = 1; // groupPublicKey, name, senderKeys, members, admins - SENDER_KEY_REQUEST = 2; // groupPublicKey - SENDER_KEY = 3; // groupPublicKey, senderKeys - } - - message SenderKey { - // @required - optional bytes chainKey = 1; - // @required - optional uint32 keyIndex = 2; - // @required - optional bytes publicKey = 3; - } - - optional string name = 1; - // @required - optional bytes groupPublicKey = 2; - optional bytes groupPrivateKey = 3; - repeated SenderKey senderKeys = 4; - repeated bytes members = 5; - repeated bytes admins = 6; - // @required - optional Type type = 7; -} - -message NullMessage { - optional bytes padding = 1; -} - -message ReceiptMessage { - enum Type { - DELIVERY = 0; - READ = 1; - } - - optional Type type = 1; - repeated uint64 timestamp = 2; -} - -message TypingMessage { - enum Action { - STARTED = 0; - STOPPED = 1; - } - - optional uint64 timestamp = 1; - optional Action action = 2; - optional bytes groupId = 3; -} - -message Verified { - enum State { - DEFAULT = 0; - VERIFIED = 1; - UNVERIFIED = 2; - } - - optional string destination = 1; - optional bytes identityKey = 2; - optional State state = 3; - optional bytes nullMessage = 4; -} - -message SyncMessage { - message Sent { - message UnidentifiedDeliveryStatus { - optional string destination = 1; - optional bool unidentified = 2; - } - - optional string destination = 1; - optional uint64 timestamp = 2; - optional DataMessage message = 3; - optional uint64 expirationStartTimestamp = 4; - repeated UnidentifiedDeliveryStatus unidentifiedStatus = 5; - } - - message Contacts { - optional AttachmentPointer blob = 1; - optional bool complete = 2 [default = false]; - optional bytes data = 101; - } - - message Groups { - optional AttachmentPointer blob = 1; - optional bytes data = 101; - } - - message Blocked { - repeated string numbers = 1; - repeated bytes groupIds = 2; - } - - message Request { - enum Type { - UNKNOWN = 0; - CONTACTS = 1; - GROUPS = 2; - BLOCKED = 3; - CONFIGURATION = 4; - } - - optional Type type = 1; - } - - message Read { - optional string sender = 1; - optional uint64 timestamp = 2; - } - - message Configuration { - optional bool readReceipts = 1; - optional bool unidentifiedDeliveryIndicators = 2; - optional bool typingIndicators = 3; - optional bool linkPreviews = 4; - } - - message StickerPackOperation { - enum Type { - INSTALL = 0; - REMOVE = 1; - } - - optional bytes packId = 1; - optional bytes packKey = 2; - optional Type type = 3; - } - - message OpenGroupDetails { - optional string url = 1; - optional uint32 channelID = 2; - } - - optional Sent sent = 1; - optional Contacts contacts = 2; - optional Groups groups = 3; - optional Request request = 4; - repeated Read read = 5; - optional Blocked blocked = 6; - optional Verified verified = 7; - optional Configuration configuration = 9; - optional bytes padding = 8; - repeated StickerPackOperation stickerPackOperation = 10; - repeated OpenGroupDetails openGroups = 100; -} - -message AttachmentPointer { - enum Flags { - VOICE_MESSAGE = 1; - } - - optional fixed64 id = 1; - optional string contentType = 2; - optional bytes key = 3; - optional uint32 size = 4; - optional bytes thumbnail = 5; - optional bytes digest = 6; - optional string fileName = 7; - optional uint32 flags = 8; - optional uint32 width = 9; - optional uint32 height = 10; - optional string caption = 11; - optional string url = 101; -} - -message GroupContext { - enum Type { - UNKNOWN = 0; - UPDATE = 1; - DELIVER = 2; - QUIT = 3; - REQUEST_INFO = 4; - } - optional bytes id = 1; - optional Type type = 2; - optional string name = 3; - repeated string members = 4; - optional AttachmentPointer avatar = 5; - repeated string admins = 6; - - // Loki - These fields are only used internally for the Android code base. - // This is so that we can differentiate adding/kicking. - // DO NOT USE WHEN SENDING MESSAGES. - repeated string newMembers = 998; - repeated string removedMembers = 999; -} - -message ContactDetails { - message Avatar { - optional string contentType = 1; - optional uint32 length = 2; - } - - optional string number = 1; - optional string name = 2; - optional Avatar avatar = 3; - optional string color = 4; - optional Verified verified = 5; - optional bytes profileKey = 6; - optional bool blocked = 7; - optional uint32 expireTimer = 8; - optional string nickname = 101; // Loki -} - -message GroupDetails { - message Avatar { - optional string contentType = 1; - optional uint32 length = 2; - } - - optional bytes id = 1; - optional string name = 2; - repeated string members = 3; - optional Avatar avatar = 4; - optional bool active = 5 [default = true]; - optional uint32 expireTimer = 6; - optional string color = 7; - optional bool blocked = 8; - repeated string admins = 9; -} diff --git a/service/protobuf/StickerResources.proto b/service/protobuf/StickerResources.proto deleted file mode 100644 index 71e863f35..000000000 --- a/service/protobuf/StickerResources.proto +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (C) 2019 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -syntax = "proto2"; - -package signalservice; - -option java_package = "org.whispersystems.signalservice.internal.sticker"; -option java_outer_classname = "StickerProtos"; - -message Pack { - message Sticker { - optional uint32 id = 1; - optional string emoji = 2; - } - - optional string title = 1; - optional string author = 2; - optional Sticker cover = 3; - repeated Sticker stickers = 4; -} - diff --git a/service/protobuf/UnidentifiedDelivery.proto b/service/protobuf/UnidentifiedDelivery.proto deleted file mode 100644 index 51bae6508..000000000 --- a/service/protobuf/UnidentifiedDelivery.proto +++ /dev/null @@ -1,40 +0,0 @@ -syntax = "proto2"; - -package signal; - -option java_package = "org.signal.libsignal.metadata"; -option java_outer_classname = "SignalProtos"; - -message ServerCertificate { - message Certificate { - optional uint32 id = 1; - optional bytes key = 2; - } - - optional bytes certificate = 1; - optional bytes signature = 2; -} - -message SenderCertificate { - optional string sender = 1; - optional uint32 senderDevice = 2; -} - -message UnidentifiedSenderMessage { - - message Message { - enum Type { - PREKEY_MESSAGE = 1; - MESSAGE = 2; - FALLBACK_MESSAGE = 3; - } - - optional Type type = 1; - optional SenderCertificate senderCertificate = 2; - optional bytes content = 3; - } - - optional bytes ephemeralPublic = 1; - optional bytes encryptedStatic = 2; - optional bytes encryptedMessage = 3; -} \ No newline at end of file diff --git a/service/protobuf/WebSocketResources.proto b/service/protobuf/WebSocketResources.proto deleted file mode 100644 index f6ca7e354..000000000 --- a/service/protobuf/WebSocketResources.proto +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (C) 2014-2016 Open Whisper Systems - * - * Licensed according to the LICENSE file in this repository. - */ - -syntax = "proto2"; - -package signalservice; - -option java_package = "org.whispersystems.signalservice.internal.websocket"; -option java_outer_classname = "WebSocketProtos"; - -message WebSocketRequestMessage { - optional string verb = 1; - optional string path = 2; - optional bytes body = 3; - repeated string headers = 5; - optional uint64 id = 4; -} - -message WebSocketResponseMessage { - optional uint64 id = 1; - optional uint32 status = 2; - optional string message = 3; - repeated string headers = 5; - optional bytes body = 4; -} - -message WebSocketMessage { - enum Type { - UNKNOWN = 0; - REQUEST = 1; - RESPONSE = 2; - } - - optional Type type = 1; - optional WebSocketRequestMessage request = 2; - optional WebSocketResponseMessage response = 3; -} \ No newline at end of file diff --git a/service/protobuf/WhisperTextProtocol.proto b/service/protobuf/WhisperTextProtocol.proto deleted file mode 100644 index d8ffd4f8e..000000000 --- a/service/protobuf/WhisperTextProtocol.proto +++ /dev/null @@ -1,57 +0,0 @@ -syntax = "proto2"; - -package textsecure; - -option java_package = "org.whispersystems.libsignal.protocol"; -option java_outer_classname = "SignalProtos"; - -message SignalMessage { - optional bytes ratchetKey = 1; - optional uint32 counter = 2; - optional uint32 previousCounter = 3; - optional bytes ciphertext = 4; -} - -message PreKeySignalMessage { - optional uint32 registrationId = 5; - optional uint32 preKeyId = 1; - optional uint32 signedPreKeyId = 6; - optional bytes baseKey = 2; - optional bytes identityKey = 3; - optional bytes message = 4; // SignalMessage -} - -message KeyExchangeMessage { - optional uint32 id = 1; - optional bytes baseKey = 2; - optional bytes ratchetKey = 3; - optional bytes identityKey = 4; - optional bytes baseKeySignature = 5; -} - -message SenderKeyMessage { - optional uint32 id = 1; - optional uint32 iteration = 2; - optional bytes ciphertext = 3; -} - -message SenderKeyDistributionMessage { - optional uint32 id = 1; - optional uint32 iteration = 2; - optional bytes chainKey = 3; - optional bytes signingKey = 4; -} - -message DeviceConsistencyCodeMessage { - optional uint32 generation = 1; - optional bytes signature = 2; -} - -message ClosedGroupCiphertextMessage { - // @required - optional bytes ciphertext = 1; - // @required - optional bytes senderPublicKey = 2; - // @required - optional uint32 keyIndex = 3; -} diff --git a/settings.gradle b/settings.gradle index 1bb9e5aca..fdf2a7a65 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,8 +2,4 @@ include ':libsignal' include ':libsession' rootProject.name = "session-android" -include ":service" -include ":service:java" -include ":service:android" - include ':app' \ No newline at end of file