mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-14 08:41:28 +00:00
throw illegalArgumentException directly
This commit is contained in:
@@ -41,8 +41,9 @@ public final class MasterkeyService {
|
||||
return masterkeyFileAccess.load(masterkeyFilePath, password);
|
||||
}
|
||||
|
||||
public static Optional<CryptorProvider.Scheme> validateRecoveryKeyAndDetectCombo(RecoveryKeyFactory recoveryKeyFactory, Vault vault, String recoveryKey, MasterkeyFileAccess masterkeyFileAccess, AtomicBoolean illegalArgumentExceptionOccurred) {
|
||||
|
||||
public static Optional<CryptorProvider.Scheme> validateRecoveryKeyAndDetectCombo(RecoveryKeyFactory recoveryKeyFactory, //
|
||||
Vault vault, String recoveryKey, //
|
||||
MasterkeyFileAccess masterkeyFileAccess) throws IllegalArgumentException {
|
||||
String tmpPass = UUID.randomUUID().toString();
|
||||
try (RecoveryDirectory recoveryDirectory = RecoveryDirectory.create(vault.getPath())) {
|
||||
Path tempRecoveryPath = recoveryDirectory.getRecoveryPath();
|
||||
@@ -54,15 +55,9 @@ public final class MasterkeyService {
|
||||
} catch (IOException | CryptoException e) {
|
||||
LOG.info("Recovery key validation failed", e);
|
||||
return Optional.empty();
|
||||
} catch (IllegalArgumentException e) {
|
||||
illegalArgumentExceptionOccurred.set(true);
|
||||
return Optional.empty();
|
||||
}
|
||||
} catch (IOException | CryptoException e) {
|
||||
LOG.info("Recovery key validation failed");
|
||||
} catch (IllegalArgumentException e) {
|
||||
LOG.info("Recovery key has an illegal argument");
|
||||
illegalArgumentExceptionOccurred.set(true);
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.TextFormatter;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import org.cryptomator.common.recovery.MasterkeyService;
|
||||
import org.cryptomator.common.recovery.RecoveryActionType;
|
||||
@@ -138,16 +137,18 @@ public class RecoveryKeyValidateController implements FxController {
|
||||
private void validateRecoveryKey() {
|
||||
switch (recoverType.get()) {
|
||||
case RESTORE_VAULT_CONFIG -> {
|
||||
AtomicBoolean illegalArgumentExceptionOccurred = new AtomicBoolean(false);
|
||||
var combo = MasterkeyService.validateRecoveryKeyAndDetectCombo(
|
||||
recoveryKeyFactory, vault, recoveryKey.get(), masterkeyFileAccess, illegalArgumentExceptionOccurred);
|
||||
combo.ifPresent(cipherCombo::set);
|
||||
if (illegalArgumentExceptionOccurred.get()) {
|
||||
try{
|
||||
var combo = MasterkeyService.validateRecoveryKeyAndDetectCombo(
|
||||
recoveryKeyFactory, vault, recoveryKey.get(), masterkeyFileAccess);
|
||||
combo.ifPresent(cipherCombo::set);
|
||||
if (combo.isPresent()) {
|
||||
recoveryKeyState.set(RecoveryKeyState.CORRECT);
|
||||
} else {
|
||||
recoveryKeyState.set(RecoveryKeyState.WRONG);
|
||||
}
|
||||
}
|
||||
catch (IllegalArgumentException e){
|
||||
recoveryKeyState.set(RecoveryKeyState.INVALID);
|
||||
} else if (combo.isPresent()) {
|
||||
recoveryKeyState.set(RecoveryKeyState.CORRECT);
|
||||
} else {
|
||||
recoveryKeyState.set(RecoveryKeyState.WRONG);
|
||||
}
|
||||
}
|
||||
case RESTORE_MASTERKEY, RESET_PASSWORD, SHOW_KEY, CONVERT_VAULT -> {
|
||||
|
||||
Reference in New Issue
Block a user