From 8ff81de988a6a2021adc0917ff8a9ecaae5615a9 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 28 Aug 2023 16:10:31 +0300 Subject: [PATCH] Generate random key outside sdk --- .../sdk/api/session/crypto/keysbackup/KeysBackupService.kt | 5 ++++- .../internal/crypto/keysbackup/DefaultKeysBackupService.kt | 6 ++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/keysbackup/KeysBackupService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/keysbackup/KeysBackupService.kt index bc8dd341..c088cb22 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/keysbackup/KeysBackupService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/keysbackup/KeysBackupService.kt @@ -128,8 +128,11 @@ interface KeysBackupService { callback: MatrixCallback<MegolmBackupCreationInfo> ) + fun prepareKeysBackupVersion( + key: ByteArray, + callback: MatrixCallback<MegolmBackupCreationInfo> + ) - fun prepareRandomKeyBackupVersion(callback: MatrixCallback<MegolmBackupCreationInfo>) /** * Delete a keys backup version. It will delete all backed up keys on the server, and the backup itself. * If we are backing up to this version. Backup will be stopped. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/DefaultKeysBackupService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/DefaultKeysBackupService.kt index a8cb58a9..caade6db 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/DefaultKeysBackupService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/DefaultKeysBackupService.kt @@ -237,14 +237,12 @@ internal class DefaultKeysBackupService @Inject constructor( } } - override fun prepareRandomKeyBackupVersion(callback: MatrixCallback<MegolmBackupCreationInfo>) { + override fun prepareKeysBackupVersion(key: ByteArray, callback: MatrixCallback<MegolmBackupCreationInfo>) { cryptoCoroutineScope.launch(coroutineDispatchers.io) { try { - val privateKey = ByteArray(32) - SecureRandom().nextBytes(privateKey) val olmPkDecryption = OlmPkDecryption() val signalableBackupAuthData = SignalableMegolmBackupAuthData( - publicKey = olmPkDecryption.setPrivateKey(privateKey), + publicKey = olmPkDecryption.setPrivateKey(key), privateKeySalt = null, privateKeyIterations = null ) -- GitLab