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 bc8dd341e1fa5dff7ab3684bdbec1b344befd118..c088cb223029ea633c037996969b13a77992c79a 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 a8cb58a905146ca1a1612e73b4a6da51db136ff7..caade6dbd3afd6634443d39f8bb506c71ee819ae 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 )