Wip: Refactor command implementation and enable i18n for CLI

This commit is contained in:
Paul Schaub 2022-06-06 20:06:14 +02:00
parent a7f02d58cc
commit 4934e472e2
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
34 changed files with 980 additions and 782 deletions

View file

@ -0,0 +1,157 @@
# SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
#
# SPDX-License-Identifier: Apache-2.0
sop.name=sop
usage.header=Stateless OpenPGP Protocol
usage.footerHeading=Powered by picocli%n
sop.locale=Locale for description texts
# Generic
usage.synopsisHeading=Usage:\u0020
usage.commandListHeading = %nCommands:%n
# Exit Codes
usage.exitCodeListHeading=%nExit Codes:%n
usage.exitCodeList.0=\u00200:Successful program execution.
usage.exitCodeList.1=\u00201:Generic program error
usage.exitCodeList.2=\u00203:Verification requested but no verifiable signature found
usage.exitCodeList.3=13:Unsupported asymmetric algorithm
usage.exitCodeList.4=17:Certificate is not encryption capable
usage.exitCodeList.5=19:Usage error: Missing argument
usage.exitCodeList.6=23:Incomplete verification instructions
usage.exitCodeList.7=29:Unable to decrypt
usage.exitCodeList.8=31:Password is not human-readable
usage.exitCodeList.9=37:Unsupported Option
usage.exitCodeList.10=41:Invalid data or data of wrong type encountered
usage.exitCodeList.11=53:Non-text input received where text was expected
usage.exitCodeList.12=59:Output file already exists
usage.exitCodeList.13=61:Input file does not exist
usage.exitCodeList.14=67:Cannot unlock password protected secret key
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 (eg. 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 (eg. 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 (eg. '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 (eg. '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 (eg. 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 (eg. 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 (eg. 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, eg. "Alice <alice@example.com>"
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 (eg. 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 (eg. 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 (eg. '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 (eg. '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 (eg. 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 (eg. '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 (eg. '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
## 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 '{0}' does not contain an OpenPGP private key.
sop.error.input.not_a_certificate=Input '{0}' does not contain an OpenPGP certificate.
sop.error.input.not_a_signature=Input '{0}' does not contain an OpenPGP signature.
sop.error.input.malformed_not_after=Invalid date string supplied as value of '--not-after'.
sop.error.input.malformed_not_before=Invalid date string supplied as value of '--not-before'.
sop.error.input.stdin_not_a_message=Standard Input appears not to contain a valid OpenPGP message.
sop.error.input.stdin_not_a_private_key=Standard Input appears not to contain a valid OpenPGP secret key.
sop.error.input.stdin_not_openpgp_data=Standard Input appears not to contain valid OpenPGP data
## Indirect Data Types
sop.error.indirect_data_type.ambiguous_filename=File name '{0}' is ambiguous. File with the same name exists on the filesystem.
sop.error.indirect_data_type.environment_variable_not_set=Environment variable '{0}' not set.
sop.error.indirect_data_type.environment_variable_empty=Environment variable '{0}' is empty.
sop.error.indirect_data_type.input_file_does_not_exist=Input file '{0}' does not exist.
sop.error.indirect_data_type.input_not_a_file=Input file '{0}' is not a file.
sop.error.indirect_data_type.output_file_already_exists=Output file '{0}' already exists.
sop.error.indirect_data_type.output_file_cannot_be_created=Output file '{0}' cannot be created.
sop.error.indirect_data_type.illegal_use_of_env_designator=Special designator '@ENV:' cannot be used for output.
sop.error.indirect_data_type.designator_env_not_supported=Special designator '@ENV' is not supported.
sop.error.indirect_data_type.designator_fd_not_supported=Special designator '@FD' is not supported.
## Runtime Errors
sop.error.runtime.no_backend_set=No SOP backend set.
sop.error.runtime.cannot_unlock_key=Cannot unlock password-protected secret key from input '{0}'.
sop.error.runtime.key_uses_unsupported_asymmetric_algorithm=Secret key from input '{0}' uses an unsupported asymmetric algorithm.
sop.error.runtime.cert_uses_unsupported_asymmetric_algorithm=Certificate from input '{0}' uses an unsupported asymmetric algorithm.
sop.error.runtime.key_cannot_sign=Secret key from input '{0}' cannot sign.
sop.error.runtime.cert_cannot_encrypt=Certificate from input '{0}' cannot encrypt.
sop.error.runtime.no_session_key_extracted=Session key not extracted. Feature potentially not supported.
sop.error.runtime.no_verifiable_signature_found=No verifiable signature found.
## Usage errors
sop.error.usage.password_or_cert_required=At least one password file or cert file required for encryption.
sop.error.usage.argument_required=Argument '{0}' is required.
sop.error.usage.parameter_required=Parameter '{0}' is required.
sop.error.usage.option_requires_other_option=Option '{0}' is requested, but no option {1} was provided.
# Feature Support
sop.error.feature_support.subcommand_not_supported=Subcommand '{0}' is not supported.
sop.error.feature_support.option_not_supported=Option '{0}' not supported.

View file

@ -0,0 +1,156 @@
# SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
#
# SPDX-License-Identifier: Apache-2.0
sop.name=sop
usage.header=Stateless OpenPGP Protocol
usage.footerHeading=Powered by Picocli%n
sop.locale=Gebietsschema für Beschreibungstexte
# Generic
usage.synopsisHeading=Aufruf:\u0020
usage.commandListHeading=%nBefehle:%n
# Exit Codes
usage.exitCodeListHeading=%nExit Codes:%n
usage.exitCodeList.0=\u00200:Erfolgreiche Programmausführung
usage.exitCodeList.1=\u00201:Generischer Programmfehler
usage.exitCodeList.2=\u00203:Signaturverifikation gefordert, aber keine gültige Signatur gefunden
usage.exitCodeList.3=13:Nicht unterstützter asymmetrischer Algorithmus
usage.exitCodeList.4=17:Zertifikat ist nicht fähig zu verschlüsseln
usage.exitCodeList.5=19:Nutzungsfehler: Fehlendes Argument
usage.exitCodeList.6=23:Unvollständige Verifikationsanweisungen
usage.exitCodeList.7=29:Entschlüsselung nicht möglich
usage.exitCodeList.8=31:Passwort ist nicht für Menschen lesbar
usage.exitCodeList.9=37:Nicht unterstützte Option
usage.exitCodeList.10=41:Ungültige Daten oder Daten des falschen Typs gefunden
usage.exitCodeList.11=53:Nicht-Text-Eingabe erhalten, wo Text erwartet wurde
usage.exitCodeList.12=59:Ausgabedatei existiert bereits
usage.exitCodeList.13=61:Eingabedatei existiert nicht
usage.exitCodeList.14=67:Passwort-gesicherter privater Schlüssel kann nicht entsperrt werden
usage.exitCodeList.15=69:Nicht unterstützter Unterbefehl
usage.exitCodeList.16=71:Nicht unterstützter Spezialprefix (zB. "@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 (zb. 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 (zb. 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 (zB. '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 (zB. '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 (zb. 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 (zB. 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 (zb. 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, zB. "Alice <alice@example.com>"
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 (zB. 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 (zB. 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 (zB. '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 (zB. '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 (zB. 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 (zB. '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 (zB. '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
## 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 '{0}' enthält keinen privaten OpenPGP Schlüssel.
sop.error.input.not_a_certificate=Eingabe '{0}' enthält kein OpenPGP Zertifikat.
sop.error.input.not_a_signature=Eingabe '{0}' enthält keine OpenPGP Signatur.
sop.error.input.malformed_not_after=Ungültige Datumszeichenfolge als Wert von '--not-after'.
sop.error.input.malformed_not_before=Ungültige Datumszeichenfolge als Wert von '--not-before'.
sop.error.input.stdin_not_a_message=Standard-Eingabe enthält scheinbar keine OpenPGP Nachricht.
sop.error.input.stdin_not_a_private_key=Standard-Eingabe enthält scheinbar keinen privaten OpenPGP Schlüssel.
sop.error.input.stdin_not_openpgp_data=Standard-Eingabe enthält scheinbar keine gültigen OpenPGP Daten.
## Indirect Data Types
sop.error.indirect_data_type.ambiguous_filename=Dateiname '{0}' ist mehrdeutig. Datei mit dem selben Namen existiert im Dateisystem.
sop.error.indirect_data_type.environment_variable_not_set=Umgebungsvariable '{0}' nicht gesetzt.
sop.error.indirect_data_type.environment_variable_empty=Umgebungsvariable '{0}' ist leer.
sop.error.indirect_data_type.input_file_does_not_exist=Quelldatei '{0}' existiert nicht.
sop.error.indirect_data_type.input_not_a_file=Quelldatei '{0}' ist keine Datei.
sop.error.indirect_data_type.output_file_already_exists=Zieldatei '{0}' existiert bereits.
sop.error.indirect_data_type.output_file_cannot_be_created=Zieldatei '{0}' kann nicht erstellt werden.
sop.error.indirect_data_type.illegal_use_of_env_designator=Besonderer Bezeichner-Präfix '@ENV:' darf nicht für Ausgaben verwendet werden.
sop.error.indirect_data_type.designator_env_not_supported=Besonderer Bezeichner-Präfix '@ENV' wird nicht unterstützt.
sop.error.indirect_data_type.designator_fd_not_supported=Besonderer Bezeichner-Präfix '@FD' wird nicht unterstützt.
## Runtime Errors
sop.error.runtime.no_backend_set=Kein SOP Backend gesetzt.
sop.error.runtime.cannot_unlock_key=Gesperrter Schlüssel aus Eingabe '{0}' kann nicht entsperrt werden.
sop.error.runtime.key_uses_unsupported_asymmetric_algorithm=Privater Schlüssel aus Eingabe '{0}' nutzt nicht unterstütztem asymmetrischen Algorithmus.
sop.error.runtime.cert_uses_unsupported_asymmetric_algorithm=Zertifikat aus Eingabe '{0}' nutzt nicht unterstütztem asymmetrischen Algorithmus.
sop.error.runtime.key_cannot_sign=Privater Schlüssel aus Eingabe '{0}' kann nicht signieren.
sop.error.runtime.cert_cannot_encrypt=Zertifikat aus Eingabe '{0}' kann nicht verschlüsseln.
sop.error.runtime.no_session_key_extracted=Nachrichtenschlüssel nicht extrahiert. Funktion wird möglicherweise nicht unterstützt.
sop.error.runtime.no_verifiable_signature_found=Keine gültigen Signaturen gefunden.
## Usage errors
sop.error.usage.password_or_cert_required=Es wird mindestens ein Passwort und/oder Zertifikat zur Verschlüsselung benötigt.
sop.error.usage.argument_required=Argument '{0}' ist erforderlich.
sop.error.usage.parameter_required=Parameter '{0}' ist erforderlich.
sop.error.usage.option_requires_other_option=Option '{0}' wurde angegeben, jedoch kein Wert für {1}.
# Feature Support
sop.error.feature_support.subcommand_not_supported=Unterbefehl '{0}' wird nicht unterstützt.
sop.error.feature_support.option_not_supported=Option '{0}' wird nicht unterstützt.