cpp: Add origin and last_update

* NEWS: mention interface change.
* lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New.
* lang/cpp/src/key.h (Key::Origin): New enum.
This commit is contained in:
Andre Heinecke 2018-04-19 10:44:01 +02:00
parent b52a91f5a6
commit 0adaf7bafd
No known key found for this signature in database
GPG Key ID: 2978E9D40CBABA5C
3 changed files with 56 additions and 0 deletions

4
NEWS
View File

@ -1,6 +1,10 @@
Noteworthy changes in version 1.11.1 (unreleased)
-------------------------------------------------
* Interface changes relative to the 1.10.0 release:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpp: Key::origin NEW.
cpp: Key::lastUpdate NEW.
Noteworthy changes in version 1.11.0 (2018-04-18)
-------------------------------------------------

View File

@ -981,6 +981,37 @@ Error Key::addUid(const char *uid)
return ret;
}
Key::Origin Key::origin() const
{
if (isNull()) {
return OriginUnknown;
}
switch (key->origin) {
case GPGME_KEYORG_KS:
return OriginKS;
case GPGME_KEYORG_DANE:
return OriginDane;
case GPGME_KEYORG_WKD:
return OriginWKD;
case GPGME_KEYORG_URL:
return OriginURL;
case GPGME_KEYORG_FILE:
return OriginFile;
case GPGME_KEYORG_SELF:
return OriginSelf;
case GPGME_KEYORG_OTHER:
return OriginOther;
case GPGME_KEYORG_UNKNOWN:
default:
return OriginUnknown;
}
}
time_t Key::lastUpdate() const
{
return static_cast<time_t>(key ? key->last_update : 0);
}
std::ostream &operator<<(std::ostream &os, const UserID &uid)
{
os << "GpgME::UserID(";

View File

@ -178,6 +178,27 @@ public:
*/
static Key locate(const char *mbox);
/* @enum Origin
* @brief The Origin of the key. */
enum Origin : unsigned int {
OriginUnknown = 0,
OriginKS = 1,
OriginDane = 3,
OriginWKD = 4,
OriginURL = 5,
OriginFile = 6,
OriginSelf = 7,
OriginOther = 31,
};
/*! Get the origin of the key.
*
* @returns the Origin. */
Origin origin() const;
/*! Get the last update time.
*
* @returns the last update time. */
time_t lastUpdate() const;
private:
gpgme_key_t impl() const
{