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