Cpp: Add Key to signature

* lang/cpp/src/verificationresult.cpp,
lang/cpp/src/verificationresult.h (Signature::key): New.
This commit is contained in:
Andre Heinecke 2016-08-24 13:59:37 +02:00
parent 40ea1c8577
commit 7c5a4974b7
2 changed files with 20 additions and 0 deletions

View File

@ -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:

View File

@ -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;