From 2067c5a33bf52ae7431d29b41af0e540b7a6253f Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Thu, 10 Jul 2025 18:45:58 +0200 Subject: [PATCH] optimize exception handling exclude only dir.c9r --- .../common/recovery/MasterkeyService.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/cryptomator/common/recovery/MasterkeyService.java b/src/main/java/org/cryptomator/common/recovery/MasterkeyService.java index efa750326..af1b0c271 100644 --- a/src/main/java/org/cryptomator/common/recovery/MasterkeyService.java +++ b/src/main/java/org/cryptomator/common/recovery/MasterkeyService.java @@ -52,20 +52,19 @@ public final class MasterkeyService { try (Masterkey mk = load(masterkeyFileAccess, masterkeyFilePath, tmpPass)) { return detect(mk, vault.getPath()); - } catch (IOException | CryptoException e) { - LOG.info("Recovery key validation failed", e); - return Optional.empty(); } } catch (IOException | CryptoException e) { LOG.info("Recovery key validation failed"); + return Optional.empty(); } - return Optional.empty(); } public static Optional detect(Masterkey masterkey, Path vaultPath) { try (Stream paths = Files.walk(vaultPath.resolve(DATA_DIR_NAME))) { - List excludedFilenames = List.of("dirid.c9r", "dir.c9r"); - Optional c9rFile = paths.filter(p -> p.toString().endsWith(".c9r")).filter(p -> excludedFilenames.stream().noneMatch(p.toString()::endsWith)).findFirst(); + Optional c9rFile = paths // + .filter(p -> p.toString().endsWith(".c9r")) // + .filter(p -> !p.toString().equals("dir.c9r")) // + .findFirst(); if (c9rFile.isEmpty()) { LOG.info("Unable to detect Crypto scheme: No *.c9r file found in {}", vaultPath); return Optional.empty(); @@ -92,7 +91,7 @@ public final class MasterkeyService { cryptor.fileHeaderCryptor().decryptHeader(headerBuf.duplicate()); LOG.debug("Detected Crypto scheme: {}", scheme); return true; - } catch (CryptoException e) { + } catch (IllegalArgumentException | CryptoException e) { LOG.debug("Could not decrypt with scheme: {}", scheme); return false; } catch (IOException | NoSuchAlgorithmException e) {