diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/gpg/GpgContext.h | 13 | ||||
-rw-r--r-- | include/gpg/GpgKey.h | 20 | ||||
-rw-r--r-- | include/gpg/GpgSubKey.h | 29 | ||||
-rw-r--r-- | include/gpg/Signature.h | 11 | ||||
-rw-r--r-- | include/gpg/UID.h | 13 |
5 files changed, 37 insertions, 49 deletions
diff --git a/include/gpg/GpgContext.h b/include/gpg/GpgContext.h index 81ff3152..e8ae9feb 100644 --- a/include/gpg/GpgContext.h +++ b/include/gpg/GpgContext.h @@ -31,7 +31,7 @@ #include "GpgGenKeyInfo.h" #include "GpgKey.h" -typedef QLinkedList<GpgKey> GpgKeyList; +using GpgKeyList = QLinkedList<GpgKey>; class GpgImportedKey { public: @@ -82,15 +82,17 @@ namespace GpgME { public: GpgContext(); // Constructor + ~GpgContext() override; // Destructor + GpgImportInformation importKey(QByteArray inBuffer); + const GpgKeyList &getKeys() const; + bool exportKeys(QStringList *uidList, QByteArray *outBuffer); bool generateKey(GenKeyInfo *params); - GpgKeyList listKeys(); - void deleteKeys(QStringList *uidList); bool encrypt(QStringList *uidList, const QByteArray &inBuffer, @@ -104,9 +106,10 @@ namespace GpgME { void getKeyDetails(const QString &uid, GpgKey& key); + void signKey(const QVector<GpgKey> &signer, const GpgKey &target, const QString& uid); + gpgme_signature_t verify(QByteArray *inBuffer, QByteArray *sigBuffer = nullptr); -// void decryptVerify(QByteArray in); bool sign(QStringList *uidList, const QByteArray &inBuffer, QByteArray *outBuffer, bool detached = false); /** @@ -158,6 +161,8 @@ namespace GpgME { [[maybe_unused]] bool debug; GpgKeyList mKeyList; + void fetch_keys(); + static void checkErr(gpgme_error_t gpgmeError); static void checkErr(gpgme_error_t gpgmeError, const QString &comment); diff --git a/include/gpg/GpgKey.h b/include/gpg/GpgKey.h index 5d244510..835954f9 100644 --- a/include/gpg/GpgKey.h +++ b/include/gpg/GpgKey.h @@ -43,7 +43,7 @@ public: QDateTime expires; QDateTime create_time; - unsigned int length; + unsigned int length{}; bool can_encrypt{}; bool can_sign{}; @@ -62,13 +62,19 @@ public: QVector<UID> uids; - explicit GpgKey(gpgme_key_t key) { - parse(key); - } + gpgme_key_t key_refer = nullptr; - GpgKey() { - is_private_key = false; - } + explicit GpgKey(gpgme_key_t key = nullptr); + + GpgKey(const GpgKey &k); + + GpgKey(GpgKey &&k) noexcept; + + GpgKey& operator=(const GpgKey &k); + + GpgKey& operator=(GpgKey &&k) noexcept; + + ~GpgKey(); void parse(gpgme_key_t key); }; diff --git a/include/gpg/GpgSubKey.h b/include/gpg/GpgSubKey.h index f495c709..229e04c9 100644 --- a/include/gpg/GpgSubKey.h +++ b/include/gpg/GpgSubKey.h @@ -50,31 +50,12 @@ struct GpgSubKey { QDateTime timestamp; QDateTime expires; - GpgSubKey() = default; + explicit GpgSubKey(gpgme_subkey_t key = nullptr); - explicit GpgSubKey(gpgme_subkey_t key) { - - id = key->keyid; - pubkey_algo = gpgme_pubkey_algo_name(key->pubkey_algo); - fpr = key->fpr; - - expired = (key->expired != 0u); - revoked = (key->revoked != 0u); - - disabled = key->disabled; - - length = key->length; - - can_authenticate = key->can_authenticate; - can_certify = key->can_certify; - can_encrypt = key->can_encrypt; - can_sign = key->can_sign; - is_cardkey = key->is_cardkey; - is_private_key = key->secret; - - timestamp = QDateTime::fromTime_t(key->timestamp); - expires = QDateTime::fromTime_t(key->expires); - } + GpgSubKey(GpgSubKey &&) noexcept = default; + GpgSubKey(const GpgSubKey &) = default; + GpgSubKey& operator=(GpgSubKey &&) noexcept = default; + GpgSubKey& operator=(const GpgSubKey &) = default; }; diff --git a/include/gpg/Signature.h b/include/gpg/Signature.h index d361453d..3fa4414b 100644 --- a/include/gpg/Signature.h +++ b/include/gpg/Signature.h @@ -53,13 +53,12 @@ struct Signature { Signature() = default; - explicit Signature(gpgme_key_sig_t key_sig): - revoked(key_sig->revoked), expired(key_sig->expired), invalid(key_sig->invalid), - exportable(key_sig->exportable), pubkey_algo(gpgme_pubkey_algo_name(key_sig->pubkey_algo)), - name(key_sig->name), email(key_sig->email), comment(key_sig->comment), - create_time(QDateTime::fromTime_t(key_sig->timestamp)), expire_time(QDateTime::fromTime_t(key_sig->expires)){ + explicit Signature(gpgme_key_sig_t key_sig); - } + Signature(Signature &&) noexcept = default; + Signature(const Signature &) = default; + Signature& operator=(Signature &&) noexcept = default; + Signature& operator=(const Signature &) = default; }; diff --git a/include/gpg/UID.h b/include/gpg/UID.h index ecd361fd..d7a0f3bd 100644 --- a/include/gpg/UID.h +++ b/include/gpg/UID.h @@ -45,16 +45,13 @@ struct UID { UID() = default; - explicit UID(gpgme_user_id_t user_id): - uid(user_id->uid), name(user_id->name), email(user_id->email), comment(user_id->comment) { + explicit UID(gpgme_user_id_t user_id); - auto sig = user_id->signatures; + UID(UID &&) noexcept = default; + UID(const UID &) = default; + UID& operator=(UID &&) noexcept = default; + UID& operator=(const UID &) = default; - while (sig != nullptr) { - signatures.push_back(Signature(sig)); - } - - } }; #endif //GPGFRONTEND_UID_H
\ No newline at end of file |