Cpp: Add support for pubkey_algo_name

* lang/cpp/src/key.cpp (Subkey::algoName): New.
* lang/cpp/src/key.h: Declare.
This commit is contained in:
Andre Heinecke 2016-04-12 16:08:10 +02:00
parent d949d711dc
commit 5489532ad6
2 changed files with 30 additions and 0 deletions

View File

@ -383,6 +383,17 @@ const char *Subkey::publicKeyAlgorithmAsString() const
return gpgme_pubkey_algo_name(subkey ? subkey->pubkey_algo : (gpgme_pubkey_algo_t)0); 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 bool Subkey::canEncrypt() const
{ {
return subkey && subkey->can_encrypt; return subkey && subkey->can_encrypt;

View File

@ -206,8 +206,27 @@ public:
bool isSecret() const; bool isSecret() const;
unsigned int publicKeyAlgorithm() 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; 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; unsigned int length() const;
const char *cardSerialNumber() const; const char *cardSerialNumber() const;