From 820277800be4a666fe6c36e29fb66b8ff71379e8 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 11 May 2022 14:25:35 -0400 Subject: [PATCH] Ignore identity updates for self. --- .../crypto/storage/SignalBaseIdentityKeyStore.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalBaseIdentityKeyStore.java b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalBaseIdentityKeyStore.java index 8f7a68a035..f07d812b89 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalBaseIdentityKeyStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/crypto/storage/SignalBaseIdentityKeyStore.java @@ -29,6 +29,7 @@ import org.whispersystems.signalservice.api.push.ServiceId; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -76,7 +77,11 @@ public class SignalBaseIdentityKeyStore { return SaveResult.NEW; } - if (!identityRecord.getIdentityKey().equals(identityKey)) { + boolean identityKeyChanged = !identityRecord.getIdentityKey().equals(identityKey); + + if (identityKeyChanged && Recipient.self().getId().equals(recipientId) && Objects.equals(SignalStore.account().getAci(), ServiceId.parseOrNull(address.getName()))) { + Log.w(TAG, "Received different identity key for self, ignoring" + " | Existing: " + identityRecord.getIdentityKey().hashCode() + ", New: " + identityKey.hashCode()); + } else if (identityKeyChanged) { Log.i(TAG, "Replacing existing identity for " + address + " | Existing: " + identityRecord.getIdentityKey().hashCode() + ", New: " + identityKey.hashCode()); VerifiedStatus verifiedStatus;