cpp: Add origin and last_update
authorAndre Heinecke <aheinecke@intevation.de>
Thu, 19 Apr 2018 08:44:01 +0000 (10:44 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Thu, 19 Apr 2018 08:46:34 +0000 (10:46 +0200)
* NEWS: mention interface change.
* lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New.
* lang/cpp/src/key.h (Key::Origin): New enum.

NEWS
lang/cpp/src/key.cpp
lang/cpp/src/key.h

diff --git a/NEWS b/NEWS
index cfe5502..9d6bd0a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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)
 -------------------------------------------------
index 0e86a19..838033c 100644 (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(";
index c3c711c..07ddc25 100644 (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
     {