From 00e749834fa215d6cfce6e109358906c72f33ec2 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 19 Nov 2024 15:39:39 -0500 Subject: [PATCH] Sync the MediaRootBackupKey during linking. --- .../thoughtcrime/securesms/linkdevice/LinkDeviceRepository.kt | 3 ++- .../org/whispersystems/signalservice/api/link/LinkDeviceApi.kt | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceRepository.kt index 0bee66e448..ea1ee5fcdb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceRepository.kt @@ -156,7 +156,8 @@ object LinkDeviceRepository { profileKey = ProfileKeyUtil.getSelfProfileKey(), masterKey = SignalStore.svr.masterKey, code = verificationCodeResult.verificationCode, - ephemeralMessageBackupKey = ephemeralMessageBackupKey + ephemeralMessageBackupKey = ephemeralMessageBackupKey, + mediaRootBackupKey = SignalStore.backup.mediaRootBackupKey ) return when (deviceLinkResult) { diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/link/LinkDeviceApi.kt b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/link/LinkDeviceApi.kt index 7dfa25b218..2460c3b3d3 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/link/LinkDeviceApi.kt +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/link/LinkDeviceApi.kt @@ -10,6 +10,7 @@ import org.signal.libsignal.protocol.IdentityKeyPair import org.signal.libsignal.protocol.ecc.ECPublicKey import org.signal.libsignal.zkgroup.profiles.ProfileKey import org.whispersystems.signalservice.api.NetworkResult +import org.whispersystems.signalservice.api.backup.MediaRootBackupKey import org.whispersystems.signalservice.api.backup.MessageBackupKey import org.whispersystems.signalservice.api.kbs.MasterKey import org.whispersystems.signalservice.api.push.ServiceId.ACI @@ -62,6 +63,7 @@ class LinkDeviceApi(private val pushServiceSocket: PushServiceSocket) { pniIdentityKeyPair: IdentityKeyPair, profileKey: ProfileKey, masterKey: MasterKey, + mediaRootBackupKey: MediaRootBackupKey, code: String, ephemeralMessageBackupKey: MessageBackupKey? ): NetworkResult { @@ -79,6 +81,7 @@ class LinkDeviceApi(private val pushServiceSocket: PushServiceSocket) { provisioningCode = code, provisioningVersion = ProvisioningVersion.CURRENT.value, masterKey = masterKey.serialize().toByteString(), + mediaRootBackupKey = mediaRootBackupKey.value.toByteString(), ephemeralBackupKey = ephemeralMessageBackupKey?.value?.toByteString() ) val ciphertext = cipher.encrypt(message)