File indexing completed on 2024-04-14 05:43:30
0001 /* 0002 SPDX-FileCopyrightText: 2009-2022 Rolf Eike Beer <kde@opensource.sf-tec.de> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef KGPGSIGNUID_H 0007 #define KGPGSIGNUID_H 0008 0009 #include <QObject> 0010 0011 #include "kgpguidtransaction.h" 0012 #include "kgpgsigntransactionhelper.h" 0013 0014 class KGpgSignableNode; 0015 class QString; 0016 0017 /** 0018 * @brief transaction class to sign a single user id of a key 0019 */ 0020 class KGpgSignUid: public KGpgUidTransaction, public KGpgSignTransactionHelper { 0021 Q_OBJECT 0022 0023 Q_DISABLE_COPY(KGpgSignUid) 0024 KGpgSignUid() = delete; 0025 0026 public: 0027 /** 0028 * @brief constructor 0029 * @param parent parent object 0030 * @param signer id of the key to sign with 0031 * @param uid node to sign 0032 * @param local if signature should be local (not exportable) 0033 * @param checking how carefully the identity of the key owner was checked 0034 * 0035 * See setUid() for description of uid. 0036 */ 0037 KGpgSignUid(QObject *parent, const QString &signer, const KGpgSignableNode *uid, const bool local, const carefulCheck checking); 0038 /** 0039 * @brief destructor 0040 */ 0041 ~KGpgSignUid() override = default; 0042 0043 /** 0044 * @brief set node to sign 0045 * @param uid node to sign 0046 * 0047 * If uid is a KGpgKeyNode only the primary id of that key is 0048 * signed. If you want to sign all user ids at once use 0049 * KGpgSignKey instead. Legal values for uid are also KGpgUidNode 0050 * and KGpgUatNode. 0051 */ 0052 void setUid(const KGpgSignableNode *uid); 0053 0054 protected: 0055 bool preStart() override; 0056 bool nextLine(const QString &line) override; 0057 ts_boolanswer boolQuestion(const QString &line) override; 0058 bool passphraseReceived() override; 0059 0060 KGpgTransaction *asTransaction() override; 0061 void replaceCmd(const QString &cmd) override; 0062 0063 private: 0064 int m_cmdPos; ///< position of the command in GnuPG command line 0065 }; 0066 0067 #endif // KGPGSIGNUID_H