diff options
Diffstat (limited to '')
| -rw-r--r-- | lang/cpp/src/key.cpp | 11 | ||||
| -rw-r--r-- | lang/cpp/src/key.h | 19 | 
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; | 
