aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2016-08-24 11:59:37 +0000
committerAndre Heinecke <[email protected]>2016-08-24 11:59:37 +0000
commit7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb (patch)
tree20f542c1c8e11fa50d7d8a1377a9ead9a5bb2b35 /lang/cpp/src
parentCpp: Use fpr field for primaryFingerprint (diff)
downloadgpgme-7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb.tar.gz
gpgme-7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb.zip
Cpp: Add Key to signature
* lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h (Signature::key): New.
Diffstat (limited to 'lang/cpp/src')
-rw-r--r--lang/cpp/src/verificationresult.cpp14
-rw-r--r--lang/cpp/src/verificationresult.h6
2 files changed, 20 insertions, 0 deletions
diff --git a/lang/cpp/src/verificationresult.cpp b/lang/cpp/src/verificationresult.cpp
index c32c8964..c62625d1 100644
--- a/lang/cpp/src/verificationresult.cpp
+++ b/lang/cpp/src/verificationresult.cpp
@@ -24,6 +24,7 @@
#include <notation.h>
#include "result_p.h"
#include "util.h"
+#include "key.h"
#include <gpgme.h>
@@ -64,6 +65,10 @@ public:
# endif
scopy->next = 0;
sigs.push_back(scopy);
+ // copy keys
+ if (scopy->key) {
+ keys.push_back(Key(scopy->key, true));
+ }
// copy notations:
nota.push_back(std::vector<Nota>());
purls.push_back(0);
@@ -107,6 +112,7 @@ public:
std::vector<gpgme_signature_t> sigs;
std::vector< std::vector<Nota> > nota;
+ std::vector<GpgME::Key> keys;
std::vector<char *> purls;
std::string file_name;
};
@@ -366,6 +372,14 @@ std::vector<GpgME::Notation> GpgME::Signature::notations() const
return result;
}
+GpgME::Key GpgME::Signature::key() const
+{
+ if (isNull()) {
+ return Key();
+ }
+ return d->keys[idx];
+}
+
class GpgME::Notation::Private
{
public:
diff --git a/lang/cpp/src/verificationresult.h b/lang/cpp/src/verificationresult.h
index 3394a474..93288af2 100644
--- a/lang/cpp/src/verificationresult.h
+++ b/lang/cpp/src/verificationresult.h
@@ -40,6 +40,7 @@ namespace GpgME
class Error;
class Signature;
class Notation;
+class Key;
class GPGMEPP_EXPORT VerificationResult : public Result
{
@@ -157,6 +158,11 @@ public:
GpgME::Notation notation(unsigned int index) const;
std::vector<GpgME::Notation> notations() const;
+ /** Returns the key object associated with this signature.
+ * May be incomplete but will have at least the fingerprint
+ * set or the associated TOFU Information if applicable. */
+ GpgME::Key key() const;
+
private:
std::shared_ptr<VerificationResult::Private> d;
unsigned int idx;