aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2016-04-12 14:08:10 +0000
committerAndre Heinecke <[email protected]>2016-04-12 14:08:10 +0000
commit5489532ad6ccf3a9b59405686b8a17352f1ecf06 (patch)
tree4fab4a06ea8ad868c6c1d7a77a90f179b3420ea7
parentCpp: Add support for gpgme_data_identify (diff)
downloadgpgme-5489532ad6ccf3a9b59405686b8a17352f1ecf06.tar.gz
gpgme-5489532ad6ccf3a9b59405686b8a17352f1ecf06.zip
Cpp: Add support for pubkey_algo_name
* lang/cpp/src/key.cpp (Subkey::algoName): New. * lang/cpp/src/key.h: Declare.
-rw-r--r--lang/cpp/src/key.cpp11
-rw-r--r--lang/cpp/src/key.h19
2 files changed, 30 insertions, 0 deletions
diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp
index d8b3c29d..55eb0585 100644
--- a/lang/cpp/src/key.cpp
+++ b/lang/cpp/src/key.cpp
@@ -383,6 +383,17 @@ const char *Subkey::publicKeyAlgorithmAsString() const
return gpgme_pubkey_algo_name(subkey ? subkey->pubkey_algo : (gpgme_pubkey_algo_t)0);
}
+std::string Subkey::algoName() const
+{
+ char *gpgmeStr;
+ if (subkey && (gpgmeStr = gpgme_pubkey_algo_string(subkey))) {
+ std::string ret = std::string(gpgmeStr);
+ gpgme_free(gpgmeStr);
+ return ret;
+ }
+ return std::string();
+}
+
bool Subkey::canEncrypt() const
{
return subkey && subkey->can_encrypt;
diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h
index 30badeaa..7322f650 100644
--- a/lang/cpp/src/key.h
+++ b/lang/cpp/src/key.h
@@ -206,8 +206,27 @@ public:
bool isSecret() const;
unsigned int publicKeyAlgorithm() const;
+
+ /**
+ @brief Get the public key algorithm name.
+
+ This only works for the pre 2.1 algorithms for ECC NULL is returned.
+
+ @returns a statically allocated string with the name of the public
+ key algorithm, or NULL if that name is not known.
+ */
const char *publicKeyAlgorithmAsString() const;
+ /**
+ @brief Get the key algo string like GnuPG 2.1 prints it.
+
+ This returns combinations of size and algorithm. Like
+ bp512 or rsa2048
+
+ @returns the key algorithm as string. Empty string on error.
+ */
+ std::string algoName() const;
+
unsigned int length() const;
const char *cardSerialNumber() const;