From 1801e26c089eca0278d8b95103bc490ef2c17e3b Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Thu, 23 May 2024 17:33:48 +0300 Subject: [PATCH] Random pickle key in sdk --- .../pass_phrase/restore/RestoreBackupDataSource.kt | 13 ++++++------- .../feature/pass_phrase/restore/SSSSDataSource.kt | 7 ++----- core/build.gradle | 2 +- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt index b51db190d..54a05d767 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt @@ -9,7 +9,6 @@ import org.futo.circles.auth.R import org.futo.circles.auth.feature.cross_signing.CrossSigningDataSource import org.futo.circles.auth.model.SecretKeyData import org.futo.circles.core.model.LoadingData -import org.futo.circles.core.provider.KeyStoreProvider import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.listeners.StepProgressListener @@ -21,8 +20,7 @@ import javax.inject.Inject class RestoreBackupDataSource @Inject constructor( @ApplicationContext private val context: Context, private val ssssDataSource: SSSSDataSource, - private val crossSigningDataSource: CrossSigningDataSource, - private val keyStoreProvider: KeyStoreProvider + private val crossSigningDataSource: CrossSigningDataSource ) { val loadingLiveData = MutableLiveData(LoadingData(isLoading = false)) @@ -79,10 +77,11 @@ class RestoreBackupDataSource @Inject constructor( try { val keyData = ssssDataSource.getBsSpekeSecretKeyData(progressObserver) restoreKeysWithRecoveryKey(keyData) - keyStoreProvider.storeBsSpekePrivateKey( - (keyData.keySpec as RawBytesKeySpec).privateKey, - keyData.keyId - ) + MatrixSessionProvider.getSessionOrThrow().sharedSecretStorageService() + .storeBsSpekePrivateKey( + (keyData.keySpec as RawBytesKeySpec).privateKey, + keyData.keyId + ) } catch (e: Throwable) { loadingLiveData.postValue(LoadingData(isLoading = false)) throw e diff --git a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt index 3b02df39a..37c5dafc9 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt @@ -2,7 +2,6 @@ package org.futo.circles.auth.feature.pass_phrase.restore import org.futo.circles.auth.bsspeke.BSSpekeClientProvider import org.futo.circles.auth.model.SecretKeyData -import org.futo.circles.core.provider.KeyStoreProvider import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.listeners.ProgressListener import org.matrix.android.sdk.api.listeners.StepProgressListener @@ -19,9 +18,7 @@ import org.matrix.android.sdk.api.session.securestorage.SsssKeySpec import org.matrix.android.sdk.api.util.toBase64NoPadding import javax.inject.Inject -class SSSSDataSource @Inject constructor( - private val keyStoreProvider: KeyStoreProvider -) { +class SSSSDataSource @Inject constructor() { suspend fun storeBsSpekeKeyIntoSSSS(keyBackupPrivateKey: ByteArray): SsssKeySpec { val session = MatrixSessionProvider.getSessionOrThrow() @@ -118,7 +115,7 @@ class SSSSDataSource @Inject constructor( session.cryptoService().keysBackupService() .onSecretKeyGossip(keyBackupPrivateKey.toBase64NoPadding()) - keyStoreProvider.storeBsSpekePrivateKey( + session.sharedSecretStorageService().storeBsSpekePrivateKey( (keyInfo.keySpec as RawBytesKeySpec).privateKey, keyInfo.keyId ) diff --git a/core/build.gradle b/core/build.gradle index e78d4c5a1..a4e488767 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -85,7 +85,7 @@ dependencies { // } //Matrix mavenLocal testing - api "org.futo.gitlab.circles:matrix-android-sdk:0.1.61" + api "org.futo.gitlab.circles:matrix-android-sdk:0.1.72" //Retrofit2 def retrofit_version = '2.11.0' -- GitLab