From fa52df385e3f9c0254ee5d9178deafbb264db37e Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 25 Jul 2022 19:15:47 +0200 Subject: [PATCH] Split message resources into separate per-command resource files. Since picocli 4.7.0, subcommands inherit resources from their parent commands, so we can store shared stuff like error msgs etc. in the parent (sop) resources file. This enables us to rename the parent command downstream (e.g. in pgpainless-cli). Only the help command breaks when renaming the parent command. TODO: Fix --- .../sop/cli/picocli/commands/ArmorCmd.java | 4 +- .../sop/cli/picocli/commands/DearmorCmd.java | 2 +- .../sop/cli/picocli/commands/DecryptCmd.java | 20 ++-- .../sop/cli/picocli/commands/EncryptCmd.java | 14 +-- .../cli/picocli/commands/ExtractCertCmd.java | 4 +- .../cli/picocli/commands/GenerateKeyCmd.java | 8 +- .../cli/picocli/commands/InlineDetachCmd.java | 6 +- .../cli/picocli/commands/InlineSignCmd.java | 10 +- .../cli/picocli/commands/InlineVerifyCmd.java | 10 +- .../sop/cli/picocli/commands/SignCmd.java | 12 +-- .../sop/cli/picocli/commands/VerifyCmd.java | 10 +- .../sop/cli/picocli/commands/VersionCmd.java | 6 +- .../src/main/resources/armor.properties | 5 + .../src/main/resources/armor_de.properties | 5 + .../src/main/resources/dearmor.properties | 4 + .../src/main/resources/dearmor_de.properties | 4 + .../src/main/resources/decrypt.properties | 23 +++++ .../src/main/resources/decrypt_de.properties | 23 +++++ .../main/resources/detached-sign.properties | 12 +++ .../resources/detached-sign_de.properties | 12 +++ .../main/resources/detached-verify.properties | 13 +++ .../resources/detached-verify_de.properties | 13 +++ .../src/main/resources/encrypt.properties | 12 +++ .../src/main/resources/encrypt_de.properties | 12 +++ .../main/resources/extract-cert.properties | 5 + .../main/resources/extract-cert_de.properties | 5 + .../main/resources/generate-key.properties | 8 ++ .../main/resources/generate-key_de.properties | 8 ++ .../main/resources/inline-detach.properties | 6 ++ .../resources/inline-detach_de.properties | 6 ++ .../src/main/resources/inline-sign.properties | 14 +++ .../main/resources/inline-sign_de.properties | 14 +++ .../main/resources/inline-verify.properties | 13 +++ .../resources/inline-verify_de.properties | 13 +++ .../src/main/resources/sop.properties | 95 ++----------------- .../src/main/resources/sop_de.properties | 92 +----------------- .../src/main/resources/version.properties | 6 ++ .../src/main/resources/version_de.properties | 6 ++ version.gradle | 2 +- 39 files changed, 307 insertions(+), 230 deletions(-) create mode 100644 sop-java-picocli/src/main/resources/armor.properties create mode 100644 sop-java-picocli/src/main/resources/armor_de.properties create mode 100644 sop-java-picocli/src/main/resources/dearmor.properties create mode 100644 sop-java-picocli/src/main/resources/dearmor_de.properties create mode 100644 sop-java-picocli/src/main/resources/decrypt.properties create mode 100644 sop-java-picocli/src/main/resources/decrypt_de.properties create mode 100644 sop-java-picocli/src/main/resources/detached-sign.properties create mode 100644 sop-java-picocli/src/main/resources/detached-sign_de.properties create mode 100644 sop-java-picocli/src/main/resources/detached-verify.properties create mode 100644 sop-java-picocli/src/main/resources/detached-verify_de.properties create mode 100644 sop-java-picocli/src/main/resources/encrypt.properties create mode 100644 sop-java-picocli/src/main/resources/encrypt_de.properties create mode 100644 sop-java-picocli/src/main/resources/extract-cert.properties create mode 100644 sop-java-picocli/src/main/resources/extract-cert_de.properties create mode 100644 sop-java-picocli/src/main/resources/generate-key.properties create mode 100644 sop-java-picocli/src/main/resources/generate-key_de.properties create mode 100644 sop-java-picocli/src/main/resources/inline-detach.properties create mode 100644 sop-java-picocli/src/main/resources/inline-detach_de.properties create mode 100644 sop-java-picocli/src/main/resources/inline-sign.properties create mode 100644 sop-java-picocli/src/main/resources/inline-sign_de.properties create mode 100644 sop-java-picocli/src/main/resources/inline-verify.properties create mode 100644 sop-java-picocli/src/main/resources/inline-verify_de.properties create mode 100644 sop-java-picocli/src/main/resources/version.properties create mode 100644 sop-java-picocli/src/main/resources/version_de.properties diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ArmorCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ArmorCmd.java index 891b974..9d626e5 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ArmorCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ArmorCmd.java @@ -14,12 +14,12 @@ import sop.operation.Armor; import java.io.IOException; @CommandLine.Command(name = "armor", - resourceBundle = "sop", + resourceBundle = "armor", exitCodeOnInvalidInput = SOPGPException.UnsupportedOption.EXIT_CODE) public class ArmorCmd extends AbstractSopCmd { @CommandLine.Option(names = {"--label"}, - descriptionKey = "sop.armor.usage.option.label", + descriptionKey = "usage.option.label", paramLabel = "{auto|sig|key|cert|message}") ArmorLabel label; 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 1bca4d7..76f1b31 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 @@ -12,7 +12,7 @@ import sop.operation.Dearmor; import java.io.IOException; @CommandLine.Command(name = "dearmor", - resourceBundle = "sop", + resourceBundle = "dearmor", exitCodeOnInvalidInput = SOPGPException.UnsupportedOption.EXIT_CODE) public class DearmorCmd extends AbstractSopCmd { diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DecryptCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DecryptCmd.java index 5a9b4f5..9f02bb8 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DecryptCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/DecryptCmd.java @@ -24,7 +24,7 @@ import java.util.List; import java.util.regex.Pattern; @CommandLine.Command(name = "decrypt", - resourceBundle = "sop", + resourceBundle = "decrypt", exitCodeOnInvalidInput = SOPGPException.UnsupportedOption.EXIT_CODE) public class DecryptCmd extends AbstractSopCmd { @@ -40,49 +40,49 @@ public class DecryptCmd extends AbstractSopCmd { @CommandLine.Option( names = {OPT_SESSION_KEY_OUT}, - descriptionKey = "sop.decrypt.usage.option.session_key_out", + descriptionKey = "usage.option.session_key_out", paramLabel = "SESSIONKEY") String sessionKeyOut; @CommandLine.Option( names = {OPT_WITH_SESSION_KEY}, - descriptionKey = "sop.decrypt.usage.option.with_session_key", + descriptionKey = "usage.option.with_session_key", paramLabel = "SESSIONKEY") List withSessionKey = new ArrayList<>(); @CommandLine.Option( names = {OPT_WITH_PASSWORD}, - descriptionKey = "sop.decrypt.usage.option.with_password", + descriptionKey = "usage.option.with_password", paramLabel = "PASSWORD") List withPassword = new ArrayList<>(); @CommandLine.Option(names = {OPT_VERIFY_OUT}, - descriptionKey = "sop.decrypt.usage.option.verify_out", + descriptionKey = "usage.option.verify_out", paramLabel = "VERIFICATIONS") String verifyOut; @CommandLine.Option(names = {OPT_VERIFY_WITH}, - descriptionKey = "sop.decrypt.usage.option.certs", + descriptionKey = "usage.option.certs", paramLabel = "CERT") List certs = new ArrayList<>(); @CommandLine.Option(names = {OPT_NOT_BEFORE}, - descriptionKey = "sop.decrypt.usage.option.not_before", + descriptionKey = "usage.option.not_before", paramLabel = "DATE") String notBefore = "-"; @CommandLine.Option(names = {OPT_NOT_AFTER}, - descriptionKey = "sop.decrypt.usage.option.not_after", + descriptionKey = "usage.option.not_after", paramLabel = "DATE") String notAfter = "now"; @CommandLine.Parameters(index = "0..*", - descriptionKey = "sop.decrypt.usage.param.keys", + descriptionKey = "usage.param.keys", paramLabel = "KEY") List keys = new ArrayList<>(); @CommandLine.Option(names = {OPT_WITH_KEY_PASSWORD}, - descriptionKey = "sop.decrypt.usage.option.with_key_password", + descriptionKey = "usage.option.with_key_password", paramLabel = "PASSWORD") List withKeyPassword = new ArrayList<>(); diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/EncryptCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/EncryptCmd.java index 3af1bb1..f87aba2 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/EncryptCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/EncryptCmd.java @@ -17,36 +17,36 @@ import java.util.ArrayList; import java.util.List; @CommandLine.Command(name = "encrypt", - resourceBundle = "sop", + resourceBundle = "encrypt", exitCodeOnInvalidInput = 37) public class EncryptCmd extends AbstractSopCmd { @CommandLine.Option(names = "--no-armor", - descriptionKey = "sop.encrypt.usage.option.armor", + descriptionKey = "usage.option.armor", negatable = true) boolean armor = true; @CommandLine.Option(names = {"--as"}, - descriptionKey = "sop.encrypt.usage.option.type", + descriptionKey = "usage.option.type", paramLabel = "{binary|text}") EncryptAs type; @CommandLine.Option(names = "--with-password", - descriptionKey = "sop.encrypt.usage.option.with_password", + descriptionKey = "usage.option.with_password", paramLabel = "PASSWORD") List withPassword = new ArrayList<>(); @CommandLine.Option(names = "--sign-with", - descriptionKey = "sop.encrypt.usage.option.sign_with", + descriptionKey = "usage.option.sign_with", paramLabel = "KEY") List signWith = new ArrayList<>(); @CommandLine.Option(names = "--with-key-password", - descriptionKey = "sop.encrypt.usage.option.with_key_password", + descriptionKey = "usage.option.with_key_password", paramLabel = "PASSWORD") List withKeyPassword = new ArrayList<>(); - @CommandLine.Parameters(descriptionKey = "sop.encrypt.usage.param.certs", + @CommandLine.Parameters(descriptionKey = "usage.param.certs", index = "0..*", paramLabel = "CERTS") List certs = new ArrayList<>(); diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ExtractCertCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ExtractCertCmd.java index 960a263..4bb1c18 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ExtractCertCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/ExtractCertCmd.java @@ -13,12 +13,12 @@ import sop.exception.SOPGPException; import sop.operation.ExtractCert; @CommandLine.Command(name = "extract-cert", - resourceBundle = "sop", + resourceBundle = "extract-cert", exitCodeOnInvalidInput = 37) public class ExtractCertCmd extends AbstractSopCmd { @CommandLine.Option(names = "--no-armor", - descriptionKey = "sop.extract-cert.usage.option.armor", + descriptionKey = "usage.option.armor", negatable = true) boolean armor = true; diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/GenerateKeyCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/GenerateKeyCmd.java index fbf415c..82c0a37 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/GenerateKeyCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/GenerateKeyCmd.java @@ -15,20 +15,20 @@ import java.util.ArrayList; import java.util.List; @CommandLine.Command(name = "generate-key", - resourceBundle = "sop", + resourceBundle = "generate-key", exitCodeOnInvalidInput = 37) public class GenerateKeyCmd extends AbstractSopCmd { @CommandLine.Option(names = "--no-armor", - descriptionKey = "sop.generate-key.usage.option.armor", + descriptionKey = "usage.option.armor", negatable = true) boolean armor = true; - @CommandLine.Parameters(descriptionKey = "sop.generate-key.usage.option.user_id") + @CommandLine.Parameters(descriptionKey = "usage.option.user_id") List userId = new ArrayList<>(); @CommandLine.Option(names = "--with-key-password", - descriptionKey = "sop.generate-key.usage.option.with_key_password", + descriptionKey = "usage.option.with_key_password", paramLabel = "PASSWORD") String withKeyPassword; diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineDetachCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineDetachCmd.java index bcd269d..3ed6f7a 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineDetachCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineDetachCmd.java @@ -14,18 +14,18 @@ import java.io.IOException; import java.io.OutputStream; @CommandLine.Command(name = "inline-detach", - resourceBundle = "sop", + resourceBundle = "inline-detach", exitCodeOnInvalidInput = SOPGPException.UnsupportedOption.EXIT_CODE) public class InlineDetachCmd extends AbstractSopCmd { @CommandLine.Option( names = {"--signatures-out"}, - descriptionKey = "sop.inline-detach.usage.option.signatures_out", + descriptionKey = "usage.option.signatures_out", paramLabel = "SIGNATURES") String signaturesOut; @CommandLine.Option(names = "--no-armor", - descriptionKey = "sop.inline-detach.usage.option.armor", + descriptionKey = "usage.option.armor", negatable = true) boolean armor = true; diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineSignCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineSignCmd.java index 2cf5ebd..823e332 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineSignCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineSignCmd.java @@ -17,26 +17,26 @@ import java.util.ArrayList; import java.util.List; @CommandLine.Command(name = "inline-sign", - resourceBundle = "sop", + resourceBundle = "inline-sign", exitCodeOnInvalidInput = 37) public class InlineSignCmd extends AbstractSopCmd { @CommandLine.Option(names = "--no-armor", - descriptionKey = "sop.inline-sign.usage.option.armor", + descriptionKey = "usage.option.armor", negatable = true) boolean armor = true; @CommandLine.Option(names = "--as", - descriptionKey = "sop.inline-sign.usage.option.as", + descriptionKey = "usage.option.as", paramLabel = "{binary|text|cleartextsigned}") InlineSignAs type; - @CommandLine.Parameters(descriptionKey = "sop.inline-sign.usage.parameter.keys", + @CommandLine.Parameters(descriptionKey = "usage.parameter.keys", paramLabel = "KEYS") List secretKeyFile = new ArrayList<>(); @CommandLine.Option(names = "--with-key-password", - descriptionKey = "sop.inline-sign.usage.option.with_key_password", + descriptionKey = "usage.option.with_key_password", paramLabel = "PASSWORD") List withKeyPassword = new ArrayList<>(); diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineVerifyCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineVerifyCmd.java index 249d8a1..df1f805 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineVerifyCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/InlineVerifyCmd.java @@ -19,27 +19,27 @@ import java.util.ArrayList; import java.util.List; @CommandLine.Command(name = "inline-verify", - resourceBundle = "sop", + resourceBundle = "inline-verify", exitCodeOnInvalidInput = 37) public class InlineVerifyCmd extends AbstractSopCmd { @CommandLine.Parameters(arity = "1..*", - descriptionKey = "sop.inline-verify.usage.parameter.certs", + descriptionKey = "usage.parameter.certs", paramLabel = "CERT") List certificates = new ArrayList<>(); @CommandLine.Option(names = {"--not-before"}, - descriptionKey = "sop.inline-verify.usage.option.not_before", + descriptionKey = "usage.option.not_before", paramLabel = "DATE") String notBefore = "-"; @CommandLine.Option(names = {"--not-after"}, - descriptionKey = "sop.inline-verify.usage.option.not_after", + descriptionKey = "usage.option.not_after", paramLabel = "DATE") String notAfter = "now"; @CommandLine.Option(names = "--verifications-out", - descriptionKey = "sop.inline-verify.usage.option.verifications_out") + descriptionKey = "usage.option.verifications_out") String verificationsOut; @Override 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 b6661af..d441e1a 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 @@ -20,31 +20,31 @@ import java.util.ArrayList; import java.util.List; @CommandLine.Command(name = "sign", - resourceBundle = "sop", + resourceBundle = "detached-sign", exitCodeOnInvalidInput = 37) public class SignCmd extends AbstractSopCmd { @CommandLine.Option(names = "--no-armor", - descriptionKey = "sop.sign.usage.option.armor", + descriptionKey = "usage.option.armor", negatable = true) boolean armor = true; @CommandLine.Option(names = "--as", - descriptionKey = "sop.sign.usage.option.as", + descriptionKey = "usage.option.as", paramLabel = "{binary|text}") SignAs type; - @CommandLine.Parameters(descriptionKey = "sop.sign.usage.parameter.keys", + @CommandLine.Parameters(descriptionKey = "usage.parameter.keys", paramLabel = "KEYS") List secretKeyFile = new ArrayList<>(); @CommandLine.Option(names = "--with-key-password", - descriptionKey = "sop.sign.usage.option.with_key_password", + descriptionKey = "usage.option.with_key_password", paramLabel = "PASSWORD") List withKeyPassword = new ArrayList<>(); @CommandLine.Option(names = "--micalg-out", - descriptionKey = "sop.sign.usage.option.micalg_out", + descriptionKey = "usage.option.micalg_out", paramLabel = "MICALG") String micAlgOut; diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VerifyCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VerifyCmd.java index e0953b3..d029c52 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VerifyCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VerifyCmd.java @@ -17,28 +17,28 @@ import java.util.ArrayList; import java.util.List; @CommandLine.Command(name = "verify", - resourceBundle = "sop", + resourceBundle = "detached-verify", exitCodeOnInvalidInput = 37) public class VerifyCmd extends AbstractSopCmd { @CommandLine.Parameters(index = "0", - descriptionKey = "sop.verify.usage.parameter.signature", + descriptionKey = "usage.parameter.signature", paramLabel = "SIGNATURE") String signature; @CommandLine.Parameters(index = "0..*", arity = "1..*", - descriptionKey = "sop.verify.usage.parameter.certs", + descriptionKey = "usage.parameter.certs", paramLabel = "CERT") List certificates = new ArrayList<>(); @CommandLine.Option(names = {"--not-before"}, - descriptionKey = "sop.verify.usage.option.not_before", + descriptionKey = "usage.option.not_before", paramLabel = "DATE") String notBefore = "-"; @CommandLine.Option(names = {"--not-after"}, - descriptionKey = "sop.verify.usage.option.not_after", + descriptionKey = "usage.option.not_after", paramLabel = "DATE") String notAfter = "now"; diff --git a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VersionCmd.java b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VersionCmd.java index 2dc08db..2cf97e9 100644 --- a/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VersionCmd.java +++ b/sop-java-picocli/src/main/java/sop/cli/picocli/commands/VersionCmd.java @@ -9,7 +9,7 @@ import sop.cli.picocli.Print; import sop.cli.picocli.SopCLI; import sop.operation.Version; -@CommandLine.Command(name = "version", resourceBundle = "sop", +@CommandLine.Command(name = "version", resourceBundle = "version", exitCodeOnInvalidInput = 37) public class VersionCmd extends AbstractSopCmd { @@ -18,11 +18,11 @@ public class VersionCmd extends AbstractSopCmd { static class Exclusive { @CommandLine.Option(names = "--extended", - descriptionKey = "sop.version.usage.option.extended") + descriptionKey = "usage.option.extended") boolean extended; @CommandLine.Option(names = "--backend", - descriptionKey = "sop.version.usage.option.backend") + descriptionKey = "usage.option.backend") boolean backend; } diff --git a/sop-java-picocli/src/main/resources/armor.properties b/sop-java-picocli/src/main/resources/armor.properties new file mode 100644 index 0000000..b963ceb --- /dev/null +++ b/sop-java-picocli/src/main/resources/armor.properties @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Add ASCII Armor to standard input +usage.option.label=Label to be used in the header and tail of the armoring diff --git a/sop-java-picocli/src/main/resources/armor_de.properties b/sop-java-picocli/src/main/resources/armor_de.properties new file mode 100644 index 0000000..1023244 --- /dev/null +++ b/sop-java-picocli/src/main/resources/armor_de.properties @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Schütze Standard-Eingabe mit ASCII Armor +usage.option.label=Label für Kopf- und Fußzeile der ASCII Armor diff --git a/sop-java-picocli/src/main/resources/dearmor.properties b/sop-java-picocli/src/main/resources/dearmor.properties new file mode 100644 index 0000000..fc2f119 --- /dev/null +++ b/sop-java-picocli/src/main/resources/dearmor.properties @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Remove ASCII Armor from standard input diff --git a/sop-java-picocli/src/main/resources/dearmor_de.properties b/sop-java-picocli/src/main/resources/dearmor_de.properties new file mode 100644 index 0000000..186540e --- /dev/null +++ b/sop-java-picocli/src/main/resources/dearmor_de.properties @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Entferne ASCII Armor von Standard-Eingabe diff --git a/sop-java-picocli/src/main/resources/decrypt.properties b/sop-java-picocli/src/main/resources/decrypt.properties new file mode 100644 index 0000000..ddf20eb --- /dev/null +++ b/sop-java-picocli/src/main/resources/decrypt.properties @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Decrypt a message from standard input +usage.option.session_key_out=Can be used to learn the session key on successful decryption +usage.option.with_session_key.0=Symmetric message key (session key). +usage.option.with_session_key.1=Enables decryption of the "CIPHERTEXT" using the session key directly against the "SEIPD" packet. +usage.option.with_session_key.2=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...) +usage.option.with_password.0=Symmetric passphrase to decrypt the message with. +usage.option.with_password.1=Enables decryption based on any "SKESK" packets in the "CIPHERTEXT". +usage.option.with_password_2=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...) +usage.option.verify_out=Emits signature verification status to the designated output +usage.option.certs=Certificates for signature verification +usage.option.not_before.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) +usage.option.not_before.1=Reject signatures with a creation date not in range. +usage.option.not_before.2=Defaults to beginning of time ('-'). +usage.option.not_after.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) +usage.option.not_after.1=Reject signatures with a creation date not in range. +usage.option.not_after.2=Defaults to current system time ('now'). +usage.option.not_after.3=Accepts special value '-' for end of time. +usage.option.with_key_password.0=Passphrase to unlock the secret key(s). +usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). +usage.param.keys=Secret keys to attempt decryption with diff --git a/sop-java-picocli/src/main/resources/decrypt_de.properties b/sop-java-picocli/src/main/resources/decrypt_de.properties new file mode 100644 index 0000000..42d55e6 --- /dev/null +++ b/sop-java-picocli/src/main/resources/decrypt_de.properties @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Entschlüssle eine Nachricht von Standard-Eingabe +usage.option.session_key_out=Extrahiere den Nachrichtenschlüssel nach erfolgreicher Entschlüsselung +usage.option.with_session_key.0=Symmetrischer Nachrichtenschlüssel (Sitzungsschlüssel). +usage.option.with_session_key.1=Ermöglicht direkte Entschlüsselung des im "CIPHERTEXT" enhaltenen "SEIPD" Paketes mithilfe des Nachrichtenschlüssels. +usage.option.with_session_key.2=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.option.with_password.0=Symmetrisches Passwort zur Entschlüsselung der Nachricht. +usage.option.with_password.1=Ermöglicht Entschlüsselung basierend auf im "CIPHERTEXT" enthaltenen "SKESK" Paketen. +usage.option.with_password.2=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.option.verify_out=Schreibe Status der Signaturprüfung in angegebene Ausgabe +usage.option.certs=Zertifikate zur Signaturprüfung +usage.option.not_before.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) +usage.option.not_before.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. +usage.option.not_before.2=Standardmäßig: Anbeginn der Zeit ('-'). +usage.option.not_after.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) +usage.option.not_after.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. +usage.option.not_after.2=Standardmäßig: Aktueller Zeitunkt ('now'). +usage.option.not_after.3=Akzeptiert speziellen Wert '-' für das Ende aller Zeiten. +usage.option.with_key_password.0=Passwort zum Entsperren der privaten Schlüssel +usage.option.with_key_password.1=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.param.keys=Private Schlüssel zum Entschlüsseln der Nachricht diff --git a/sop-java-picocli/src/main/resources/detached-sign.properties b/sop-java-picocli/src/main/resources/detached-sign.properties new file mode 100644 index 0000000..9238b35 --- /dev/null +++ b/sop-java-picocli/src/main/resources/detached-sign.properties @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Create a detached signature on the data from standard input +usage.option.armor=ASCII armor the output +usage.option.as.0=Specify the output format of the signed message +usage.option.as.1=Defaults to 'binary'. +usage-option.as.2=If '--as=text' and the input data is not valid UTF-8, sign fails with return code 53. +usage.option.with_key_password.0=Passphrase to unlock the secret key(s). +usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). +usage.option.micalg_out=Emits the digest algorithm used to the specified file in a way that can be used to populate the micalg parameter for the PGP/MIME Content-Type (RFC3156) +usage.parameter.keys=Secret keys used for signing diff --git a/sop-java-picocli/src/main/resources/detached-sign_de.properties b/sop-java-picocli/src/main/resources/detached-sign_de.properties new file mode 100644 index 0000000..abc70b4 --- /dev/null +++ b/sop-java-picocli/src/main/resources/detached-sign_de.properties @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Erstelle abgetrennte Signatur über Nachricht von Standard-Eingabe +usage.option.armor=Schütze Ausgabe mit ASCII Armor +usage.option.as.0=Bestimme Signaturformat der Nachricht. +usage.option.as.1=Standardmäßig: 'binary'. +usage-option.as.2=Ist die Standard-Eingabe nicht UTF-8 kodiert und '--as=text' gesetzt, so wird inline-sign Fehlercode 53 zurückgeben. +usage.option.with_key_password.0=Passwort zum Entsperren des privaten Schlüssels +usage.option.with_key_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.option.micalg_out=Gibt den verwendeten Digest-Algorithmus an die angegebene Ausgabe in einer Form aus, die zum Auffüllen des micalg-Parameters für den PGP/MIME Content-Type (RFC3156) verwendet werden kann. +usage.parameter.keys=Private Signaturschlüssel diff --git a/sop-java-picocli/src/main/resources/detached-verify.properties b/sop-java-picocli/src/main/resources/detached-verify.properties new file mode 100644 index 0000000..a4ddd33 --- /dev/null +++ b/sop-java-picocli/src/main/resources/detached-verify.properties @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Verify a detached signature over the data from standard input +usage.option.not_before.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) +usage.option.not_before.1=Reject signatures with a creation date not in range. +usage.option.not_before.2=Defaults to beginning of time ("-"). +usage.option.not_after.1=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) +usage.option.not_after.2=Reject signatures with a creation date not in range. +usage.option.not_after.3=Defaults to current system time ("now").\ +usage.option.not_after.4 = Accepts special value "-" for end of time. +usage.parameter.signature=Detached signature +usage.parameter.certs=Public key certificates for signature verification diff --git a/sop-java-picocli/src/main/resources/detached-verify_de.properties b/sop-java-picocli/src/main/resources/detached-verify_de.properties new file mode 100644 index 0000000..f378ad5 --- /dev/null +++ b/sop-java-picocli/src/main/resources/detached-verify_de.properties @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Prüfe eine abgetrennte Signatur über eine Nachricht von Standard-Eingabe +usage.option.not_before.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) +usage.option.not_before.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. +usage.option.not_before.2=Standardmäßig: Anbeginn der Zeit ('-'). +usage.option.not_after.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) +usage.option.not_after.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. +usage.option.not_after.2=Standardmäßig: Aktueller Zeitunkt ('now'). +usage.option.not_after.3=Akzeptiert speziellen Wert '-' für das Ende aller Zeiten. +usage.parameter.signature=Abgetrennte Signatur +usage.parameter.certs=Zertifikate (öffentliche Schlüssel) zur Signaturprüfung diff --git a/sop-java-picocli/src/main/resources/encrypt.properties b/sop-java-picocli/src/main/resources/encrypt.properties new file mode 100644 index 0000000..f9b57e9 --- /dev/null +++ b/sop-java-picocli/src/main/resources/encrypt.properties @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Encrypt a message from standard input +usage.option.armor=ASCII armor the output +usage.option.type=Type of the input data. Defaults to 'binary' +usage.option.with_password.0=Encrypt the message with a password. +usage.option.with_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...) +usage.option.sign_with=Sign the output with a private key +usage.option.with_key_password.0=Passphrase to unlock the secret key(s). +usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). +usage.param.certs=Certificates the message gets encrypted to diff --git a/sop-java-picocli/src/main/resources/encrypt_de.properties b/sop-java-picocli/src/main/resources/encrypt_de.properties new file mode 100644 index 0000000..555f7c1 --- /dev/null +++ b/sop-java-picocli/src/main/resources/encrypt_de.properties @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Verschlüssle eine Nachricht von Standard-Eingabe +usage.option.armor=Schütze Ausgabe mit ASCII Armor +usage.option.type=Format der Nachricht. Standardmäßig 'binary' +usage.option.with_password.0=Verschlüssle die Nachricht mit einem Passwort +usage.option.with_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.option.sign_with=Signiere die Nachricht mit einem privaten Schlüssel +usage.option.with_key_password.0=Passwort zum Entsperren der privaten Schlüssel +usage.option.with_key_password.1=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.param.certs=Zertifikate für die die Nachricht verschlüsselt werden soll diff --git a/sop-java-picocli/src/main/resources/extract-cert.properties b/sop-java-picocli/src/main/resources/extract-cert.properties new file mode 100644 index 0000000..50f090e --- /dev/null +++ b/sop-java-picocli/src/main/resources/extract-cert.properties @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Extract a public key certificate from a secret key from standard input +usage.option.armor=ASCII armor the output diff --git a/sop-java-picocli/src/main/resources/extract-cert_de.properties b/sop-java-picocli/src/main/resources/extract-cert_de.properties new file mode 100644 index 0000000..f1607c3 --- /dev/null +++ b/sop-java-picocli/src/main/resources/extract-cert_de.properties @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Extrahiere Zertifikat (öffentlichen Schlüssel) aus privatem Schlüssel von Standard-Eingabe +usage.option.armor=Schütze Ausgabe mit ASCII Armor diff --git a/sop-java-picocli/src/main/resources/generate-key.properties b/sop-java-picocli/src/main/resources/generate-key.properties new file mode 100644 index 0000000..822a23e --- /dev/null +++ b/sop-java-picocli/src/main/resources/generate-key.properties @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Generate a secret key +usage.option.armor=ASCII armor the output +usage.option.user_id=User-ID, e.g. "Alice " +usage.option.with_key_password.0=Password to protect the private key with +usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). diff --git a/sop-java-picocli/src/main/resources/generate-key_de.properties b/sop-java-picocli/src/main/resources/generate-key_de.properties new file mode 100644 index 0000000..a698593 --- /dev/null +++ b/sop-java-picocli/src/main/resources/generate-key_de.properties @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Generiere einen privaten Schlüssel +usage.option.armor=Schütze Ausgabe mit ASCII Armor +usage.option.user_id=Nutzer-ID, z.B.. "Alice " +usage.option.with_key_password.0=Passwort zum Schutz des privaten Schlüssels +usage.option.with_key_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). diff --git a/sop-java-picocli/src/main/resources/inline-detach.properties b/sop-java-picocli/src/main/resources/inline-detach.properties new file mode 100644 index 0000000..0f03363 --- /dev/null +++ b/sop-java-picocli/src/main/resources/inline-detach.properties @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Split signatures from a clearsigned message +usage.option.armor=ASCII armor the output +usage.option.signatures_out=Destination to which a detached signatures block will be written diff --git a/sop-java-picocli/src/main/resources/inline-detach_de.properties b/sop-java-picocli/src/main/resources/inline-detach_de.properties new file mode 100644 index 0000000..3be5f5a --- /dev/null +++ b/sop-java-picocli/src/main/resources/inline-detach_de.properties @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Trenne Signaturen von Klartext-signierter Nachricht +usage.option.armor=Schütze Ausgabe mit ASCII Armor +usage.option.signatures_out=Schreibe abgetrennte Signaturen in Ausgabe diff --git a/sop-java-picocli/src/main/resources/inline-sign.properties b/sop-java-picocli/src/main/resources/inline-sign.properties new file mode 100644 index 0000000..79a2dab --- /dev/null +++ b/sop-java-picocli/src/main/resources/inline-sign.properties @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Create an inline-signed message from data on standard input +usage.option.armor=ASCII armor the output +usage.option.as.0=Specify the signature format of the signed message +usage.option.as.1='text' and 'binary' will produce inline-signed messages. +usage.option.as.2='cleartextsigned' will make use of the cleartext signature framework. +usage.option.as.3=Defaults to 'binary'. +usage.option.as.4=If '--as=text' and the input data is not valid UTF-8, inline-sign fails with return code 53. +usage.option.with_key_password.0=Passphrase to unlock the secret key(s). +usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). +usage.option.micalg=Emits the digest algorithm used to the specified file in a way that can be used to populate the micalg parameter for the PGP/MIME Content-Type (RFC3156) +usage.parameter.keys=Secret keys used for signing diff --git a/sop-java-picocli/src/main/resources/inline-sign_de.properties b/sop-java-picocli/src/main/resources/inline-sign_de.properties new file mode 100644 index 0000000..dc85ecd --- /dev/null +++ b/sop-java-picocli/src/main/resources/inline-sign_de.properties @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Signiere eine Nachricht von Standard-Eingabe mit eingebetteten Signaturen +usage.option.armor=Schütze Ausgabe mit ASCII Armor +usage.option.as.0=Bestimme Signaturformat der Nachricht. +usage.option.as.1='text' und 'binary' resultieren in eingebettete Signaturen. +usage.option.as.2='cleartextsigned' wird die Nachricht Klartext-signieren. +usage.option.as.3=Standardmäßig: 'binary'. +usage.option.as.4=Ist die Standard-Eingabe nicht UTF-8 kodiert und '--as=text' gesetzt, so wird inline-sign Fehlercode 53 zurückgeben. +usage.option.with_key_password.0=Passwort zum Entsperren des privaten Schlüssels +usage.option.with_key_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). +usage.option.micalg=Gibt den verwendeten Digest-Algorithmus an die angegebene Ausgabe in einer Form aus, die zum Auffüllen des micalg-Parameters für den PGP/MIME Content-Type (RFC3156) verwendet werden kann. +usage.parameter.keys=Private Signaturschlüssel diff --git a/sop-java-picocli/src/main/resources/inline-verify.properties b/sop-java-picocli/src/main/resources/inline-verify.properties new file mode 100644 index 0000000..8552671 --- /dev/null +++ b/sop-java-picocli/src/main/resources/inline-verify.properties @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Verify inline-signed data from standard input +usage.option.not_before.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) +usage.option.not_before.1=Reject signatures with a creation date not in range. +usage.option.not_before.2=Defaults to beginning of time ("-"). +usage.option.not_after.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) +usage.option.not_after.1=Reject signatures with a creation date not in range. +usage.option.not_after.2=Defaults to current system time ("now"). +usage.option.not_after.3=Accepts special value "-" for end of time. +usage.option.verifications_out=File to write details over successful verifications to +usage.parameter.certs=Public key certificates for signature verification diff --git a/sop-java-picocli/src/main/resources/inline-verify_de.properties b/sop-java-picocli/src/main/resources/inline-verify_de.properties new file mode 100644 index 0000000..ecc4a8e --- /dev/null +++ b/sop-java-picocli/src/main/resources/inline-verify_de.properties @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Prüfe eingebettete Signaturen einer Nachricht von Standard-Eingabe +usage.option.not_before.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) +usage.option.not_before.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. +usage.option.not_before.2=Standardmäßig: Anbeginn der Zeit ('-'). +usage.option.not_after.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) +usage.option.not_after.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. +usage.option.not_after.2=Standardmäßig: Aktueller Zeitunkt ('now'). +usage.option.not_after.3=Akzeptiert speziellen Wert '-' für das Ende aller Zeiten. +usage.option.verifications_out=Schreibe Status der Signaturprüfung in angegebene Ausgabe +usage.parameter.certs=Zertifikate (öffentlich Schlüssel) zur Signaturprüfung diff --git a/sop-java-picocli/src/main/resources/sop.properties b/sop-java-picocli/src/main/resources/sop.properties index 78b9225..3962861 100644 --- a/sop-java-picocli/src/main/resources/sop.properties +++ b/sop-java-picocli/src/main/resources/sop.properties @@ -2,9 +2,9 @@ # # SPDX-License-Identifier: Apache-2.0 sop.name=sop -sop.usage.header=Stateless OpenPGP Protocol - +usage.header=Stateless OpenPGP Protocol usage.footerHeading=Powered by picocli%n + sop.locale=Locale for description texts # Generic usage.synopsisHeading=Usage:\u0020 @@ -30,93 +30,10 @@ usage.exitCodeList.15=69:Unsupported subcommand usage.exitCodeList.16=71:Unsupported special prefix (e.g. \"@env/@fd\") of indirect parameter usage.exitCodeList.17=73:Ambiguous input (a filename matching the designator already exists) usage.exitCodeList.18=79:Key is not signing capable -# Subcommands -sop.armor.usage.header=Add ASCII Armor to standard input -sop.armor.usage.option.label=Label to be used in the header and tail of the armoring -sop.dearmor.usage.header=Remove ASCII Armor from standard input -sop.decrypt.usage.header=Decrypt a message from standard input -sop.decrypt.usage.option.session_key_out=Can be used to learn the session key on successful decryption -sop.decrypt.usage.option.with_session_key.0=Symmetric message key (session key). -sop.decrypt.usage.option.with_session_key.1=Enables decryption of the "CIPHERTEXT" using the session key directly against the "SEIPD" packet. -sop.decrypt.usage.option.with_session_key.2=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...) -sop.decrypt.usage.option.with_password.0=Symmetric passphrase to decrypt the message with. -sop.decrypt.usage.option.with_password.1=Enables decryption based on any "SKESK" packets in the "CIPHERTEXT". -sop.decrypt.usage.option.with_password_2=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...) -sop.decrypt.usage.option.verify_out=Emits signature verification status to the designated output -sop.decrypt.usage.option.certs=Certificates for signature verification -sop.decrypt.usage.option.not_before.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) -sop.decrypt.usage.option.not_before.1=Reject signatures with a creation date not in range. -sop.decrypt.usage.option.not_before.2=Defaults to beginning of time ('-'). -sop.decrypt.usage.option.not_after.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) -sop.decrypt.usage.option.not_after.1=Reject signatures with a creation date not in range. -sop.decrypt.usage.option.not_after.2=Defaults to current system time ('now'). -sop.decrypt.usage.option.not_after.3=Accepts special value '-' for end of time. -sop.decrypt.usage.option.with_key_password.0=Passphrase to unlock the secret key(s). -sop.decrypt.usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). -sop.decrypt.usage.param.keys=Secret keys to attempt decryption with -sop.encrypt.usage.header=Encrypt a message from standard input -sop.encrypt.usage.option.armor=ASCII armor the output -sop.encrypt.usage.option.type=Type of the input data. Defaults to 'binary' -sop.encrypt.usage.option.with_password.0=Encrypt the message with a password. -sop.encrypt.usage.option.with_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...) -sop.encrypt.usage.option.sign_with=Sign the output with a private key -sop.encrypt.usage.option.with_key_password.0=Passphrase to unlock the secret key(s). -sop.encrypt.usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). -sop.encrypt.usage.param.certs=Certificates the message gets encrypted to -sop.extract-cert.usage.header=Extract a public key certificate from a secret key from standard input -sop.extract-cert.usage.option.armor=ASCII armor the output -sop.generate-key.usage.header=Generate a secret key -sop.generate-key.usage.option.armor=ASCII armor the output -sop.generate-key.usage.option.user_id=User-ID, e.g. "Alice " -sop.generate-key.usage.option.with_key_password.0=Password to protect the private key with -sop.generate-key.usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). -sop.inline-detach.usage.header=Split signatures from a clearsigned message -sop.inline-detach.usage.option.armor=ASCII armor the output -sop.inline-detach.usage.option.signatures_out=Destination to which a detached signatures block will be written -sop.inline-sign.usage.header=Create an inline-signed message from data on standard input -sop.inline-sign.usage.option.armor=ASCII armor the output -sop.inline-sign.usage.option.as.0=Specify the signature format of the signed message -sop.inline-sign.usage.option.as.1='text' and 'binary' will produce inline-signed messages. -sop.inline-sign.usage.option.as.2='cleartextsigned' will make use of the cleartext signature framework. -sop.inline-sign.usage.option.as.3=Defaults to 'binary'. -sop.inline-sign.usage.option.as.4=If '--as=text' and the input data is not valid UTF-8, inline-sign fails with return code 53. -sop.inline-sign.usage.option.with_key_password.0=Passphrase to unlock the secret key(s). -sop.inline-sign.usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). -sop.inline-sign.usage.option.micalg=Emits the digest algorithm used to the specified file in a way that can be used to populate the micalg parameter for the PGP/MIME Content-Type (RFC3156) -sop.inline-sign.usage.parameter.keys=Secret keys used for signing -sop.inline-verify.usage.header=Verify inline-signed data from standard input -sop.inline-verify.usage.option.not_before.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) -sop.inline-verify.usage.option.not_before.1=Reject signatures with a creation date not in range. -sop.inline-verify.usage.option.not_before.2=Defaults to beginning of time ("-"). -sop.inline-verify.usage.option.not_after.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) -sop.inline-verify.usage.option.not_after.1=Reject signatures with a creation date not in range. -sop.inline-verify.usage.option.not_after.2=Defaults to current system time ("now"). -sop.inline-verify.usage.option.not_after.3=Accepts special value "-" for end of time. -sop.inline-verify.usage.option.verifications_out=File to write details over successful verifications to -sop.inline-verify.usage.parameter.certs=Public key certificates for signature verification -sop.sign.usage.header=Create a detached signature on the data from standard input -sop.sign.usage.option.armor=ASCII armor the output -sop.sign.usage.option.as.0=Specify the output format of the signed message -sop.sign.usage.option.as.1=Defaults to 'binary'. -sop.sign.usage-option.as.2=If '--as=text' and the input data is not valid UTF-8, sign fails with return code 53. -sop.sign.usage.option.with_key_password.0=Passphrase to unlock the secret key(s). -sop.sign.usage.option.with_key_password.1=Is an INDIRECT data type (e.g. file, environment variable, file descriptor...). -sop.sign.usage.option.micalg_out=Emits the digest algorithm used to the specified file in a way that can be used to populate the micalg parameter for the PGP/MIME Content-Type (RFC3156) -sop.sign.usage.parameter.keys=Secret keys used for signing -sop.verify.usage.header=Verify a detached signature over the data from standard input -sop.verify.usage.option.not_before.0=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) -sop.verify.usage.option.not_before.1=Reject signatures with a creation date not in range. -sop.verify.usage.option.not_before.2=Defaults to beginning of time ("-"). -sop.verify.usage.option.not_after.1=ISO-8601 formatted UTC date (e.g. '2020-11-23T16:35Z) -sop.verify.usage.option.not_after.2=Reject signatures with a creation date not in range. -sop.verify.usage.option.not_after.3=Defaults to current system time ("now").\ -sop.verify.usage.option.not_after.4 = Accepts special value "-" for end of time. -sop.verify.usage.parameter.signature=Detached signature -sop.verify.usage.parameter.certs=Public key certificates for signature verification -sop.version.usage.header=Display version information about the tool -sop.version.usage.option.extended=Print an extended version string -sop.version.usage.option.backend=Print information about the cryptographic backend -sop.help.usage.header=Display usage information for the specified subcommand + +help.usage.header=Display usage information for the specified subcommand + +## SHARED RESOURCES ## Malformed Input sop.error.input.malformed_session_key=Session keys are expected in the format 'ALGONUM:HEXKEY'. sop.error.input.not_a_private_key=Input '%s' does not contain an OpenPGP private key. diff --git a/sop-java-picocli/src/main/resources/sop_de.properties b/sop-java-picocli/src/main/resources/sop_de.properties index 1b59021..78ccc39 100644 --- a/sop-java-picocli/src/main/resources/sop_de.properties +++ b/sop-java-picocli/src/main/resources/sop_de.properties @@ -2,8 +2,9 @@ # # SPDX-License-Identifier: Apache-2.0 sop.name=sop -sop.usage.header=Stateless OpenPGP Protocol +usage.header=Stateless OpenPGP Protocol usage.footerHeading=Powered by Picocli%n + sop.locale=Gebietsschema für Beschreibungstexte # Generic usage.synopsisHeading=Aufruf:\u0020 @@ -29,93 +30,10 @@ usage.exitCodeList.15=69:Nicht unterst usage.exitCodeList.16=71:Nicht unterstützter Spezialprefix (z.B.. "@env/@fd") von indirektem Parameter usage.exitCodeList.17=73:Mehrdeutige Eingabe (ein Dateiname, der dem Bezeichner entspricht, existiert bereits) usage.exitCodeList.18=79:Schlüssel ist nicht fähig zu signieren -# Subcommands -sop.armor.usage.header=Schütze Standard-Eingabe mit ASCII Armor -sop.armor.usage.option.label=Label für Kopf- und Fußzeile der ASCII Armor -sop.dearmor.usage.header=Entferne ASCII Armor von Standard-Eingabe -sop.decrypt.usage.header=Entschlüssle eine Nachricht von Standard-Eingabe -sop.decrypt.usage.option.session_key_out=Extrahiere den Nachrichtenschlüssel nach erfolgreicher Entschlüsselung -sop.decrypt.usage.option.with_session_key.0=Symmetrischer Nachrichtenschlüssel (Sitzungsschlüssel). -sop.decrypt.usage.option.with_session_key.1=Ermöglicht direkte Entschlüsselung des im "CIPHERTEXT" enhaltenen "SEIPD" Paketes mithilfe des Nachrichtenschlüssels. -sop.decrypt.usage.option.with_session_key.2=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.decrypt.usage.option.with_password.0=Symmetrisches Passwort zur Entschlüsselung der Nachricht. -sop.decrypt.usage.option.with_password.1=Ermöglicht Entschlüsselung basierend auf im "CIPHERTEXT" enthaltenen "SKESK" Paketen. -sop.decrypt.usage.option.with_password.2=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.decrypt.usage.option.verify_out=Schreibe Status der Signaturprüfung in angegebene Ausgabe -sop.decrypt.usage.option.certs=Zertifikate zur Signaturprüfung -sop.decrypt.usage.option.not_before.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) -sop.decrypt.usage.option.not_before.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. -sop.decrypt.usage.option.not_before.2=Standardmäßig: Anbeginn der Zeit ('-'). -sop.decrypt.usage.option.not_after.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) -sop.decrypt.usage.option.not_after.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. -sop.decrypt.usage.option.not_after.2=Standardmäßig: Aktueller Zeitunkt ('now'). -sop.decrypt.usage.option.not_after.3=Akzeptiert speziellen Wert '-' für das Ende aller Zeiten. -sop.decrypt.usage.option.with_key_password.0=Passwort zum Entsperren der privaten Schlüssel -sop.decrypt.usage.option.with_key_password.1=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.decrypt.usage.param.keys=Private Schlüssel zum Entschlüsseln der Nachricht -sop.encrypt.usage.header=Verschlüssle eine Nachricht von Standard-Eingabe -sop.encrypt.usage.option.armor=Schütze Ausgabe mit ASCII Armor -sop.encrypt.usage.option.type=Format der Nachricht. Standardmäßig 'binary' -sop.encrypt.usage.option.with_password.0=Verschlüssle die Nachricht mit einem Passwort -sop.encrypt.usage.option.with_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.encrypt.usage.option.sign_with=Signiere die Nachricht mit einem privaten Schlüssel -sop.encrypt.usage.option.with_key_password.0=Passwort zum Entsperren der privaten Schlüssel -sop.encrypt.usage.option.with_key_password.1=Ist INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.encrypt.usage.param.certs=Zertifikate für die die Nachricht verschlüsselt werden soll -sop.extract-cert.usage.header=Extrahiere Zertifikat (öffentlichen Schlüssel) aus privatem Schlüssel von Standard-Eingabe -sop.extract-cert.usage.option.armor=Schütze Ausgabe mit ASCII Armor -sop.generate-key.usage.header=Generiere einen privaten Schlüssel -sop.generate-key.usage.option.armor=Schütze Ausgabe mit ASCII Armor -sop.generate-key.usage.option.user_id=Nutzer-ID, z.B.. "Alice " -sop.generate-key.usage.option.with_key_password.0=Passwort zum Schutz des privaten Schlüssels -sop.generate-key.usage.option.with_key_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.inline-detach.usage.header=Trenne Signaturen von Klartext-signierter Nachricht -sop.inline-detach.usage.option.armor=Schütze Ausgabe mit ASCII Armor -sop.inline-detach.usage.option.signatures_out=Schreibe abgetrennte Signaturen in Ausgabe -sop.inline-sign.usage.header=Signiere eine Nachricht von Standard-Eingabe mit eingebetteten Signaturen -sop.inline-sign.usage.option.armor=Schütze Ausgabe mit ASCII Armor -sop.inline-sign.usage.option.as.0=Bestimme Signaturformat der Nachricht. -sop.inline-sign.usage.option.as.1='text' und 'binary' resultieren in eingebettete Signaturen. -sop.inline-sign.usage.option.as.2='cleartextsigned' wird die Nachricht Klartext-signieren. -sop.inline-sign.usage.option.as.3=Standardmäßig: 'binary'. -sop.inline-sign.usage.option.as.4=Ist die Standard-Eingabe nicht UTF-8 kodiert und '--as=text' gesetzt, so wird inline-sign Fehlercode 53 zurückgeben. -sop.inline-sign.usage.option.with_key_password.0=Passwort zum Entsperren des privaten Schlüssels -sop.inline-sign.usage.option.with_key_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.inline-sign.usage.option.micalg=Gibt den verwendeten Digest-Algorithmus an die angegebene Ausgabe in einer Form aus, die zum Auffüllen des micalg-Parameters für den PGP/MIME Content-Type (RFC3156) verwendet werden kann. -sop.inline-sign.usage.parameter.keys=Private Signaturschlüssel -sop.inline-verify.usage.header=Prüfe eingebettete Signaturen einer Nachricht von Standard-Eingabe -sop.inline-verify.usage.option.not_before.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) -sop.inline-verify.usage.option.not_before.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. -sop.inline-verify.usage.option.not_before.2=Standardmäßig: Anbeginn der Zeit ('-'). -sop.inline-verify.usage.option.not_after.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) -sop.inline-verify.usage.option.not_after.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. -sop.inline-verify.usage.option.not_after.2=Standardmäßig: Aktueller Zeitunkt ('now'). -sop.inline-verify.usage.option.not_after.3=Akzeptiert speziellen Wert '-' für das Ende aller Zeiten. -sop.inline-verify.usage.option.verifications_out=Schreibe Status der Signaturprüfung in angegebene Ausgabe -sop.inline-verify.usage.parameter.certs=Zertifikate (öffentlich Schlüssel) zur Signaturprüfung -sop.sign.usage.header=Erstelle abgetrennte Signatur über Nachricht von Standard-Eingabe -sop.sign.usage.option.armor=Schütze Ausgabe mit ASCII Armor -sop.sign.usage.option.as.0=Bestimme Signaturformat der Nachricht. -sop.sign.usage.option.as.1=Standardmäßig: 'binary'. -sop.sign.usage-option.as.2=Ist die Standard-Eingabe nicht UTF-8 kodiert und '--as=text' gesetzt, so wird inline-sign Fehlercode 53 zurückgeben. -sop.sign.usage.option.with_key_password.0=Passwort zum Entsperren des privaten Schlüssels -sop.sign.usage.option.with_key_password.1=Ist ein INDIREKTER Datentyp (z.B.. Datei, Umgebungsvariable, Dateideskriptor...). -sop.sign.usage.option.micalg_out=Gibt den verwendeten Digest-Algorithmus an die angegebene Ausgabe in einer Form aus, die zum Auffüllen des micalg-Parameters für den PGP/MIME Content-Type (RFC3156) verwendet werden kann. -sop.sign.usage.parameter.keys=Private Signaturschlüssel -sop.verify.usage.header=Prüfe eine abgetrennte Signatur über eine Nachricht von Standard-Eingabe -sop.verify.usage.option.not_before.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) -sop.verify.usage.option.not_before.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. -sop.verify.usage.option.not_before.2=Standardmäßig: Anbeginn der Zeit ('-'). -sop.verify.usage.option.not_after.0=Nach ISO-8601 formatierter UTC Zeitstempel (z.B.. '2020-11-23T16:35Z) -sop.verify.usage.option.not_after.1=Lehne Signaturen mit Erstellungsdatum außerhalb des Gültigkeitsbereichs ab. -sop.verify.usage.option.not_after.2=Standardmäßig: Aktueller Zeitunkt ('now'). -sop.verify.usage.option.not_after.3=Akzeptiert speziellen Wert '-' für das Ende aller Zeiten. -sop.verify.usage.parameter.signature=Abgetrennte Signatur -sop.verify.usage.parameter.certs=Zertifikate (öffentliche Schlüssel) zur Signaturprüfung -sop.version.usage.header=Zeige Versionsinformationen über das Programm -sop.version.usage.option.extended=Gebe erweiterte Versionsinformationen aus -sop.version.usage.option.backend=Gebe Informationen über das kryptografische Backend aus + sop.help.usage.header=Zeige Nutzungshilfen für den angegebenen Unterbefehl an + +## SHARED RESOURCES ## Malformed Input sop.error.input.malformed_session_key=Nachrichtenschlüssel werden im folgenden Format erwartet: 'ALGONUM:HEXKEY' sop.error.input.not_a_private_key=Eingabe '%s' enthält keinen privaten OpenPGP Schlüssel. diff --git a/sop-java-picocli/src/main/resources/version.properties b/sop-java-picocli/src/main/resources/version.properties new file mode 100644 index 0000000..4bf6457 --- /dev/null +++ b/sop-java-picocli/src/main/resources/version.properties @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Display version information about the tool +usage.option.extended=Print an extended version string +usage.option.backend=Print information about the cryptographic backend diff --git a/sop-java-picocli/src/main/resources/version_de.properties b/sop-java-picocli/src/main/resources/version_de.properties new file mode 100644 index 0000000..18250ea --- /dev/null +++ b/sop-java-picocli/src/main/resources/version_de.properties @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Zeige Versionsinformationen über das Programm +usage.option.extended=Gebe erweiterte Versionsinformationen aus +usage.option.backend=Gebe Informationen über das kryptografische Backend aus diff --git a/version.gradle b/version.gradle index 9aa5316..e94f79d 100644 --- a/version.gradle +++ b/version.gradle @@ -10,7 +10,7 @@ allprojects { javaSourceCompatibility = 1.8 junitVersion = '5.8.2' junitSysExitVersion = '1.1.2' - picocliVersion = '4.6.3' + picocliVersion = '4.7.0' mockitoVersion = '4.5.1' jsrVersion = '3.0.2' }