From 6438ebc59c68676b7a82b10f9dce5e651220ee56 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Tue, 24 May 2022 22:09:49 +0200 Subject: [PATCH] Make Sign.withKeyPassword indirect data type --- .../java/sop/cli/picocli/commands/SignCmd.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/SignCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/SignCmd.java index 08001e2..65ed6cd 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/SignCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/SignCmd.java @@ -16,10 +16,12 @@ import picocli.CommandLine; import sop.MicAlg; import sop.ReadyWithResult; import sop.SigningResult; +import sop.cli.picocli.FileUtil; import sop.cli.picocli.Print; import sop.cli.picocli.SopCLI; import sop.enums.SignAs; import sop.exception.SOPGPException; +import sop.operation.Decrypt; import sop.operation.Sign; @CommandLine.Command(name = "sign", @@ -27,6 +29,8 @@ import sop.operation.Sign; exitCodeOnInvalidInput = 37) public class SignCmd implements Runnable { + private static final String ERROR_UNSUPPORTED_OPTION = "Option '%s' is not supported."; + @CommandLine.Option(names = "--no-armor", description = "ASCII armor the output", negatable = true) @@ -74,8 +78,15 @@ public class SignCmd implements Runnable { System.exit(19); } - for (String password : withKeyPassword) { - sign.withKeyPassword(password); + for (String passwordFile : withKeyPassword) { + try { + String password = FileUtil.stringFromInputStream(FileUtil.getFileInputStream(passwordFile)); + sign.withKeyPassword(password); + } catch (SOPGPException.UnsupportedOption unsupportedOption) { + throw new SOPGPException.UnsupportedOption(String.format(ERROR_UNSUPPORTED_OPTION, "--with-key-password"), unsupportedOption); + } catch (IOException e) { + throw new RuntimeException(e); + } } for (File keyFile : secretKeyFile) {