Secure backup: Add possibility to not expose recovery key when creating a secure backup.

This commit is contained in:
SBiOSoftWhare
2020-10-15 15:27:26 +02:00
parent 443b6ffb31
commit 7cd5a9fc1f
8 changed files with 123 additions and 62 deletions

View File

@@ -26,6 +26,7 @@ final class SecretsSetupRecoveryKeyViewModel: SecretsSetupRecoveryKeyViewModelTy
private let recoveryService: MXRecoveryService
private let passphrase: String?
private let passphraseOnly: Bool
// MARK: Public
@@ -34,9 +35,10 @@ final class SecretsSetupRecoveryKeyViewModel: SecretsSetupRecoveryKeyViewModelTy
// MARK: - Setup
init(recoveryService: MXRecoveryService, passphrase: String?) {
init(recoveryService: MXRecoveryService, passphrase: String?, passphraseOnly: Bool) {
self.recoveryService = recoveryService
self.passphrase = passphrase
self.passphraseOnly = passphraseOnly
}
// MARK: - Public
@@ -44,6 +46,7 @@ final class SecretsSetupRecoveryKeyViewModel: SecretsSetupRecoveryKeyViewModelTy
func process(viewAction: SecretsSetupRecoveryKeyViewAction) {
switch viewAction {
case .loadData:
self.update(viewState: .loaded(self.passphraseOnly))
self.createSecureKey()
case .done:
self.coordinatorDelegate?.secretsSetupRecoveryKeyViewModelDidComplete(self)
@@ -60,7 +63,7 @@ final class SecretsSetupRecoveryKeyViewModel: SecretsSetupRecoveryKeyViewModelTy
self.update(viewState: .loading)
self.recoveryService.createRecovery(forSecrets: nil, withPassphrase: self.passphrase, createServicesBackups: true, success: { secretStorageKeyCreationInfo in
self.update(viewState: .loaded(secretStorageKeyCreationInfo.recoveryKey))
self.update(viewState: .recoveryCreated(secretStorageKeyCreationInfo.recoveryKey))
}, failure: { error in
self.update(viewState: .error(error))
})