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