File indexing completed on 2024-05-12 05:20:00
0001 /* 0002 kleopatra_options.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2015 Bundesamt für Sicherheit in der Informationstechnik 0006 SPDX-FileContributor: Intevation GmbH 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 #pragma once 0011 0012 #include <config-kleopatra.h> 0013 0014 #include <KLocalizedString> 0015 #include <QCommandLineParser> 0016 0017 static void kleopatra_options(QCommandLineParser *parser) 0018 { 0019 parser->addOptions({ 0020 QCommandLineOption({QStringLiteral("openpgp"), QStringLiteral("p")}, i18n("Use OpenPGP for the following operation")), 0021 QCommandLineOption({QStringLiteral("cms"), QStringLiteral("c")}, i18n("Use CMS (X.509, S/MIME) for the following operation")), 0022 QCommandLineOption(QStringLiteral("uiserver-socket"), i18n("Location of the socket the ui server is listening on"), QStringLiteral("argument")), 0023 QCommandLineOption(QStringLiteral("daemon"), i18n("Run UI server only, hide main window")), 0024 QCommandLineOption({QStringLiteral("import-certificate"), QStringLiteral("i")}, i18n("Import certificate file(s)")), 0025 QCommandLineOption({QStringLiteral("encrypt"), QStringLiteral("e")}, i18n("Encrypt file(s)")), 0026 QCommandLineOption({QStringLiteral("sign"), QStringLiteral("s")}, i18n("Sign file(s)")), 0027 QCommandLineOption({QStringLiteral("sign-encrypt"), QStringLiteral("E")}, i18n("Sign and/or encrypt file(s)")), 0028 QCommandLineOption(QStringLiteral("encrypt-sign"), i18n("Same as --sign-encrypt, do not use")), 0029 QCommandLineOption({QStringLiteral("decrypt"), QStringLiteral("d")}, i18n("Decrypt file(s)")), 0030 QCommandLineOption({QStringLiteral("verify"), QStringLiteral("V")}, i18n("Verify file/signature")), 0031 QCommandLineOption({QStringLiteral("decrypt-verify"), QStringLiteral("D")}, i18n("Decrypt and/or verify file(s)")), 0032 QCommandLineOption(QStringLiteral("search"), i18n("Search for a certificate on a keyserver")), 0033 QCommandLineOption(QStringLiteral("checksum"), i18n("Create or check a checksum file")), 0034 QCommandLineOption({QStringLiteral("query"), QStringLiteral("q")}, 0035 i18nc("If a certificate is already known it shows the certificate details dialog. " 0036 "Otherwise it brings up the certificate search dialog.", 0037 "Show details of a local certificate or search for it on a keyserver by fingerprint")), 0038 QCommandLineOption(QStringLiteral("gen-key"), i18n("Create a new key pair or certificate signing request")), 0039 QCommandLineOption(QStringLiteral("parent-windowid"), i18n("Parent Window Id for dialogs"), QStringLiteral("windowId")), 0040 QCommandLineOption(QStringLiteral("config"), i18n("Open the config dialog")), 0041 }); 0042 0043 /* Security note: To avoid code execution by shared library injection 0044 * through e.g. -platformpluginpath any external input should be seperated 0045 * by a double dash -- this is why query / search uses positional arguments. 0046 * 0047 * For example on Windows there is an URLhandler for openpgp4fpr: 0048 * be opened with Kleopatra's query function. And while a browser should 0049 * urlescape such a query there might be tricks to inject a quote character 0050 * and as such inject command line options for Kleopatra in an URL. */ 0051 parser->addPositionalArgument(QStringLiteral("files"), i18n("File(s) to process"), QStringLiteral("-- [files..]")); 0052 parser->addPositionalArgument(QStringLiteral("query"), i18n("String or Fingerprint for query and search"), QStringLiteral("-- [query..]")); 0053 }