From 519fb891a186e202a2805d29c15c6d01f0785aa2 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Fri, 18 Nov 2022 15:17:33 +0100 Subject: [PATCH] Dearmor: transform IOExceptions into BadData properly --- .../java/sop/cli/picocli/commands/DearmorCmd.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DearmorCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DearmorCmd.java index a4fca99..f73e351 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DearmorCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DearmorCmd.java @@ -28,6 +28,19 @@ public class DearmorCmd extends AbstractSopCmd { String errorMsg = getMsg("sop.error.input.stdin_not_openpgp_data"); throw new SOPGPException.BadData(errorMsg, e); } catch (IOException e) { + String msg = e.getMessage(); + if (msg == null) { + throw new RuntimeException(e); + } + + String errorMsg = getMsg("sop.error.input.stdin_not_openpgp_data"); + if (msg.equals("invalid armor") || + msg.equals("invalid armor header") || + msg.equals("inconsistent line endings in headers") || + msg.startsWith("unable to decode base64 data")) { + throw new SOPGPException.BadData(errorMsg, e); + } + throw new RuntimeException(e); } }