aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/gpg/GpgContext.h13
-rw-r--r--include/gpg/GpgKey.h20
-rw-r--r--include/gpg/GpgSubKey.h29
-rw-r--r--include/gpg/Signature.h11
-rw-r--r--include/gpg/UID.h13
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