2007-09-27 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / gpgme.h
index 619ed6a..c0bc8e3 100644 (file)
@@ -1,6 +1,6 @@
 /* gpgme.h - Public interface to GnuPG Made Easy.
    Copyright (C) 2000 Werner Koch (dd9jn)
-   Copyright (C) 2001, 2002, 2003, 2004, 2005 g10 Code GmbH
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007 g10 Code GmbH
 
    This file is part of GPGME.
  
@@ -16,8 +16,8 @@
    
    You should have received a copy of the GNU Lesser General Public
    License along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+   MA 02110-1301, USA.  */
 
 #ifndef GPGME_H
 #define GPGME_H
@@ -40,6 +40,8 @@
 # include <sys/types.h>
 #endif
 
+#include <gpg-error.h>
+
 #ifdef __cplusplus
 extern "C" {
 #if 0 /* just to make Emacs auto-indent happy */
@@ -47,7 +49,6 @@ extern "C" {
 #endif
 #endif /* __cplusplus */
 
-#include <gpg-error.h>
 
 \f
 /* Check for compiler features.  */
@@ -72,7 +73,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 "1.1.0"
+#define GPGME_VERSION "1.1.6-svn1264"
 
 
 \f
@@ -299,16 +300,18 @@ gpgme_validity_t;
 typedef enum
   {
     GPGME_PROTOCOL_OpenPGP = 0,  /* The default mode.  */
-    GPGME_PROTOCOL_CMS     = 1
+    GPGME_PROTOCOL_CMS     = 1,
+    GPGME_PROTOCOL_UNKNOWN = 255
   }
 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
+#define GPGME_KEYLIST_MODE_LOCAL               1
+#define GPGME_KEYLIST_MODE_EXTERN              2
+#define GPGME_KEYLIST_MODE_SIGS                        4
+#define GPGME_KEYLIST_MODE_SIG_NOTATIONS       8
+#define GPGME_KEYLIST_MODE_VALIDATE            256
 
 typedef unsigned int gpgme_keylist_mode_t;
 
@@ -444,6 +447,8 @@ typedef enum
     GPGME_STATUS_SC_OP_SUCCESS,
     GPGME_STATUS_CARDCTRL,
     GPGME_STATUS_BACKUP_KEY_CREATED,
+    GPGME_STATUS_PKA_TRUST_BAD,
+    GPGME_STATUS_PKA_TRUST_GOOD,
 
     GPGME_STATUS_PLAINTEXT
   }
@@ -594,6 +599,12 @@ struct _gpgme_key_sig
 
   /* Crypto backend specific signature class.  */
   unsigned int sig_class;
+
+  /* Notation data and policy URLs.  */
+  gpgme_sig_notation_t notations;
+
+  /* Internal to GPGME, do not use.  */
+  gpgme_sig_notation_t _last_notation;
 };
 typedef struct _gpgme_key_sig *gpgme_key_sig_t;
 
@@ -989,10 +1000,13 @@ gpgme_error_t gpgme_data_new_from_mem (gpgme_data_t *r_dh,
                                       int copy);
 
 /* Destroy the data buffer DH and return a pointer to its content.
-   The memory has be to released with free by the user.  It's size is
-   returned in R_LEN.  */
+   The memory has be to released with gpgme_free() by the user.  It's
+   size is returned in R_LEN.  */
 char *gpgme_data_release_and_get_mem (gpgme_data_t dh, size_t *r_len);
 
+/* Release the memory returned by gpgme_data_release_and_get_mem().  */
+void gpgme_free (void *buffer);
+
 gpgme_error_t gpgme_data_new_from_cbs (gpgme_data_t *dh,
                                       gpgme_data_cbs_t cbs,
                                       void *handle);
@@ -1008,11 +1022,11 @@ gpgme_data_encoding_t gpgme_data_get_encoding (gpgme_data_t dh);
 gpgme_error_t gpgme_data_set_encoding (gpgme_data_t dh,
                                       gpgme_data_encoding_t enc);
 
-/* Get the filename associated with the data object with handle DH, or
+/* Get the file name associated with the data object with handle DH, or
    NULL if there is none.  */
 char *gpgme_data_get_file_name (gpgme_data_t dh);
 
-/* Set the filename associated with the data object with handle DH to
+/* Set the file name associated with the data object with handle DH to
    FILE_NAME.  */
 gpgme_error_t gpgme_data_set_file_name (gpgme_data_t dh,
                                        const char *file_name);
@@ -1308,8 +1322,14 @@ struct _gpgme_signature
   /* Key should not have been used for signing.  */
   unsigned int wrong_key_usage : 1;
 
+  /* PKA status: 0 = not available, 1 = bad, 2 = okay, 3 = RFU. */
+  unsigned int pka_trust : 2;
+
+  /* Validity has been verified using the chain model. */
+  unsigned int chain_model : 1;
+
   /* Internal to GPGME, do not use.  */
-  int _unused : 31;
+  int _unused : 28;
 
   gpgme_validity_t validity;
   gpgme_error_t validity_reason;
@@ -1319,6 +1339,9 @@ struct _gpgme_signature
 
   /* The hash algorithm used to create the signature.  */
   gpgme_hash_algo_t hash_algo;
+
+  /* The mailbox from the PKA information or NULL. */
+  char *pka_address;
 };
 typedef struct _gpgme_signature *gpgme_signature_t;