Drop legacy field from provisioning and sync messages.

This commit is contained in:
Greyson Parrelli
2026-03-25 16:59:18 -04:00
committed by Alex Hart
parent 4ce2c6ef73
commit 5ae51f844e
7 changed files with 5 additions and 11 deletions

View File

@@ -56,7 +56,6 @@ class MultiDeviceKeysUpdateJob private constructor(parameters: Parameters) : Bas
val syncMessage = SignalServiceSyncMessage.forKeys(
KeysMessage(
storageService = SignalStore.storageService.storageKey,
master = SignalStore.svr.masterKey,
accountEntropyPool = SignalStore.account.accountEntropyPool,
mediaRootBackupKey = SignalStore.backup.mediaRootBackupKey
)

View File

@@ -515,6 +515,8 @@ object RegistrationRepository {
.registrationApi
.registerAsSecondaryDevice(message.provisioningCode!!, accountAttributes, aciPreKeys, pniPreKeys, registrationData.fcmToken)
.map { respone ->
val aep = AccountEntropyPool(message.accountEntropyPool!!)
RegisterAsLinkedDeviceResponse(
deviceId = respone.deviceId.toInt(),
accountRegistrationResult = AccountRegistrationResult(
@@ -522,7 +524,7 @@ object RegistrationRepository {
pni = pni.toString(),
storageCapable = false,
number = message.number!!,
masterKey = MasterKey(message.masterKey!!.toByteArray()),
masterKey = aep.deriveMasterKey(),
pin = null,
aciPreKeyCollection = aciPreKeys,
pniPreKeyCollection = pniPreKeys,

View File

@@ -1749,10 +1749,6 @@ public class SignalServiceMessageSender {
SyncMessage.Builder syncMessage = createSyncMessageBuilder();
SyncMessage.Keys.Builder builder = new SyncMessage.Keys.Builder();
if (keysMessage.getMaster() != null) {
builder.master(ByteString.of(keysMessage.getMaster().serialize()));
}
if (keysMessage.getAccountEntropyPool() != null) {
builder.accountEntropyPool(keysMessage.getAccountEntropyPool().getValue());
}

View File

@@ -120,7 +120,6 @@ class LinkDeviceApi(
userAgent = null,
profileKey = profileKey.serialize().toByteString(),
provisioningVersion = ProvisioningVersion.CURRENT.value,
masterKey = masterKey.serialize().toByteString(),
ephemeralBackupKey = ephemeralMessageBackupKey?.value?.toByteString(),
accountEntropyPool = accountEntropyPool.value,
mediaRootBackupKey = mediaRootBackupKey.value.toByteString(),

View File

@@ -1,13 +1,11 @@
package org.whispersystems.signalservice.api.messages.multidevice
import org.signal.core.models.AccountEntropyPool
import org.signal.core.models.MasterKey
import org.signal.core.models.backup.MediaRootBackupKey
import org.signal.core.models.storageservice.StorageKey
data class KeysMessage(
val storageService: StorageKey?,
val master: MasterKey?,
val accountEntropyPool: AccountEntropyPool?,
val mediaRootBackupKey: MediaRootBackupKey?
)

View File

@@ -38,7 +38,7 @@ message ProvisionMessage {
optional bytes profileKey = 6;
optional bool readReceipts = 7;
optional uint32 provisioningVersion = 9;
optional bytes masterKey = 13; // Deprecated, but required by linked devices
reserved /*masterKey*/ 13; // Deprecated in favor of accountEntropyPool
optional bytes ephemeralBackupKey = 14; // 32 bytes
optional string accountEntropyPool = 15;
optional bytes mediaRootBackupKey = 16; // 32-bytes

View File

@@ -588,7 +588,7 @@ message SyncMessage {
message Keys {
reserved /* storageService */ 1;
optional bytes master = 2; // deprecated: this field will be removed in a future release.
reserved /* master */ 2;
optional string accountEntropyPool = 3;
optional bytes mediaRootBackupKey = 4;
}