From 22ba9bf8d8ac41c74cd8d4e388c5cd44b3f76e2e Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Thu, 30 May 2024 19:45:01 -0500 Subject: [PATCH] Require more provisioning fields when linking Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> --- ts/textsecure/AccountManager.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/ts/textsecure/AccountManager.ts b/ts/textsecure/AccountManager.ts index 454f4a03fd..ce92ec0e71 100644 --- a/ts/textsecure/AccountManager.ts +++ b/ts/textsecure/AccountManager.ts @@ -124,7 +124,7 @@ type CreateAccountSharedOptionsType = Readonly<{ aciKeyPair: KeyPairType; pniKeyPair: KeyPairType; profileKey: Uint8Array; - masterKey: Uint8Array | undefined; + masterKey: Uint8Array; backupFile?: Uint8Array; }>; @@ -428,8 +428,9 @@ export default class AccountManager extends EventTarget { !provisionMessage.provisioningCode || !provisionMessage.aciKeyPair || !provisionMessage.pniKeyPair || - !provisionMessage.profileKey || !provisionMessage.aci || + !Bytes.isNotEmpty(provisionMessage.profileKey) || + !Bytes.isNotEmpty(provisionMessage.masterKey) || !isUntaggedPniString(provisionMessage.untaggedPni) ) { throw new Error( @@ -1261,13 +1262,11 @@ export default class AccountManager extends EventTarget { if (userAgent) { await storage.put('userAgent', userAgent); } - if (masterKey) { - await storage.put('masterKey', Bytes.toBase64(masterKey)); - await storage.put( - 'storageKey', - Bytes.toBase64(deriveStorageServiceKey(masterKey)) - ); - } + await storage.put('masterKey', Bytes.toBase64(masterKey)); + await storage.put( + 'storageKey', + Bytes.toBase64(deriveStorageServiceKey(masterKey)) + ); await storage.put('read-receipt-setting', Boolean(readReceipts));