2004-09-30 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / gpgme.h
index adc769f..a95a6e8 100644 (file)
@@ -74,7 +74,7 @@ extern "C" {
    AM_PATH_GPGME macro) check that this header matches the installed
    library.  Warning: Do not edit the next line.  configure will do
    that for you!  */
-#define GPGME_VERSION "0.4.6-cvs"
+#define GPGME_VERSION "0.9.1-cvs"
 
 \f
 /* Some opaque data types used by GPGME.  */
@@ -305,6 +305,15 @@ typedef enum
 gpgme_protocol_t;
 
 \f
+/* The available keylist mode flags.  */
+#define GPGME_KEYLIST_MODE_LOCAL       1
+#define GPGME_KEYLIST_MODE_EXTERN      2
+#define GPGME_KEYLIST_MODE_SIGS                4
+#define GPGME_KEYLIST_MODE_VALIDATE    256
+
+typedef unsigned int gpgme_keylist_mode_t;
+
+\f
 /* The possible stati for the edit operation.  */
 typedef enum
   {
@@ -387,7 +396,9 @@ typedef enum
     GPGME_STATUS_EXPSIG,
     GPGME_STATUS_EXPKEYSIG,
     GPGME_STATUS_TRUNCATED,
-    GPGME_STATUS_ERROR
+    GPGME_STATUS_ERROR,
+    GPGME_STATUS_NEWSIG,
+    GPGME_STATUS_REVKEYSIG
   }
 gpgme_status_code_t;
 
@@ -638,6 +649,9 @@ struct _gpgme_key
 
   /* Internal to GPGME, do not use.  */
   gpgme_user_id_t _last_uid;
+
+  /* The keylist mode that was active when listing the key.  */
+  gpgme_keylist_mode_t keylist_mode;
 };
 typedef struct _gpgme_key *gpgme_key_t;
 
@@ -696,16 +710,6 @@ void gpgme_set_include_certs (gpgme_ctx_t ctx, int nr_of_certs);
 /* Return the number of certs to include in an S/MIME message.  */
 int gpgme_get_include_certs (gpgme_ctx_t ctx);
 
-/* The available keylist mode flags.  */
-typedef enum
-  {
-    GPGME_KEYLIST_MODE_LOCAL  = 1,
-    GPGME_KEYLIST_MODE_EXTERN = 2,
-    GPGME_KEYLIST_MODE_SIGS   = 4,
-    GPGME_KEYLIST_MODE_VALIDATE = 256
-  }
-gpgme_keylist_mode_t;
-
 /* Set keylist mode in CTX to MODE.  */
 gpgme_error_t gpgme_set_keylist_mode (gpgme_ctx_t ctx,
                                      gpgme_keylist_mode_t mode);
@@ -1055,6 +1059,12 @@ gpgme_error_t gpgme_op_encrypt_sign (gpgme_ctx_t ctx, gpgme_key_t recp[],
 struct _gpgme_op_decrypt_result
 {
   char *unsupported_algorithm;
+
+  /* Key should not have been used for encryption.  */
+  unsigned int wrong_key_usage : 1;
+
+  /* Internal to GPGME, do not use.  */
+  int _unused : 31;
 };
 typedef struct _gpgme_op_decrypt_result *gpgme_decrypt_result_t;
 
@@ -1184,7 +1194,8 @@ struct _gpgme_signature
   /* Signature exipration time or 0.  */
   unsigned long exp_timestamp;
 
-  int wrong_key_usage : 1;
+  /* Key should not have been used for signing.  */
+  unsigned int wrong_key_usage : 1;
 
   /* Internal to GPGME, do not use.  */
   int _unused : 31;
@@ -1213,23 +1224,22 @@ gpgme_error_t gpgme_op_verify (gpgme_ctx_t ctx, gpgme_data_t sig,
 
 \f
 /* Import.  */
-enum
-  {
-    /* The key was new.  */
-    GPGME_IMPORT_NEW = 1,
 
-    /* The key contained new user IDs.  */
-    GPGME_IMPORT_UID = 2,
+/* The key was new.  */
+#define GPGME_IMPORT_NEW       1
+
+/* The key contained new user IDs.  */
+#define GPGME_IMPORT_UID       2
+
+/* The key contained new signatures.  */
+#define GPGME_IMPORT_SIG       4
 
-    /* The key contained new signatures.  */
-    GPGME_IMPORT_SIG = 4,
+/* The key contained new sub keys.  */
+#define GPGME_IMPORT_SUBKEY    8
 
-    /* The key contained new sub keys.  */
-    GPGME_IMPORT_SUBKEY        = 8,
+/* The key contained a secret key.  */
+#define GPGME_IMPORT_SECRET    16
 
-    /* The key contained a secret key.  */
-    GPGME_IMPORT_SECRET = 16
-  };
 
 struct _gpgme_import_status
 {