sm: Print Yubikey attestation extensions with --dump-cert.
[gnupg.git] / g10 / gpg.h
index 3251dd0..28a77b6 100644 (file)
--- a/g10/gpg.h
+++ b/g10/gpg.h
@@ -14,7 +14,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_G10_GPG_H
 #define GNUPG_G10_GPG_H
    correct value and may be of advantage if we ever have to do
    special things. */
 
+#ifdef HAVE_W32_SYSTEM
+# define WIN32_LEAN_AND_MEAN 1
+#endif
+
 #ifdef GPG_ERR_SOURCE_DEFAULT
 #error GPG_ERR_SOURCE_DEFAULT already defined
 #endif
 /* Number of bits we accept when reading or writing MPIs. */
 #define MAX_EXTERN_MPI_BITS 16384
 
-/* The maximum length of a binary fingerprints.  */
-#define MAX_FINGERPRINT_LEN 20
-
-
-
-/*
-    Macros formerly in cipher.h
- */
-
-
+/* The maximum length of a binary fingerprints.  This is used to
+ * provide a static buffer and will be increased if we need to support
+ * longer fingerprints.  Warning: At some places we have some
+ * assumption on a 20 byte fingerprint.
+ * Watch out for FIXME(fingerprint) */
+#define MAX_FINGERPRINT_LEN 32
 
+/* The maximum length of a formatted fingerprint as returned by
+ * format_hexfingerprint().  */
+#define MAX_FORMATTED_FINGERPRINT_LEN 59
 
 
 /*
@@ -61,78 +64,48 @@ struct server_local_s;
 struct dirmngr_local_s;
 typedef struct dirmngr_local_s *dirmngr_local_t;
 
-/* Object used to describe a keyblok node.  */
-typedef struct kbnode_struct *KBNODE;
+/* Object used to describe a keyblock node.  */
+typedef struct kbnode_struct *KBNODE;   /* Deprecated use kbnode_t. */
 typedef struct kbnode_struct *kbnode_t;
 
+/* The handle for keydb operations.  */
+typedef struct keydb_handle *KEYDB_HANDLE;
+
+/* TOFU database meta object.  */
+struct tofu_dbs_s;
+typedef struct tofu_dbs_s *tofu_dbs_t;
+
+
+#if SIZEOF_UNSIGNED_LONG == 8
+# define SERVER_CONTROL_MAGIC 0x53616c696e676572
+#else
+# define SERVER_CONTROL_MAGIC 0x53616c69
+#endif
 
 /* Session control object.  This object is passed to most functions to
    convey the status of a session.  Note that the defaults are set by
    gpg_init_default_ctrl(). */
 struct server_control_s
 {
+  /* Always has the value SERVER_CONTROL_MAGIC.  */
+  unsigned long magic;
+
   /* Local data for server.c  */
   struct server_local_s *server_local;
 
   /* Local data for call-dirmngr.c  */
   dirmngr_local_t dirmngr_local;
-};
-
 
+  /* Local data for tofu.c  */
+  struct {
+    tofu_dbs_t dbs;
+    int batch_updated_wanted;
+  } tofu;
 
+  /* This is used to cache a key data base handle.  */
+  KEYDB_HANDLE cached_getkey_kdb;
+};
 
 
-/*
-     Compatibility stuff to be faded out over time.
- */
-
-/* Simple wrappers. */
-#define g10_errstr(a)  gpg_strerror ((a))
-
-
-/* Mapping of the old error codes to the gpg-error ones.  Fixme: This
-   is just a temporary solution: We need to do all these gpg_error()
-   calls in the code.  */
-#define G10ERR_BAD_KEY         GPG_ERR_BAD_KEY
-#define G10ERR_BAD_PASS        GPG_ERR_BAD_PASS
-#define G10ERR_BAD_PUBKEY      GPG_ERR_BAD_PUBKEY
-#define G10ERR_BAD_SIGN        GPG_ERR_BAD_SIGNATURE
-#define G10ERR_BAD_URI         GPG_ERR_BAD_URI
-#define G10ERR_CHECKSUM        GPG_ERR_CHECKSUM
-#define G10ERR_CIPHER_ALGO     GPG_ERR_CIPHER_ALGO
-#define G10ERR_CLOSE_FILE      GPG_ERR_CLOSE_FILE
-#define G10ERR_COMPR_ALGO      GPG_ERR_COMPR_ALGO
-#define G10ERR_CREATE_FILE     GPG_ERR_CREATE_FILE
-#define G10ERR_DIGEST_ALGO     GPG_ERR_DIGEST_ALGO
-#define G10ERR_FILE_EXISTS     GPG_ERR_EEXIST
-#define G10ERR_GENERAL         GPG_ERR_GENERAL
-#define G10ERR_INV_ARG         GPG_ERR_INV_ARG
-#define G10ERR_INV_KEYRING     GPG_ERR_INV_KEYRING
-#define G10ERR_INV_USER_ID     GPG_ERR_INV_USER_ID
-#define G10ERR_INVALID_ARMOR   GPG_ERR_INV_ARMOR
-#define G10ERR_INVALID_PACKET  GPG_ERR_INV_PACKET
-#define G10ERR_KEYRING_OPEN    GPG_ERR_KEYRING_OPEN
-#define G10ERR_KEYSERVER       GPG_ERR_KEYSERVER
-#define G10ERR_NO_DATA         GPG_ERR_NO_DATA
-#define G10ERR_NO_PUBKEY       GPG_ERR_NO_PUBKEY
-#define G10ERR_NO_SECKEY       GPG_ERR_NO_SECKEY
-#define G10ERR_NO_USER_ID      GPG_ERR_NO_USER_ID
-#define G10ERR_NOT_PROCESSED   GPG_ERR_NOT_PROCESSED
-#define G10ERR_OPEN_FILE       GPG_ERR_OPEN_FILE
-#define G10ERR_PASSPHRASE      GPG_ERR_PASSPHRASE
-#define G10ERR_PUBKEY_ALGO     GPG_ERR_PUBKEY_ALGO
-#define G10ERR_READ_FILE       GPG_ERR_READ_FILE
-#define G10ERR_RENAME_FILE     GPG_ERR_RENAME_FILE
-#define G10ERR_RESOURCE_LIMIT  GPG_ERR_RESOURCE_LIMIT
-#define G10ERR_SIG_CLASS       GPG_ERR_SIG_CLASS
-#define G10ERR_TIME_CONFLICT   GPG_ERR_TIME_CONFLICT
-#define G10ERR_TRUSTDB         GPG_ERR_TRUSTDB
-#define G10ERR_UNEXPECTED      GPG_ERR_UNEXPECTED
-#define G10ERR_UNKNOWN_PACKET  GPG_ERR_UNKNOWN_PACKET
-#define G10ERR_UNSUPPORTED     GPG_ERR_UNSUPPORTED
-#define G10ERR_UNU_PUBKEY      GPG_ERR_UNUSABLE_PUBKEY
-#define G10ERR_UNU_SECKEY      GPG_ERR_UNUSABLE_SECKEY
-#define G10ERR_WRONG_SECKEY    GPG_ERR_WRONG_SECKEY
-
 
 #endif /*GNUPG_G10_GPG_H*/