From d6ecc7d330ec092bb74d92d52c385f34a87af785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Thu, 4 Nov 2021 13:32:25 +0100 Subject: [PATCH] crypto: Connect the backup disabling method --- .../android/sdk/internal/crypto/OlmMachine.kt | 8 ++++++++ .../crypto/keysbackup/RustKeyBackupService.kt | 15 ++------------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt index 54b899f6d4..16211912e1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt @@ -796,20 +796,28 @@ internal class OlmMachine( } } + @Throws(CryptoStoreException::class) + fun disableBackup() { + inner.disableBackup() + } + fun backupEnabled(): Boolean { return inner.backupEnabled() } + @Throws(CryptoStoreException::class) fun roomKeyCounts(): RoomKeyCounts { // TODO convert this to a suspendable method return inner.roomKeyCounts() } + @Throws(CryptoStoreException::class) fun getBackupKeys(): BackupKeys? { // TODO this needs to be suspendable return inner.getBackupKeys() } + @Throws(CryptoStoreException::class) fun saveRecoveryKey(key: String?, version: String?) { // TODO convert this to a suspendable method inner.saveRecoveryKey(key, version) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/RustKeyBackupService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/RustKeyBackupService.kt index cd523cf758..392d34ad4a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/RustKeyBackupService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/RustKeyBackupService.kt @@ -168,7 +168,7 @@ internal class RustKeyBackupService @Inject constructor( // Reset backup markers. // Don't we need to join the task here? Isn't this a race condition? cryptoCoroutineScope.launch(coroutineDispatchers.crypto) { - // TODO reset our backup state here, i.e. the `backed_up` flag on inbound group sessions + olmMachine.disableBackup() } val keyBackupVersion = KeysVersionResult( @@ -213,18 +213,7 @@ internal class RustKeyBackupService @Inject constructor( */ private fun resetKeysBackupData() { resetBackupAllGroupSessionsListeners() - - /* - - TODO reset data on the rust side - cryptoStore.setKeyBackupVersion(null) - cryptoStore.setKeysBackupData(null) - backupOlmPkEncryption?.releaseEncryption() - backupOlmPkEncryption = null - - // Reset backup markers - cryptoStore.resetBackupMarkers() - */ + olmMachine.disableBackup() } override fun deleteBackup(version: String, callback: MatrixCallback?) {