diff --git a/data/src/main/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProvider.java b/data/src/main/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProvider.java index 2ea3cc6d..60806d53 100644 --- a/data/src/main/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProvider.java +++ b/data/src/main/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProvider.java @@ -12,6 +12,7 @@ import org.cryptomator.domain.Vault; import org.cryptomator.domain.exception.BackendException; import org.cryptomator.domain.exception.CancellationException; import org.cryptomator.domain.exception.FatalBackendException; +import org.cryptomator.domain.exception.vaultconfig.UnsupportedMasterkeyLocationException; import org.cryptomator.domain.repository.CloudContentRepository; import org.cryptomator.domain.usecases.cloud.ByteArrayDataSource; import org.cryptomator.domain.usecases.cloud.Flag; @@ -161,8 +162,9 @@ public class MasterkeyCryptoCloudProvider implements CryptoCloudProvider { private CloudFile masterkeyFile(CloudFolder vaultLocation, UnverifiedVaultConfig unverifiedVaultConfig) throws BackendException { String path = unverifiedVaultConfig.getKeyId().getSchemeSpecificPart(); - // TODO / FIXME sanitize path and throw specific exception - //throw new UnsupportedMasterkeyLocationException(unverifiedVaultConfig); + if(!path.equals(MASTERKEY_FILE_NAME)) { + throw new UnsupportedMasterkeyLocationException(unverifiedVaultConfig); + } return cloudContentRepository.file(vaultLocation, path); } diff --git a/presentation/src/main/java/org/cryptomator/presentation/exception/ExceptionHandlers.kt b/presentation/src/main/java/org/cryptomator/presentation/exception/ExceptionHandlers.kt index e4769223..adb07a36 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/exception/ExceptionHandlers.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/exception/ExceptionHandlers.kt @@ -18,6 +18,7 @@ import org.cryptomator.domain.exception.license.NoLicenseAvailableException import org.cryptomator.domain.exception.update.GeneralUpdateErrorException import org.cryptomator.domain.exception.update.HashMismatchUpdateCheckException import org.cryptomator.domain.exception.update.SSLHandshakePreAndroid5UpdateCheckException +import org.cryptomator.domain.exception.vaultconfig.UnsupportedMasterkeyLocationException import org.cryptomator.domain.exception.vaultconfig.VaultConfigLoadException import org.cryptomator.domain.exception.vaultconfig.VaultKeyInvalidException import org.cryptomator.domain.exception.vaultconfig.VaultVersionMismatchException @@ -54,6 +55,7 @@ class ExceptionHandlers @Inject constructor(private val context: Context, defaul staticHandler(VaultVersionMismatchException::class.java, R.string.error_vault_version_mismatch) staticHandler(VaultKeyInvalidException::class.java, R.string.error_vault_key_invalid) staticHandler(VaultConfigLoadException::class.java, R.string.error_vault_config_loading) + staticHandler(UnsupportedMasterkeyLocationException::class.java, R.string.error_masterkey_location_not_supported) staticHandler(NoSuchBucketException::class.java, R.string.error_no_such_bucket) exceptionHandlers.add(MissingCryptorExceptionHandler()) exceptionHandlers.add(CancellationExceptionHandler()) diff --git a/presentation/src/main/java/org/cryptomator/presentation/presenter/UnlockVaultPresenter.kt b/presentation/src/main/java/org/cryptomator/presentation/presenter/UnlockVaultPresenter.kt index c9375dba..586e6347 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/presenter/UnlockVaultPresenter.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/presenter/UnlockVaultPresenter.kt @@ -107,8 +107,8 @@ class UnlockVaultPresenter @Inject constructor( } view?.showBiometricDialog(vaultModel) } else { - startPrepareUnlockUseCase(vaultModel.toVault()) view?.showEnterPasswordDialog(vaultModel) + startPrepareUnlockUseCase(vaultModel.toVault()) } } diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index 73341cfb..dae556a2 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -38,6 +38,7 @@ General error while loading the vault config Local file isn\'t present anymore after switching back to Cryptomator. Possible changes cannot be propagated back to the cloud. No such bucket + Custom Masterkey location not supported yet