diff options
Diffstat (limited to '')
| -rw-r--r-- | NEWS | 6 | ||||
| -rw-r--r-- | lang/cpp/src/key.cpp | 21 | ||||
| -rw-r--r-- | lang/cpp/src/key.h | 14 | 
3 files changed, 41 insertions, 0 deletions
| @@ -1,6 +1,12 @@  Noteworthy changes in version 1.10.1 (unreleased)  ------------------------------------------------- + * Interface changes relative to the 1.10.0 release: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + cpp: Key::locate                     NEW. + cpp: Data::toString                  NEW. + +  Noteworthy changes in version 1.10.0 (2017-12-12)  ------------------------------------------------- diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 66fdea96..0e86a19e 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -371,6 +371,27 @@ void Key::update()      return;  } +// static +Key Key::locate(const char *mbox) +{ +    if (!mbox) { +        return Key(); +    } + +    auto ctx = Context::createForProtocol(OpenPGP); +    if (!ctx) { +        return Key(); +    } + +    ctx->setKeyListMode (Extern | Local); + +    Error e = ctx->startKeyListing (mbox); +    auto ret = ctx->nextKey (e); +    delete ctx; + +    return ret; +} +  //  //  // class Subkey diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index 829bd266..c3c711c1 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -164,6 +164,20 @@ public:       * @returns a possible error.       **/      Error addUid(const char *uid); + +    /** +     * @brief try to locate the best pgp key for a given mailbox. +     * +     * Boils down to gpg --locate-key <mbox> +     * This may take some time if remote sources are also +     * used. +     * +     * @param mbox should be a mail address does not need to be normalized. +     * +     * @returns The best key for a mailbox or a null key. +     */ +    static Key locate(const char *mbox); +  private:      gpgme_key_t impl() const      { | 
