diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 55eb0585..9e57013a 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -373,9 +373,9 @@ const char *Subkey::fingerprint() const return subkey ? subkey->fpr : 0 ; } -unsigned int Subkey::publicKeyAlgorithm() const +Subkey::PubkeyAlgo Subkey::publicKeyAlgorithm() const { - return subkey ? subkey->pubkey_algo : 0 ; + return subkey ? static_cast(subkey->pubkey_algo) : AlgoUnknown; } const char *Subkey::publicKeyAlgorithmAsString() const diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index 7322f650..845b5dbd 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -205,7 +205,23 @@ public: bool isSecret() const; - unsigned int publicKeyAlgorithm() const; + /** Same as gpgme_pubkey_algo_t */ + enum PubkeyAlgo { + AlgoUnknown = 0, + AlgoRSA = 1, + AlgoRSA_E = 2, + AlgoRSA_S = 3, + AlgoELG_E = 16, + AlgoDSA = 17, + AlgoECC = 18, + AlgoELG = 20, + AlgoECDSA = 301, + AlgoECDH = 302, + AlgoEDDSA = 303, + AlgoMax = 1 << 31 + }; + + PubkeyAlgo publicKeyAlgorithm() const; /** @brief Get the public key algorithm name.