From cea8546ce5378b4c9da59f082334e9654a15dd8c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 27 Aug 2024 12:14:01 -0400 Subject: [PATCH] Fix serialization issue during registration. --- .../java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt | 6 +++++- .../registration/data/LocalRegistrationMetadataUtil.kt | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt index aa419886e3..0eac129b8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt @@ -4,6 +4,7 @@ import androidx.annotation.VisibleForTesting import org.signal.core.util.logging.Log import org.signal.core.util.roundedString import org.signal.libsignal.protocol.InvalidKeyException +import org.signal.libsignal.protocol.InvalidKeyIdException import org.signal.libsignal.protocol.state.KyberPreKeyRecord import org.signal.libsignal.protocol.state.PreKeyRecord import org.signal.libsignal.protocol.state.SignalProtocolStore @@ -269,7 +270,10 @@ class PreKeysSyncJob private constructor( lastResortKyberKey = protocolStore.loadKyberPreKey(metadataStore.lastResortKyberPreKeyId).keyPair.publicKey ) } catch (e: InvalidKeyException) { - Log.w(TAG, "Unable to load keys", e) + Log.w(TAG, "Unable to load keys.", e) + return false + } catch (e: InvalidKeyIdException) { + Log.w(TAG, "Unable to load keys.", e) return false } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/data/LocalRegistrationMetadataUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/data/LocalRegistrationMetadataUtil.kt index 021e78ed83..571f28b02d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/data/LocalRegistrationMetadataUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/data/LocalRegistrationMetadataUtil.kt @@ -22,10 +22,10 @@ object LocalRegistrationMetadataUtil { return LocalRegistrationMetadata.Builder().apply { aciIdentityKeyPair = localAciIdentityKeyPair.serialize().toByteString() aciSignedPreKey = remoteResult.aciPreKeyCollection.signedPreKey.serialize().toByteString() - aciLastRestoreKyberPreKey = remoteResult.aciPreKeyCollection.signedPreKey.serialize().toByteString() + aciLastRestoreKyberPreKey = remoteResult.aciPreKeyCollection.lastResortKyberPreKey.serialize().toByteString() pniIdentityKeyPair = localPniIdentityKeyPair.serialize().toByteString() pniSignedPreKey = remoteResult.pniPreKeyCollection.signedPreKey.serialize().toByteString() - pniLastRestoreKyberPreKey = remoteResult.pniPreKeyCollection.signedPreKey.serialize().toByteString() + pniLastRestoreKyberPreKey = remoteResult.pniPreKeyCollection.lastResortKyberPreKey.serialize().toByteString() aci = remoteResult.uuid pni = remoteResult.pni hasPin = remoteResult.storageCapable