From 0adaf7bafd352f1c3a1e797493780150e3bb0adc Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Thu, 19 Apr 2018 10:44:01 +0200 Subject: 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. --- lang/cpp/src/key.cpp | 31 +++++++++++++++++++++++++++++++ lang/cpp/src/key.h | 21 +++++++++++++++++++++ 2 files changed, 52 insertions(+) (limited to 'lang/cpp/src') diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 0e86a19e..838033c5 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -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(key ? key->last_update : 0); +} + std::ostream &operator<<(std::ostream &os, const UserID &uid) { os << "GpgME::UserID("; diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index c3c711c1..07ddc256 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -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 { -- cgit v1.2.3 From d65d6329319bff8cc555999fc92a20e151762a10 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Thu, 19 Apr 2018 11:56:15 +0200 Subject: cpp: Add origin and last_update to UserID * NEWS: Mention it. * lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::lastUpdate), (UserID::origin): New. (gpgme_origin_to_pp_origin): New helper. --- lang/cpp/src/key.cpp | 56 ++++++++++++++++++++++++++++++++++------------------ lang/cpp/src/key.h | 10 ++++++++++ 2 files changed, 47 insertions(+), 19 deletions(-) (limited to 'lang/cpp/src') diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 838033c5..034286f0 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -967,6 +967,42 @@ Error UserID::revoke() return ret; } +static Key::Origin gpgme_origin_to_pp_origin (const unsigned int origin) +{ + switch (origin) { + case GPGME_KEYORG_KS: + return Key::OriginKS; + case GPGME_KEYORG_DANE: + return Key::OriginDane; + case GPGME_KEYORG_WKD: + return Key::OriginWKD; + case GPGME_KEYORG_URL: + return Key::OriginURL; + case GPGME_KEYORG_FILE: + return Key::OriginFile; + case GPGME_KEYORG_SELF: + return Key::OriginSelf; + case GPGME_KEYORG_OTHER: + return Key::OriginOther; + case GPGME_KEYORG_UNKNOWN: + default: + return Key::OriginUnknown; + } +} + +Key::Origin UserID::origin() const +{ + if (isNull()) { + return Key::OriginUnknown; + } + return gpgme_origin_to_pp_origin(uid->origin); +} + +time_t UserID::lastUpdate() const +{ + return static_cast(uid ? uid->last_update : 0); +} + Error Key::addUid(const char *uid) { if (isNull()) { @@ -986,25 +1022,7 @@ 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; - } + return gpgme_origin_to_pp_origin(key->origin); } time_t Key::lastUpdate() const diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index 07ddc256..76a0d4f4 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -392,6 +392,16 @@ public: * * @returns an error on error.*/ Error revoke(); + + /*! Get the origin of the key. + * + * @returns the Origin. */ + Key::Origin origin() const; + + /*! Get the last update time. + * + * @returns the last update time. */ + time_t lastUpdate() const; private: shared_gpgme_key_t key; gpgme_user_id_t uid; -- cgit v1.2.3