2004-09-30 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / context.h
index 2b77e27..64c5276 100644 (file)
@@ -1,4 +1,4 @@
-/* context.h
+/* context.h - Definitions for a GPGME context.
    Copyright (C) 2000 Werner Koch (dd9jn)
    Copyright (C) 2001, 2002, 2003 g10 Code GmbH
 
@@ -34,8 +34,9 @@ typedef enum
   {
     OPDATA_DECRYPT, OPDATA_SIGN, OPDATA_ENCRYPT, OPDATA_PASSPHRASE,
     OPDATA_IMPORT, OPDATA_GENKEY, OPDATA_KEYLIST, OPDATA_EDIT,
-    OPDATA_VERIFY_COLLECTING, OPDATA_VERIFY
-  } ctx_op_data_type;
+    OPDATA_VERIFY, OPDATA_TRUSTLIST
+  } ctx_op_data_id_t;
+
 
 struct ctx_op_data
 {
@@ -45,7 +46,7 @@ struct ctx_op_data
 
   /* The type of the hook data, which can be used by a routine to
      lookup the hook data.  */
-  ctx_op_data_type type;
+  ctx_op_data_id_t type;
 
   /* The function to release HOOK and all its associated resources.
      Can be NULL if no special dealllocation routine is necessary.  */
@@ -54,31 +55,18 @@ struct ctx_op_data
   /* The hook that points to the operation data.  */
   void *hook;
 };
+typedef struct ctx_op_data *ctx_op_data_t;
 
 \f
-struct key_queue_item_s
-{
-  struct key_queue_item_s *next;
-  GpgmeKey key;
-};
-
-
-struct trust_queue_item_s
-{
-  struct trust_queue_item_s *next;
-  GpgmeTrustItem item;
-};
-
-
-/* Currently we need it at several places, so we put the definition
-   into this header file.  */
-struct gpgme_context_s
+/* The context defines an environment in which crypto operations can
+   be performed (sequentially).  */
+struct gpgme_context
 {
   /* The protocol used by this context.  */
-  GpgmeProtocol protocol;
+  gpgme_protocol_t protocol;
 
   /* The running engine process.  */
-  EngineObject engine;
+  engine_t engine;
 
   /* True if armor mode should be used.  */
   unsigned int use_armor : 1;
@@ -87,7 +75,7 @@ struct gpgme_context_s
   unsigned int use_textmode : 1;
 
   /* Flags for keylist mode.  */
-  unsigned int keylist_mode;
+  gpgme_keylist_mode_t keylist_mode;
 
   /* Number of certs to be included.  */
   unsigned int include_certs;
@@ -97,63 +85,27 @@ struct gpgme_context_s
 
   /* Size of the following array.  */
   unsigned int signers_size;
-  GpgmeKey *signers;
-
-  /* The operation data hooked into the context.  */
-  struct ctx_op_data *op_data;
+  gpgme_key_t *signers;
 
-  /* Last signature notation.  */
-  GpgmeData notation;
-  /* Last operation info.  */
-  GpgmeData op_info;
+  /* The locale for the pinentry.  */
+  char *lc_ctype;
+  char *lc_messages;
 
-  /* Used by keylist.c.  */
-  GpgmeKey tmp_key;
-  struct user_id_s *tmp_uid;
-  /* Something new is available.  */
-  volatile int key_cond;
-  struct key_queue_item_s *key_queue;
-  struct trust_queue_item_s *trust_queue;
+  /* The operation data hooked into the context.  */
+  ctx_op_data_t op_data;
 
   /* The user provided passphrase callback and its hook value.  */
-  GpgmePassphraseCb passphrase_cb;
+  gpgme_passphrase_cb_t passphrase_cb;
   void *passphrase_cb_value;
 
   /* The user provided progress callback and its hook value.  */
-  GpgmeProgressCb progress_cb;
+  gpgme_progress_cb_t progress_cb;
   void *progress_cb_value;
 
   /* A list of file descriptors in active use by the current
      operation.  */
   struct fd_table fdt;
-  struct GpgmeIOCbs io_cbs;
-};
-
-/* Forward declaration of a structure to store certification
-   signatures.  */
-struct certsig_s;
-
-/* Structure to store user IDs.  */
-struct user_id_s
-{
-  struct user_id_s *next;
-  unsigned int revoked : 1;
-  unsigned int invalid : 1;
-  GpgmeValidity validity; 
-  struct certsig_s *certsigs;
-  struct certsig_s *last_certsig;
-  const char *name_part;       /* All 3 point into strings behind name  */
-  const char *email_part;      /* or to read-only strings.  */
-  const char *comment_part;
-  char name[1];
+  struct gpgme_io_cbs io_cbs;
 };
 
-
-struct gpgme_recipients_s
-{
-  struct user_id_s *list;
-  int checked; /* Whether the recipients are all valid.  */
-};
-
-
 #endif /* CONTEXT_H */