agent: Avoid appending a '\0' byte to the response of READKEY
[gnupg.git] / common / openpgpdefs.h
index ac1af37..85a4251 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_OPENPGPDEFS_H
@@ -56,6 +56,34 @@ typedef enum
   }
 pkttype_t;
 
+static inline const char *
+pkttype_str (pkttype_t type)
+{
+  switch (type)
+    {
+    case PKT_PUBKEY_ENC: return "PUBKEY_ENC";
+    case PKT_SIGNATURE: return "SIGNATURE";
+    case PKT_SYMKEY_ENC: return "SYMKEY_ENC";
+    case PKT_ONEPASS_SIG: return "ONEPASS_SIG";
+    case PKT_SECRET_KEY: return "SECRET_KEY";
+    case PKT_PUBLIC_KEY: return "PUBLIC_KEY";
+    case PKT_SECRET_SUBKEY: return "SECRET_SUBKEY";
+    case PKT_COMPRESSED: return "COMPRESSED";
+    case PKT_ENCRYPTED: return "ENCRYPTED";
+    case PKT_MARKER: return "MARKER";
+    case PKT_PLAINTEXT: return "PLAINTEXT";
+    case PKT_RING_TRUST: return "RING_TRUST";
+    case PKT_USER_ID: return "USER_ID";
+    case PKT_PUBLIC_SUBKEY: return "PUBLIC_SUBKEY";
+    case PKT_OLD_COMMENT: return "OLD_COMMENT";
+    case PKT_ATTRIBUTE: return "ATTRIBUTE";
+    case PKT_ENCRYPTED_MDC: return "ENCRYPTED_MDC";
+    case PKT_MDC: return "MDC";
+    case PKT_COMMENT: return "COMMENT";
+    case PKT_GPG_CONTROL: return "GPG_CONTROL";
+    default: return "unknown packet type";
+    }
+}
 
 typedef enum
   {
@@ -78,7 +106,7 @@ typedef enum
     SIGSUBPKT_PREF_HASH     = 21, /* Preferred hash algorithms. */
     SIGSUBPKT_PREF_COMPR    = 22, /* Preferred compression algorithms. */
     SIGSUBPKT_KS_FLAGS     = 23, /* Key server preferences. */
-    SIGSUBPKT_PREF_KS      = 24, /* Preferred key server. */
+    SIGSUBPKT_PREF_KS      = 24, /* Preferred keyserver. */
     SIGSUBPKT_PRIMARY_UID   = 25, /* Primary user id. */
     SIGSUBPKT_POLICY       = 26, /* Policy URL. */
     SIGSUBPKT_KEY_FLAGS     = 27, /* Key flags. */
@@ -87,6 +115,7 @@ typedef enum
     SIGSUBPKT_FEATURES      = 30, /* Feature flags. */
 
     SIGSUBPKT_SIGNATURE     = 32, /* Embedded signature. */
+    SIGSUBPKT_ISSUER_FPR    = 33, /* EXPERIMENTAL: Issuer fingerprint. */
 
     SIGSUBPKT_FLAG_CRITICAL = 128
   }
@@ -107,7 +136,8 @@ typedef enum
     CIPHER_ALGO_TWOFISH            = 10, /* 256 bit */
     CIPHER_ALGO_CAMELLIA128 = 11,
     CIPHER_ALGO_CAMELLIA192 = 12,
-    CIPHER_ALGO_CAMELLIA256 = 13
+    CIPHER_ALGO_CAMELLIA256 = 13,
+    CIPHER_ALGO_PRIVATE10   = 110
   }
 cipher_algo_t;
 
@@ -122,8 +152,9 @@ typedef enum
     PUBKEY_ALGO_ECDH        = 18, /* RFC-6637  */
     PUBKEY_ALGO_ECDSA       = 19, /* RFC-6637  */
     PUBKEY_ALGO_ELGAMAL     = 20, /* Elgamal encrypt+sign (legacy).  */
-
-    PUBKEY_ALGO_EDDSA      = 105  /* EdDSA (cf. Ed25519) (experimental). */
+    /*                        21     reserved by OpenPGP.            */
+    PUBKEY_ALGO_EDDSA       = 22, /* EdDSA (not yet assigned).       */
+    PUBKEY_ALGO_PRIVATE10   = 110
   }
 pubkey_algo_t;
 
@@ -137,7 +168,8 @@ typedef enum
     DIGEST_ALGO_SHA256      =  8,
     DIGEST_ALGO_SHA384      =  9,
     DIGEST_ALGO_SHA512      = 10,
-    DIGEST_ALGO_SHA224      = 11
+    DIGEST_ALGO_SHA224      = 11,
+    DIGEST_ALGO_PRIVATE10   = 110
   }
 digest_algo_t;
 
@@ -147,7 +179,8 @@ typedef enum
     COMPRESS_ALGO_NONE      =  0,
     COMPRESS_ALGO_ZIP       =  1,
     COMPRESS_ALGO_ZLIB      =  2,
-    COMPRESS_ALGO_BZIP2     =  3
+    COMPRESS_ALGO_BZIP2     =  3,
+    COMPRESS_ALGO_PRIVATE10 = 110
   }
 compress_algo_t;