diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 9e57013a..d99c5ec9 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -383,6 +383,15 @@ const char *Subkey::publicKeyAlgorithmAsString() const return gpgme_pubkey_algo_name(subkey ? subkey->pubkey_algo : (gpgme_pubkey_algo_t)0); } +/* static */ +const char *Subkey::publicKeyAlgorithmAsString(PubkeyAlgo algo) +{ + if (algo == AlgoUnknown) { + return NULL; + } + return gpgme_pubkey_algo_name(static_cast(algo)); +} + std::string Subkey::algoName() const { char *gpgmeStr; diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index 845b5dbd..bb0487b9 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -233,11 +233,16 @@ public: */ const char *publicKeyAlgorithmAsString() const; + /** @brief Same as publicKeyAlgorithmAsString but static. */ + static const char *publicKeyAlgorithmAsString(PubkeyAlgo algo); + /** @brief Get the key algo string like GnuPG 2.1 prints it. This returns combinations of size and algorithm. Like - bp512 or rsa2048 + bp512 or rsa2048. Misnamed because publicKeyAlgorithmAsString + already used the older pubkey_algo_name. + Actually uses gpgme_pubkey_algo_string. @returns the key algorithm as string. Empty string on error. */