mirror of
https://github.com/element-hq/element-android
synced 2024-11-24 02:15:35 +03:00
Create allKnown() fun
This commit is contained in:
parent
de5f182f29
commit
6f4ea83fa9
4 changed files with 8 additions and 10 deletions
|
@ -183,9 +183,7 @@ class RxSession(private val session: Session) {
|
|||
val is4SSetup = session.sharedSecretStorageService.isRecoverySetup()
|
||||
val isCrossSigningEnabled = crossSigningInfo.getOrNull() != null
|
||||
val isCrossSigningTrusted = crossSigningInfo.getOrNull()?.isTrusted() == true
|
||||
val allPrivateKeysKnown = pInfo.getOrNull()
|
||||
?.let { it.master != null && it.selfSigned != null && it.user != null }
|
||||
.orFalse()
|
||||
val allPrivateKeysKnown = pInfo.getOrNull()?.allKnown().orFalse()
|
||||
|
||||
val keysBackupService = session.cryptoService().keysBackupService()
|
||||
val currentBackupVersion = keysBackupService.currentBackupVersion
|
||||
|
|
|
@ -18,6 +18,7 @@ package im.vector.matrix.android.internal.crypto.crosssigning
|
|||
|
||||
import androidx.lifecycle.LiveData
|
||||
import im.vector.matrix.android.api.MatrixCallback
|
||||
import im.vector.matrix.android.api.extensions.orFalse
|
||||
import im.vector.matrix.android.api.session.crypto.crosssigning.CrossSigningService
|
||||
import im.vector.matrix.android.api.session.crypto.crosssigning.MXCrossSigningInfo
|
||||
import im.vector.matrix.android.api.util.Optional
|
||||
|
@ -509,9 +510,7 @@ internal class DefaultCrossSigningService @Inject constructor(
|
|||
|
||||
override fun allPrivateKeysKnown(): Boolean {
|
||||
return checkSelfTrust().isVerified()
|
||||
&& cryptoStore.getCrossSigningPrivateKeys()?.selfSigned != null
|
||||
&& cryptoStore.getCrossSigningPrivateKeys()?.user != null
|
||||
&& cryptoStore.getCrossSigningPrivateKeys()?.master != null
|
||||
&& cryptoStore.getCrossSigningPrivateKeys()?.allKnown().orFalse()
|
||||
}
|
||||
|
||||
override fun trustUser(otherUserId: String, callback: MatrixCallback<Unit>) {
|
||||
|
|
|
@ -20,4 +20,6 @@ data class PrivateKeysInfo(
|
|||
val master: String? = null,
|
||||
val selfSigned: String? = null,
|
||||
val user: String? = null
|
||||
)
|
||||
) {
|
||||
fun allKnown() = master != null && selfSigned != null && user != null
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.airbnb.mvrx.Uninitialized
|
|||
import com.airbnb.mvrx.ViewModelContext
|
||||
import com.squareup.inject.assisted.Assisted
|
||||
import com.squareup.inject.assisted.AssistedInject
|
||||
import im.vector.matrix.android.api.extensions.orFalse
|
||||
import im.vector.matrix.android.api.session.Session
|
||||
import im.vector.matrix.android.api.session.crypto.crosssigning.MASTER_KEY_SSSS_NAME
|
||||
import im.vector.matrix.android.api.session.crypto.crosssigning.MXCrossSigningInfo
|
||||
|
@ -114,9 +115,7 @@ class ServerBackupStatusViewModel @AssistedInject constructor(@Assisted initialS
|
|||
// So recovery is not setup
|
||||
// Check if cross signing is enabled and local secrets known
|
||||
if (crossSigningInfo.getOrNull()?.isTrusted() == true
|
||||
&& pInfo.getOrNull()?.master != null
|
||||
&& pInfo.getOrNull()?.selfSigned != null
|
||||
&& pInfo.getOrNull()?.user != null
|
||||
&& pInfo.getOrNull()?.allKnown().orFalse()
|
||||
) {
|
||||
// So 4S is not setup and we have local secrets,
|
||||
return@Function4 BannerState.Setup(numberOfKeys = getNumberOfKeysToBackup())
|
||||
|
|
Loading…
Reference in a new issue