Cpp: Add PubkeyAlgo enum
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 6 Jul 2016 11:38:20 +0000 (13:38 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Wed, 6 Jul 2016 11:38:20 +0000 (13:38 +0200)
* lang/cpp/src/key.h (Subkey::PubkeyAlgo): New enum.
(Subkey::publicKeyAlgorithm): Change return type.
* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithm): Use enum.

lang/cpp/src/key.cpp
lang/cpp/src/key.h

index 55eb058..9e57013 100644 (file)
@@ -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<PubkeyAlgo>(subkey->pubkey_algo) : AlgoUnknown;
 }
 
 const char *Subkey::publicKeyAlgorithmAsString() const
index 7322f65..845b5db 100644 (file)
@@ -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.