From 501625c19de83dc376d82289d285453019cad0a2 Mon Sep 17 00:00:00 2001 From: valere Date: Wed, 30 Nov 2022 12:10:34 +0100 Subject: [PATCH] post rebase fix rust flavor --- .../session/crypto/model/ImportRoomKeysResult.kt | 11 ----------- .../android/sdk/internal/crypto/OlmMachine.kt | 11 ++++++++++- .../sdk/internal/crypto/RustCryptoService.kt | 16 ++++++++++++---- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/model/ImportRoomKeysResult.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/model/ImportRoomKeysResult.kt index 263affb08f..7ef475bba1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/model/ImportRoomKeysResult.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/crypto/model/ImportRoomKeysResult.kt @@ -22,14 +22,3 @@ data class ImportRoomKeysResult( /**It's a map from room id to a map of the sender key to a list of session*/ val importedSessionInfo: Map>> ) -// { -// companion object { -// fun fromOlm(result: KeysImportResult): ImportRoomKeysResult { -// return ImportRoomKeysResult( -// result.total.toInt(), -// result.imported.toInt(), -// result.keys -// ) -// } -// } -// } diff --git a/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt b/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt index a86b3af910..e28b53245b 100644 --- a/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt +++ b/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/OlmMachine.kt @@ -71,6 +71,7 @@ import org.matrix.rustcomponents.sdk.crypto.DecryptionException import org.matrix.rustcomponents.sdk.crypto.DeviceLists import org.matrix.rustcomponents.sdk.crypto.EncryptionSettings import org.matrix.rustcomponents.sdk.crypto.KeyRequestPair +import org.matrix.rustcomponents.sdk.crypto.KeysImportResult import org.matrix.rustcomponents.sdk.crypto.Logger import org.matrix.rustcomponents.sdk.crypto.MegolmV1BackupKey import org.matrix.rustcomponents.sdk.crypto.Request @@ -475,6 +476,14 @@ internal class OlmMachine @Inject constructor( inner.exportRoomKeys(passphrase, rounds).toByteArray() } + private fun KeysImportResult.fromOlm(): ImportRoomKeysResult { + return ImportRoomKeysResult( + this.total.toInt(), + this.imported.toInt(), + this.keys + ) + } + /** * Import room keys from the given serialized key export. * @@ -497,7 +506,7 @@ internal class OlmMachine @Inject constructor( val result = inner.importRoomKeys(decodedKeys, passphrase, rustListener) - ImportRoomKeysResult.fromOlm(result) + result.fromOlm() } @Throws(CryptoStoreException::class) diff --git a/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt b/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt index e83734773c..81fd0174e7 100755 --- a/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt +++ b/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt @@ -167,18 +167,22 @@ internal class RustCryptoService @Inject constructor( } } - override suspend fun deleteDevice(deviceId: String, userInteractiveAuthInterceptor: UserInteractiveAuthInterceptor) { - val params = DeleteDeviceTask.Params(deviceId, userInteractiveAuthInterceptor, null) + override suspend fun deleteDevices(deviceIds: List, userInteractiveAuthInterceptor: UserInteractiveAuthInterceptor) { + val params = DeleteDeviceTask.Params(deviceIds, userInteractiveAuthInterceptor, null) deleteDeviceTask.execute(params) } + override suspend fun deleteDevice(deviceId: String, userInteractiveAuthInterceptor: UserInteractiveAuthInterceptor) { + deleteDevices(listOf(deviceId), userInteractiveAuthInterceptor) + } + override fun getCryptoVersion(context: Context, longFormat: Boolean): String { // TODO we should provide olm and rust-sdk version from the rust-sdk return if (longFormat) "Rust SDK 0.3" else "0.3" } - override suspend fun getMyCryptoDevice(): CryptoDeviceInfo { - return olmMachine.ownDevice() + override fun getMyCryptoDevice(): CryptoDeviceInfo { + return runBlocking { olmMachine.ownDevice() } } override suspend fun fetchDevicesList(): List { @@ -569,6 +573,10 @@ internal class RustCryptoService @Inject constructor( megolmSessionImportManager.dispatchNewSession(roomId, sessionId) } + override suspend fun onSyncWillProcess(isInitialSync: Boolean) { + // nothing no rust + } + override suspend fun receiveSyncChanges( toDevice: ToDeviceSyncResponse?, deviceChanges: DeviceListResponse?,