]> nmode's Git Repositories - signal-cli/commitdiff
Fix issues with pni parsing
authorAsamK <asamk@gmx.de>
Mon, 7 Aug 2023 19:03:39 +0000 (21:03 +0200)
committerAsamK <asamk@gmx.de>
Mon, 7 Aug 2023 19:03:39 +0000 (21:03 +0200)
graalvm-config-dir/reflect-config.json
graalvm-config-dir/resource-config.json
lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java
lib/src/main/java/org/asamk/signal/manager/internal/RegistrationManagerImpl.java
lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java
run_tests.sh
src/main/java/org/asamk/signal/BaseConfig.java

index 5bb16c8788a90966262ba6e9ec4fb1e9f5dcb945..ab5eff95d01822045a9df1bf5632ecac30e20b3d 100644 (file)
 {
   "name":"com.fasterxml.jackson.annotation.JsonProperty"
 },
+{
+  "name":"com.fasterxml.jackson.databind.annotation.JsonDeserialize"
+},
+{
+  "name":"com.fasterxml.jackson.databind.annotation.JsonSerialize"
+},
 {
   "name":"com.fasterxml.jackson.databind.ext.Java7HandlersImpl",
   "methods":[{"name":"<init>","parameterTypes":[] }]
   "name":"java.lang.Boolean",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
 },
 {
   "name":"java.lang.Class",
   "name":"java.lang.Integer",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
 },
 {
   "name":"java.lang.Iterable",
   "name":"org.asamk.signal.commands.ListContactsCommand$JsonContact",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"color","parameterTypes":[] }, {"name":"isBlocked","parameterTypes":[] }, {"name":"messageExpirationTime","parameterTypes":[] }, {"name":"name","parameterTypes":[] }, {"name":"number","parameterTypes":[] }, {"name":"profile","parameterTypes":[] }, {"name":"username","parameterTypes":[] }, {"name":"uuid","parameterTypes":[] }]
 },
 {
   "name":"org.asamk.signal.commands.ListContactsCommand$JsonContact$JsonProfile",
   "name":"org.asamk.signal.commands.ListDevicesCommand$JsonDevice",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"createdTimestamp","parameterTypes":[] }, {"name":"id","parameterTypes":[] }, {"name":"lastSeenTimestamp","parameterTypes":[] }, {"name":"name","parameterTypes":[] }]
 },
 {
   "name":"org.asamk.signal.commands.ListGroupsCommand$JsonGroup",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"admins","parameterTypes":[] }, {"name":"banned","parameterTypes":[] }, {"name":"description","parameterTypes":[] }, {"name":"groupInviteLink","parameterTypes":[] }, {"name":"id","parameterTypes":[] }, {"name":"isBlocked","parameterTypes":[] }, {"name":"isMember","parameterTypes":[] }, {"name":"members","parameterTypes":[] }, {"name":"messageExpirationTime","parameterTypes":[] }, {"name":"name","parameterTypes":[] }, {"name":"pendingMembers","parameterTypes":[] }, {"name":"permissionAddMember","parameterTypes":[] }, {"name":"permissionEditDetails","parameterTypes":[] }, {"name":"permissionSendMessage","parameterTypes":[] }, {"name":"requestingMembers","parameterTypes":[] }]
 },
 {
   "name":"org.asamk.signal.commands.ListGroupsCommand$JsonGroupMember",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"number","parameterTypes":[] }, {"name":"uuid","parameterTypes":[] }]
 },
 {
   "name":"org.asamk.signal.commands.ListIdentitiesCommand$JsonIdentity",
   "name":"org.signal.cdsi.proto.ClientResponse",
   "fields":[{"name":"debugPermitsUsed_"}, {"name":"e164PniAciTriples_"}, {"name":"retryAfterSecs_"}, {"name":"token_"}]
 },
+{
+  "name":"org.signal.libsignal.protocol.IdentityKey"
+},
+{
+  "name":"org.signal.libsignal.protocol.ecc.ECPublicKey"
+},
+{
+  "name":"org.signal.libsignal.protocol.kem.KEMPublicKey"
+},
 {
   "name":"org.signal.libsignal.protocol.state.IdentityKeyStore",
   "allDeclaredMethods":true
 },
 {
   "name":"org.signal.storageservice.protos.groups.local.DecryptedBannedMember",
-  "fields":[{"name":"serviceIdBinary_"}, {"name":"timestamp_"}, {"name":"uuid_"}]
+  "fields":[{"name":"serviceIdBinary_"}, {"name":"timestamp_"}]
 },
 {
   "name":"org.signal.storageservice.protos.groups.local.DecryptedGroup",
 },
 {
   "name":"org.signal.storageservice.protos.groups.local.DecryptedPendingMember",
-  "fields":[{"name":"addedByUuid_"}, {"name":"role_"}, {"name":"serviceIdBinary_"}, {"name":"timestamp_"}, {"name":"uuidCipherText_"}, {"name":"uuid_"}]
+  "fields":[{"name":"addedByUuid_"}, {"name":"role_"}, {"name":"serviceIdBinary_"}, {"name":"timestamp_"}, {"name":"uuidCipherText_"}]
 },
 {
   "name":"org.signal.storageservice.protos.groups.local.DecryptedPendingMemberRemoval",
-  "fields":[{"name":"uuidCipherText_"}, {"name":"uuid_"}]
+  "fields":[{"name":"uuidCipherText_"}]
 },
 {
   "name":"org.signal.storageservice.protos.groups.local.DecryptedRequestingMember",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
-  "methods":[{"name":"getCapabilities","parameterTypes":[] }, {"name":"getDiscoverableByPhoneNumber","parameterTypes":[] }, {"name":"getFetchesMessages","parameterTypes":[] }, {"name":"getName","parameterTypes":[] }, {"name":"getPin","parameterTypes":[] }, {"name":"getPniRegistrationId","parameterTypes":[] }, {"name":"getRecoveryPassword","parameterTypes":[] }, {"name":"getRegistrationId","parameterTypes":[] }, {"name":"getRegistrationLock","parameterTypes":[] }, {"name":"getSignalingKey","parameterTypes":[] }, {"name":"getUnidentifiedAccessKey","parameterTypes":[] }, {"name":"getUnrestrictedUnidentifiedAccess","parameterTypes":[] }, {"name":"getVideo","parameterTypes":[] }, {"name":"getVoice","parameterTypes":[] }]
+  "methods":[{"name":"getCapabilities","parameterTypes":[] }, {"name":"getDiscoverableByPhoneNumber","parameterTypes":[] }, {"name":"getFetchesMessages","parameterTypes":[] }, {"name":"getName","parameterTypes":[] }, {"name":"getPniRegistrationId","parameterTypes":[] }, {"name":"getRecoveryPassword","parameterTypes":[] }, {"name":"getRegistrationId","parameterTypes":[] }, {"name":"getRegistrationLock","parameterTypes":[] }, {"name":"getSignalingKey","parameterTypes":[] }, {"name":"getUnidentifiedAccessKey","parameterTypes":[] }, {"name":"getUnrestrictedUnidentifiedAccess","parameterTypes":[] }, {"name":"getVideo","parameterTypes":[] }, {"name":"getVoice","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.api.account.AccountAttributes$Capabilities",
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true
 },
-{
-  "name":"org.whispersystems.signalservice.api.push.ACI",
-  "allDeclaredFields":true,
-  "queryAllDeclaredMethods":true,
-  "queryAllDeclaredConstructors":true
-},
 {
   "name":"org.whispersystems.signalservice.api.push.ServiceId",
   "allDeclaredFields":true,
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
+  "allDeclaredClasses":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"getSignature","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.AttachmentV2UploadAttributes",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.AuthCredentials",
   "name":"org.whispersystems.signalservice.internal.push.DeviceId",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.DeviceInfoList",
   "name":"org.whispersystems.signalservice.internal.push.GcmRegistrationId",
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
-  "queryAllDeclaredConstructors":true
+  "queryAllDeclaredConstructors":true,
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","boolean"] }, {"name":"getGcmRegistrationId","parameterTypes":[] }, {"name":"getWebSocketChannel","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.GetAciByUsernameResponse",
 {
   "name":"org.whispersystems.signalservice.internal.push.KyberPreKeyEntity",
   "allDeclaredFields":true,
+  "allDeclaredClasses":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"getKeyId","parameterTypes":[] }, {"name":"getPublicKey","parameterTypes":[] }, {"name":"getSignature","parameterTypes":[] }]
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
+  "allDeclaredClasses":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"getKeyId","parameterTypes":[] }, {"name":"getPublicKey","parameterTypes":[] }]
 },
 {
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
+  "allDeclaredClasses":true,
   "methods":[{"name":"getIdentityKey","parameterTypes":[] }, {"name":"getPreKeys","parameterTypes":[] }, {"name":"getSignedPreKey","parameterTypes":[] }]
 },
 {
-  "name":"org.whispersystems.signalservice.internal.push.PreKeyStatus",
+  "name":"org.whispersystems.signalservice.internal.push.ProfileAvatarUploadAttributes",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "allDeclaredConstructors":true,
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "name":"org.whispersystems.signalservice.internal.push.ProfileAvatarUploadAttributes",
-  "allDeclaredFields":true,
-  "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
-},
 {
   "name":"org.whispersystems.signalservice.internal.push.ProvisioningMessage",
   "allDeclaredFields":true,
   "name":"org.whispersystems.signalservice.internal.push.PushServiceSocket$RegistrationLockFailure",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.PushServiceSocket$RegistrationLockV2",
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
-  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.Integer","java.lang.Integer","java.lang.Integer","boolean","java.util.List","boolean"] }]
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.Integer","java.lang.Integer","java.lang.Integer","boolean","java.util.List","boolean"] }, {"name":"<init>","parameterTypes":["java.lang.String","java.lang.Integer","java.lang.Integer","java.lang.Integer","boolean","java.util.List","boolean","int","kotlin.jvm.internal.DefaultConstructorMarker"] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.RegistrationSessionRequestBody",
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
-  "methods":[{"name":"getAccountAttributes","parameterTypes":[] }, {"name":"getAciIdentityKey","parameterTypes":[] }, {"name":"getAciPqLastResortPreKey","parameterTypes":[] }, {"name":"getAciSignedPreKey","parameterTypes":[] }, {"name":"getGcmToken","parameterTypes":[] }, {"name":"getPniIdentityKey","parameterTypes":[] }, {"name":"getPniPqLastResortPreKey","parameterTypes":[] }, {"name":"getPniSignedPreKey","parameterTypes":[] }, {"name":"getRecoveryPassword","parameterTypes":[] }, {"name":"getSessionId","parameterTypes":[] }, {"name":"getSkipDeviceTransfer","parameterTypes":[] }]
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String","org.whispersystems.signalservice.api.account.AccountAttributes","java.lang.String","java.lang.String","org.whispersystems.signalservice.api.push.SignedPreKeyEntity","org.whispersystems.signalservice.api.push.SignedPreKeyEntity","org.whispersystems.signalservice.internal.push.KyberPreKeyEntity","org.whispersystems.signalservice.internal.push.KyberPreKeyEntity","org.whispersystems.signalservice.internal.push.GcmRegistrationId","boolean","boolean"] }, {"name":"getAccountAttributes","parameterTypes":[] }, {"name":"getAciIdentityKey","parameterTypes":[] }, {"name":"getAciPqLastResortPreKey","parameterTypes":[] }, {"name":"getAciSignedPreKey","parameterTypes":[] }, {"name":"getGcmToken","parameterTypes":[] }, {"name":"getPniIdentityKey","parameterTypes":[] }, {"name":"getPniPqLastResortPreKey","parameterTypes":[] }, {"name":"getPniSignedPreKey","parameterTypes":[] }, {"name":"getRecoveryPassword","parameterTypes":[] }, {"name":"getRequireAtomic","parameterTypes":[] }, {"name":"getSessionId","parameterTypes":[] }, {"name":"getSkipDeviceTransfer","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.ReserveUsernameRequest",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$ContactDetails",
-  "fields":[{"name":"aci_"}, {"name":"archived_"}, {"name":"avatar_"}, {"name":"bitField0_"}, {"name":"blocked_"}, {"name":"color_"}, {"name":"expireTimer_"}, {"name":"inboxPosition_"}, {"name":"name_"}, {"name":"number_"}, {"name":"profileKey_"}, {"name":"uuid_"}, {"name":"verified_"}]
+  "fields":[{"name":"aci_"}, {"name":"archived_"}, {"name":"avatar_"}, {"name":"bitField0_"}, {"name":"blocked_"}, {"name":"color_"}, {"name":"expireTimer_"}, {"name":"inboxPosition_"}, {"name":"name_"}, {"name":"number_"}, {"name":"profileKey_"}, {"name":"verified_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$ContactDetails$Avatar",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Quote",
-  "fields":[{"name":"attachments_"}, {"name":"authorAci_"}, {"name":"authorUuid_"}, {"name":"bitField0_"}, {"name":"bodyRanges_"}, {"name":"id_"}, {"name":"text_"}, {"name":"type_"}]
+  "fields":[{"name":"attachments_"}, {"name":"authorAci_"}, {"name":"bitField0_"}, {"name":"bodyRanges_"}, {"name":"id_"}, {"name":"text_"}, {"name":"type_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Quote$QuotedAttachment",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Reaction",
-  "fields":[{"name":"bitField0_"}, {"name":"emoji_"}, {"name":"remove_"}, {"name":"targetAuthorAci_"}, {"name":"targetAuthorUuid_"}, {"name":"targetSentTimestamp_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"emoji_"}, {"name":"remove_"}, {"name":"targetAuthorAci_"}, {"name":"targetSentTimestamp_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Sticker",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$StoryContext",
-  "fields":[{"name":"authorUuid_"}, {"name":"bitField0_"}, {"name":"sentTimestamp_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"sentTimestamp_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$EditMessage",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$Envelope",
-  "fields":[{"name":"bitField0_"}, {"name":"content_"}, {"name":"destinationServiceId_"}, {"name":"destinationUuid_"}, {"name":"reportingToken_"}, {"name":"serverGuid_"}, {"name":"serverTimestamp_"}, {"name":"sourceDevice_"}, {"name":"sourceServiceId_"}, {"name":"sourceUuid_"}, {"name":"story_"}, {"name":"timestamp_"}, {"name":"type_"}, {"name":"updatedPni_"}, {"name":"urgent_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"content_"}, {"name":"destinationServiceId_"}, {"name":"reportingToken_"}, {"name":"serverGuid_"}, {"name":"serverTimestamp_"}, {"name":"sourceDevice_"}, {"name":"sourceServiceId_"}, {"name":"story_"}, {"name":"timestamp_"}, {"name":"type_"}, {"name":"updatedPni_"}, {"name":"urgent_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$GroupContext",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$MessageRequestResponse",
-  "fields":[{"name":"bitField0_"}, {"name":"groupId_"}, {"name":"threadUuid_"}, {"name":"type_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"groupId_"}, {"name":"type_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$OutgoingPayment",
-  "fields":[{"name":"bitField0_"}, {"name":"note_"}, {"name":"paymentDetailCase_"}, {"name":"paymentDetail_"}, {"name":"recipientUuid_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"note_"}, {"name":"paymentDetailCase_"}, {"name":"paymentDetail_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$OutgoingPayment$MobileCoin",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Read",
-  "fields":[{"name":"bitField0_"}, {"name":"senderAci_"}, {"name":"senderUuid_"}, {"name":"timestamp_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"senderAci_"}, {"name":"timestamp_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Request",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Sent",
-  "fields":[{"name":"bitField0_"}, {"name":"destinationE164_"}, {"name":"destinationServiceId_"}, {"name":"destinationUuid_"}, {"name":"editMessage_"}, {"name":"expirationStartTimestamp_"}, {"name":"isRecipientUpdate_"}, {"name":"message_"}, {"name":"storyMessageRecipients_"}, {"name":"storyMessage_"}, {"name":"timestamp_"}, {"name":"unidentifiedStatus_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"destinationE164_"}, {"name":"destinationServiceId_"}, {"name":"editMessage_"}, {"name":"expirationStartTimestamp_"}, {"name":"isRecipientUpdate_"}, {"name":"message_"}, {"name":"storyMessageRecipients_"}, {"name":"storyMessage_"}, {"name":"timestamp_"}, {"name":"unidentifiedStatus_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Sent$StoryMessageRecipient",
-  "fields":[{"name":"bitField0_"}, {"name":"destinationUuid_"}, {"name":"distributionListIds_"}, {"name":"isAllowedToReply_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"destinationServiceId_"}, {"name":"distributionListIds_"}, {"name":"isAllowedToReply_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Sent$UnidentifiedDeliveryStatus",
-  "fields":[{"name":"bitField0_"}, {"name":"destinationServiceId_"}, {"name":"destinationUuid_"}, {"name":"unidentified_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"destinationServiceId_"}, {"name":"unidentified_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$StickerPackOperation",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$ViewOnceOpen",
-  "fields":[{"name":"bitField0_"}, {"name":"senderUuid_"}, {"name":"timestamp_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"timestamp_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Viewed",
-  "fields":[{"name":"bitField0_"}, {"name":"senderUuid_"}, {"name":"timestamp_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"senderAci_"}, {"name":"timestamp_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$TextAttachment",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$Verified",
-  "fields":[{"name":"bitField0_"}, {"name":"destinationAci_"}, {"name":"destinationUuid_"}, {"name":"identityKey_"}, {"name":"nullMessage_"}, {"name":"state_"}]
+  "fields":[{"name":"bitField0_"}, {"name":"destinationAci_"}, {"name":"identityKey_"}, {"name":"nullMessage_"}, {"name":"state_"}]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.StaleDevices",
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
-  "methods":[{"name":"getCaptcha","parameterTypes":[] }, {"name":"getMcc","parameterTypes":[] }, {"name":"getMnc","parameterTypes":[] }, {"name":"getPushChallenge","parameterTypes":[] }, {"name":"getPushToken","parameterTypes":[] }, {"name":"getPushTokenType","parameterTypes":[] }]
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }, {"name":"getCaptcha","parameterTypes":[] }, {"name":"getMcc","parameterTypes":[] }, {"name":"getMnc","parameterTypes":[] }, {"name":"getPushChallenge","parameterTypes":[] }, {"name":"getPushToken","parameterTypes":[] }, {"name":"getPushTokenType","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.VerificationSessionMetadataRequestBody",
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
-  "methods":[{"name":"getMcc","parameterTypes":[] }, {"name":"getMnc","parameterTypes":[] }, {"name":"getNumber","parameterTypes":[] }, {"name":"getPushToken","parameterTypes":[] }, {"name":"getPushTokenType","parameterTypes":[] }]
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }, {"name":"getMcc","parameterTypes":[] }, {"name":"getMnc","parameterTypes":[] }, {"name":"getNumber","parameterTypes":[] }, {"name":"getPushToken","parameterTypes":[] }, {"name":"getPushTokenType","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.VerifyAccountResponse",
index 5e87a14d47f3b950bec0675f3026e286c310c124..8d629bae2aef79a2eb147e5a3523f7e4eac7415a 100644 (file)
     "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt67b/uprops.icu\\E"
   }, {
     "pattern":"java.base:\\Qsun/net/idn/uidna.spp\\E"
+  }, {
+    "pattern":"java.base:\\Qsun/net/www/content-types.properties\\E"
   }, {
     "pattern":"java.base:\\Qsun/text/resources/LineBreakIteratorData\\E"
   }]},
index 485990ed34fd96dd4b094f70cd4013e818f70a86..de7c6667a82ef2717a07efd1728cffcc0e91425e 100644 (file)
@@ -29,6 +29,7 @@ import org.whispersystems.signalservice.api.push.exceptions.AlreadyVerifiedExcep
 import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException;
 import org.whispersystems.signalservice.api.push.exceptions.DeprecatedVersionException;
 import org.whispersystems.signalservice.api.util.DeviceNameUtil;
+import org.whispersystems.signalservice.api.util.UuidUtil;
 import org.whispersystems.signalservice.internal.push.KyberPreKeyEntity;
 import org.whispersystems.signalservice.internal.push.OutgoingPushMessage;
 import org.whispersystems.util.Base64UrlSafe;
@@ -101,8 +102,8 @@ public class AccountHelper {
     public void checkWhoAmiI() throws IOException {
         final var whoAmI = dependencies.getAccountManager().getWhoAmI();
         final var number = whoAmI.getNumber();
-        final var aci = ACI.parseOrNull(whoAmI.getAci());
-        final var pni = PNI.parseOrNull(whoAmI.getPni());
+        final var aci = ACI.parseOrThrow(whoAmI.getAci());
+        final var pni = PNI.from(UuidUtil.parseOrThrow(whoAmI.getPni()));
         if (number.equals(account.getNumber()) && aci.equals(account.getAci()) && pni.equals(account.getPni())) {
             return;
         }
index 720b2de1591e540357ae27ed4970a6d4057a17ca..3ba708ead0ced6e200b0837473737c9d55c856c8 100644 (file)
@@ -45,6 +45,7 @@ import org.whispersystems.signalservice.api.push.ServiceIdType;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.push.exceptions.AlreadyVerifiedException;
 import org.whispersystems.signalservice.api.push.exceptions.DeprecatedVersionException;
+import org.whispersystems.signalservice.api.util.UuidUtil;
 import org.whispersystems.signalservice.internal.push.VerifyAccountResponse;
 import org.whispersystems.signalservice.internal.util.DynamicCredentialsProvider;
 
@@ -164,8 +165,8 @@ public class RegistrationManagerImpl implements RegistrationManager {
         }
 
         //accountManager.setGcmId(Optional.of(GoogleCloudMessaging.getInstance(this).register(REGISTRATION_ID)));
-        final var aci = ACI.parseOrNull(response.getUuid());
-        final var pni = PNI.parseOrNull(response.getPni());
+        final var aci = ACI.parseOrThrow(response.getUuid());
+        final var pni = PNI.from(UuidUtil.parseOrThrow(response.getPni()));
         account.finishRegistration(aci, pni, masterKey, pin, aciPreKeys, pniPreKeys);
         accountFileUpdater.updateAccountIdentifiers(account.getNumber(), aci);
 
index 5a112c790459b149a994ee8d67f95f28a0ba1d4a..81e622a8b88173e389fa2a2312c0d4bddb2021d7 100644 (file)
@@ -975,8 +975,10 @@ public class RecipientStore implements RecipientIdCreator, RecipientResolver, Re
     }
 
     private RecipientAddress getRecipientAddressFromResultSet(ResultSet resultSet) throws SQLException {
-        final var serviceId = Optional.ofNullable(resultSet.getBytes("uuid")).map(ServiceId::parseOrNull);
-        final var pni = Optional.ofNullable(resultSet.getBytes("pni")).map(PNI::parseOrNull);
+        final var pni = Optional.ofNullable(resultSet.getBytes("pni")).map(UuidUtil::parseOrNull).map(PNI::from);
+        final var serviceIdUuid = Optional.ofNullable(resultSet.getBytes("uuid")).map(UuidUtil::parseOrNull);
+        final var serviceId = serviceIdUuid.isPresent() && pni.isPresent() && serviceIdUuid.get()
+                .equals(pni.get().getRawUuid()) ? pni.<ServiceId>map(p -> p) : serviceIdUuid.<ServiceId>map(ACI::from);
         final var number = Optional.ofNullable(resultSet.getString("number"));
         final var username = Optional.ofNullable(resultSet.getString("username"));
         return new RecipientAddress(serviceId, pni, number, username);
index 90f987477fcf720ac8e45d4e4e37f0dcdae041a0..538676ed67147ce6a2a945302cc244f805442c7f 100755 (executable)
@@ -11,6 +11,7 @@ NUMBER_2="$2"
 TEST_PIN_1=456test_pin_foo123
 NATIVE=0
 JSON_RPC=0
+TEST_REGISTER=0
 
 PATH_TEST_CONFIG="$PWD/test-config"
 PATH_MAIN="$PATH_TEST_CONFIG/main"
@@ -100,8 +101,10 @@ run_main --version
 run_main --help
 
 ## Register
-register "$NUMBER_1" "$TEST_PIN_1"
-register "$NUMBER_2"
+if [ "$TEST_REGISTER" -eq 1 ]; then
+       register "$NUMBER_1" "$TEST_PIN_1"
+       register "$NUMBER_2"
+fi
 
 sleep 5
 
@@ -230,8 +233,10 @@ done
 run_main -a "$NUMBER_1" removeDevice -d 2
 
 ## Unregister
-run_main -a "$NUMBER_1" unregister
-run_main -a "$NUMBER_2" unregister --delete-account
+if [ "$TEST_REGISTER" -eq 1 ]; then
+       run_main -a "$NUMBER_1" unregister
+       run_main -a "$NUMBER_2" unregister --delete-account
+fi
 
 if [ ! -z "$GRAALVM_HOME" ]; then
   "$GRAALVM_HOME"/lib/svm/bin/native-image-configure generate --input-dir=graalvm-config-dir/ --input-dir=graalvm-config-dir-linked/ --input-dir=graalvm-config-dir-main/ --output-dir=graalvm-config-dir//
index 547e80a8749d7ccaf80bf0e092bdbc806deec987..339d7c7e4f64c5e036e89433273d996a6b034081 100644 (file)
@@ -5,7 +5,7 @@ public class BaseConfig {
     public final static String PROJECT_NAME = BaseConfig.class.getPackage().getImplementationTitle();
     public final static String PROJECT_VERSION = BaseConfig.class.getPackage().getImplementationVersion();
 
-    final static String USER_AGENT_SIGNAL_ANDROID = "Signal-Android/6.22.0";
+    final static String USER_AGENT_SIGNAL_ANDROID = "Signal-Android/6.28.1";
     final static String USER_AGENT_SIGNAL_CLI = PROJECT_NAME == null
             ? "signal-cli"
             : PROJECT_NAME + "/" + PROJECT_VERSION;