diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index 24d8349c58..dd753f502c 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation libs.jetbrains.coroutinesCore implementation libs.jetbrains.coroutinesAndroid - implementation 'org.matrix.rustcomponents:crypto-android:0.1.0' + implementation 'org.matrix.rustcomponents:crypto-android:0.2.1-SNAPSHOT' //implementation files('libs/crypto-android-release.aar') // implementation(name: 'crypto-android-release', ext: 'aar') 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 41f6c2e1a6..de1af7ad9c 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 @@ -59,6 +59,7 @@ import org.matrix.android.sdk.internal.network.parsing.CheckNumberType import org.matrix.android.sdk.internal.session.SessionScope import timber.log.Timber import uniffi.olm.BackupKeys +import uniffi.olm.BackupRecoveryKey import uniffi.olm.CrossSigningKeyExport import uniffi.olm.CrossSigningStatus import uniffi.olm.CryptoStoreException @@ -769,7 +770,7 @@ internal class OlmMachine @Inject constructor( } @Throws(CryptoStoreException::class) - suspend fun saveRecoveryKey(key: String?, version: String?) { + suspend fun saveRecoveryKey(key: BackupRecoveryKey?, version: String?) { withContext(coroutineDispatchers.computation) { 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 5b86984550..4cad17eac9 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 @@ -189,9 +189,7 @@ internal class RustKeyBackupService @Inject constructor( override fun saveBackupRecoveryKey(recoveryKey: BackupRecoveryKey?, version: String?) { cryptoCoroutineScope.launch { - val recoveryKeyStr = recoveryKey?.toBase64() - // TODO : change rust API to use BackupRecoveryKey - olmMachine.saveRecoveryKey(recoveryKeyStr, version) + olmMachine.saveRecoveryKey(recoveryKey?.inner, version) } } @@ -727,9 +725,8 @@ internal class RustKeyBackupService @Inject constructor( override suspend fun getKeyBackupRecoveryKeyInfo(): SavedKeyBackupKeyInfo? { val info = olmMachine.getBackupKeys() ?: return null - // TODO change rust ffi to return BackupRecoveryKey instead of base64 string - val backupRecoveryKey = BackupRecoveryKey.fromBase64(info.recoveryKey) - return SavedKeyBackupKeyInfo(backupRecoveryKey, info.backupVersion) + val backupRecoveryKey = BackupRecoveryKey(info.recoveryKey()) + return SavedKeyBackupKeyInfo(backupRecoveryKey, info.backupVersion()) } /**