]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
pgp_keyid_t is now compatible with the 2.2 key id.
authorNikos <nmav@crystal.(none)>
Mon, 18 Feb 2008 19:46:28 +0000 (21:46 +0200)
committerNikos <nmav@crystal.(none)>
Mon, 18 Feb 2008 19:46:28 +0000 (21:46 +0200)
18 files changed:
doc/examples/ex-serv-pgp.c
includes/gnutls/gnutls.h.in
includes/gnutls/openpgp.h
lib/auth_cert.c
lib/gnutls_cert.c
lib/gnutls_openpgp.c
lib/openpgp/extras.c
lib/openpgp/gnutls_openpgp.h
lib/openpgp/openpgp.h
lib/openpgp/output.c
lib/openpgp/pgp.c
lib/openpgp/pgpverify.c
lib/openpgp/privkey.c
src/certtool.c
src/cli-gaa.c
src/cli.c
src/serv-gaa.c
tests/openpgp/keyring.c

index b10de8111a436b8b087abef55ecfa51214cf26f5..c98b5aaf99117078fa70cba8be2b67b79bed9723 100644 (file)
@@ -19,9 +19,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <gnutls/gnutls.h>
-/* Must be linked against gnutls-extra.
- */
-#include <gnutls/extra.h>
+#include <gnutls/openpgp.h>
 
 #define KEYFILE "secret.asc"
 #define CERTFILE "public.asc"
index 3595ef29a2f4de358b94ee2cc67be06832f3dae8..9ae7b38430eb5b7c5d16ccf1b8b8604ae59a9d8e 100644 (file)
@@ -1150,6 +1150,9 @@ extern "C"
   void gnutls_psk_set_params_function (gnutls_psk_server_credentials_t res,
                                       gnutls_params_function * func);
 
+  int gnutls_hex2bin (const char * hex_data, int hex_size, void * bin_data,
+                size_t * bin_size);
+
   /* Gnutls error codes. The mapping to a TLS alert is also shown in
    * comments.
    */
index 2f124c5c641f46f540310960fc3bcb9010f003c2..7366c865d271e41ddbfa98b46821c5fc221ba74e 100644 (file)
@@ -44,10 +44,7 @@ extern "C"
     GNUTLS_OPENPGP_FMT_BASE64
   } gnutls_openpgp_crt_fmt_t;
 
-  typedef struct 
-  {
-    unsigned char keyid[8];
-  } gnutls_openpgp_keyid_t;
+  typedef unsigned char gnutls_openpgp_keyid_t[8];
     
 /* gnutls_openpgp_cert_t should be defined in gnutls.h
  */
@@ -90,7 +87,7 @@ extern "C"
   time_t gnutls_openpgp_crt_get_expiration_time (gnutls_openpgp_crt_t key);
 
   int gnutls_openpgp_crt_get_key_id (gnutls_openpgp_crt_t key,
-                                gnutls_openpgp_keyid_t* keyid);
+                                gnutls_openpgp_keyid_t keyid);
 
   int gnutls_openpgp_crt_get_id (gnutls_openpgp_crt_t key,
                                 unsigned char keyid[8]);
@@ -101,13 +98,13 @@ extern "C"
   int gnutls_openpgp_crt_get_revoked_status (gnutls_openpgp_crt_t key);
 
   int gnutls_openpgp_crt_get_subkey_count (gnutls_openpgp_crt_t key);
-  int gnutls_openpgp_crt_get_subkey_idx (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid);
+  int gnutls_openpgp_crt_get_subkey_idx (gnutls_openpgp_crt_t key, const gnutls_openpgp_keyid_t keyid);
   int gnutls_openpgp_crt_get_subkey_revoked_status (gnutls_openpgp_crt_t key, unsigned int idx);
   gnutls_pk_algorithm_t gnutls_openpgp_crt_get_subkey_pk_algorithm (gnutls_openpgp_crt_t key,
     unsigned int idx, unsigned int *bits);
   time_t gnutls_openpgp_crt_get_subkey_creation_time (gnutls_openpgp_crt_t key, unsigned int idx);
   time_t gnutls_openpgp_crt_get_subkey_expiration_time (gnutls_openpgp_crt_t key, unsigned int idx);
-  int gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key, unsigned int idx, gnutls_openpgp_keyid_t* keyid);
+  int gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key, unsigned int idx, gnutls_openpgp_keyid_t keyid);
   int gnutls_openpgp_crt_get_subkey_usage (gnutls_openpgp_crt_t key, unsigned int idx,
                                  unsigned int *key_usage);
 
@@ -122,8 +119,8 @@ extern "C"
   int gnutls_openpgp_crt_get_pk_rsa_raw (gnutls_openpgp_crt_t crt, 
                                gnutls_datum_t * m, gnutls_datum_t * e);
 
-  int gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t* keyid);
-  int gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid);
+  int gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid);
+  int gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key, const gnutls_openpgp_keyid_t keyid);
 
 /* privkey stuff.
  */
@@ -141,9 +138,9 @@ extern "C"
                                  gnutls_datum_t * signature);
   int gnutls_openpgp_privkey_get_fingerprint (gnutls_openpgp_privkey_t key,
                                    void *fpr, size_t * fprlen);
-  int gnutls_openpgp_privkey_get_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t* keyid);
+  int gnutls_openpgp_privkey_get_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid);
   int gnutls_openpgp_privkey_get_subkey_count (gnutls_openpgp_privkey_t key);
-  int gnutls_openpgp_privkey_get_subkey_idx (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid);
+  int gnutls_openpgp_privkey_get_subkey_idx (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid);
 
   int gnutls_openpgp_privkey_get_subkey_revoked_status (gnutls_openpgp_privkey_t key, unsigned int idx);
 
@@ -154,7 +151,7 @@ extern "C"
 
   time_t gnutls_openpgp_privkey_get_subkey_expiration_time (gnutls_openpgp_privkey_t key, unsigned int idx);
 
-  int gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key, unsigned int idx, gnutls_openpgp_keyid_t* keyid);
+  int gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key, unsigned int idx, gnutls_openpgp_keyid_t keyid);
 
   time_t gnutls_openpgp_privkey_get_subkey_creation_time (gnutls_openpgp_privkey_t key, unsigned int idx);
 
@@ -181,10 +178,10 @@ extern "C"
                           const char* password, unsigned int flags,
                           void *output_data, size_t * output_data_size);
 
-  int gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid);
-  int gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t* keyid);
+  int gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid);
+  int gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid);
   
-  int gnutls_openpgp_crt_get_auth_subkey( gnutls_openpgp_crt_t crt, gnutls_openpgp_keyid_t* keyid);
+  int gnutls_openpgp_crt_get_auth_subkey( gnutls_openpgp_crt_t crt, gnutls_openpgp_keyid_t keyid);
 
 /* Keyring stuff.
  */
@@ -199,7 +196,7 @@ extern "C"
                                     gnutls_openpgp_crt_fmt_t format);
 
   int gnutls_openpgp_keyring_check_id (gnutls_openpgp_keyring_t ring,
-                                      gnutls_openpgp_keyid_t keyid,
+                                      const gnutls_openpgp_keyid_t keyid,
                                       unsigned int flags);
 
 
index 626ccddf802a083c11e9c34d197736c6c2736a68..4d63f3b95a1dcc507f6a0aafef8b3742ad5f313a 100644 (file)
@@ -109,7 +109,7 @@ _gnutls_copy_certificate_auth_info (cert_auth_info_t info,
   if (cert[0].cert_type == GNUTLS_CRT_OPENPGP)
     {
       info->use_subkey = cert[0].use_subkey;
-      info->subkey_id = cert[0].subkey_id;
+      memcpy( info->subkey_id, cert[0].subkey_id, sizeof(info->subkey_id));
     }
 #endif
 
@@ -728,7 +728,7 @@ _gnutls_gen_openpgp_certificate (gnutls_session_t session, opaque ** data)
   if (apr_cert_list_length > 0)
     {
       if (apr_cert_list[0].use_subkey != 0)
-        ret += 1 + sizeof(apr_cert_list[0].subkey_id.keyid); /* for the keyid */
+        ret += 1 + sizeof(apr_cert_list[0].subkey_id); /* for the keyid */
 
       ret += apr_cert_list[0].raw.size;
     }
@@ -752,10 +752,10 @@ _gnutls_gen_openpgp_certificate (gnutls_session_t session, opaque ** data)
         {
           *pdata = PGP_KEY_SUBKEY;
           pdata++;
-          *pdata = sizeof(apr_cert_list[0].subkey_id.keyid);
+          *pdata = sizeof(apr_cert_list[0].subkey_id);
           pdata++;
-          memcpy( pdata, apr_cert_list[0].subkey_id.keyid, sizeof(apr_cert_list[0].subkey_id.keyid));
-          pdata +=  sizeof(apr_cert_list[0].subkey_id.keyid);
+          memcpy( pdata, apr_cert_list[0].subkey_id, sizeof(apr_cert_list[0].subkey_id));
+          pdata +=  sizeof(apr_cert_list[0].subkey_id);
         } 
       else 
         {
@@ -798,7 +798,7 @@ _gnutls_gen_openpgp_certificate_fpr (gnutls_session_t session, opaque ** data)
   packet_size = 3 + 1;
 
   if (apr_cert_list[0].use_subkey)
-    packet_size += 1 + sizeof(apr_cert_list[0].subkey_id.keyid); /* for the keyid */
+    packet_size += 1 + sizeof(apr_cert_list[0].subkey_id); /* for the keyid */
 
   /* Only v4 fingerprints are sent 
    */
@@ -823,10 +823,10 @@ _gnutls_gen_openpgp_certificate_fpr (gnutls_session_t session, opaque ** data)
     {
       *pdata = PGP_KEY_FINGERPRINT_SUBKEY;
       pdata++;
-      *pdata = sizeof(apr_cert_list[0].subkey_id.keyid);
+      *pdata = sizeof(apr_cert_list[0].subkey_id);
       pdata++;
-      memcpy( pdata, apr_cert_list[0].subkey_id.keyid, sizeof(apr_cert_list[0].subkey_id.keyid));
-      pdata +=  sizeof(apr_cert_list[0].subkey_id.keyid);
+      memcpy( pdata, apr_cert_list[0].subkey_id, sizeof(apr_cert_list[0].subkey_id));
+      pdata +=  sizeof(apr_cert_list[0].subkey_id);
     } 
   else 
     {
@@ -1051,7 +1051,7 @@ _gnutls_proc_openpgp_server_certificate (gnutls_session_t session,
   int peer_certificate_list_size = 0;
   gnutls_datum_t tmp, akey = { NULL, 0 };
   gnutls_openpgp_keyid_t subkey_id;
-  gnutls_openpgp_keyid_t* selected_subkey = NULL;
+  void* selected_subkey = NULL;
 
   cred = (gnutls_certificate_credentials_t)
     _gnutls_get_cred (session->key, GNUTLS_CRD_CERTIFICATE, NULL);
@@ -1098,17 +1098,17 @@ _gnutls_proc_openpgp_server_certificate (gnutls_session_t session,
   if (key_type == PGP_KEY_FINGERPRINT_SUBKEY || key_type == PGP_KEY_SUBKEY)
     {
       /* check size */
-      if (*p != sizeof( subkey_id.keyid))
+      if (*p != sizeof( subkey_id))
         {
           gnutls_assert();
           return GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
         }
       p++;
       DECR_LEN (dsize, 1);
-      memcpy( subkey_id.keyid, p, sizeof( subkey_id.keyid));
+      memcpy( subkey_id, p, sizeof( subkey_id));
 
-      p+= sizeof( subkey_id.keyid);
-      DECR_LEN (dsize, sizeof( subkey_id.keyid));
+      p+= sizeof( subkey_id);
+      DECR_LEN (dsize, sizeof( subkey_id));
       
       selected_subkey = &subkey_id;
     }
@@ -1696,7 +1696,7 @@ alloc_and_load_pgp_certs (gnutls_openpgp_crt_t cert)
       return NULL;
     }
 
-  ret = gnutls_openpgp_crt_get_preferred_key_id( cert, &local_certs->subkey_id);
+  ret = gnutls_openpgp_crt_get_preferred_key_id( cert, local_certs->subkey_id);
   if (ret < 0)
       local_certs->use_subkey = 0;
   else    
index c864a74d95023ee0621da32da75b0c5255ff145a..e6dfadbeef2118a3c72de89c0d283b110c8185bd 100644 (file)
@@ -694,7 +694,7 @@ _gnutls_get_auth_info_gcert (gnutls_cert * gcert,
 #ifdef ENABLE_OPENPGP
     case GNUTLS_CRT_OPENPGP:
       if (info->use_subkey)
-        return _gnutls_openpgp_raw_crt_to_gcert (gcert,  &info->raw_certificate_list[0], &info->subkey_id);
+        return _gnutls_openpgp_raw_crt_to_gcert (gcert,  &info->raw_certificate_list[0], info->subkey_id);
       else
         return _gnutls_openpgp_raw_crt_to_gcert (gcert,  &info->raw_certificate_list[0], NULL);
 #endif
index 153be992cea97711a47e415c0f96c2ccc7bc6e6c..9a910e8993c630f36f0d6dea483e71669025688b 100644 (file)
@@ -91,7 +91,7 @@ _gnutls_map_cdk_rc (int rc)
  -*/
 int
 _gnutls_openpgp_raw_crt_to_gcert (gnutls_cert * gcert,
-                                 const gnutls_datum_t * raw, const gnutls_openpgp_keyid_tkeyid)
+                                 const gnutls_datum_t * raw, const gnutls_openpgp_keyid_t *keyid)
 {
   gnutls_openpgp_crt_t pcrt;
   int ret;
@@ -358,9 +358,9 @@ gnutls_certificate_set_openpgp_key_file (gnutls_certificate_credentials_t
   return gnutls_certificate_set_openpgp_key_file2( res, certfile, keyfile, NULL, format);
 }
 
-static int get_keyid( gnutls_openpgp_keyid_t* keyid, const char* str)
+static int get_keyid( gnutls_openpgp_keyid_t keyid, const char* str)
 {
-    size_t keyid_size = sizeof(keyid->keyid);
+    size_t keyid_size = sizeof(keyid);
 
     if (strlen(str) != 16)
       {
@@ -368,7 +368,7 @@ static int get_keyid( gnutls_openpgp_keyid_t* keyid, const char* str)
         return GNUTLS_E_INVALID_REQUEST;
       }  
 
-    if (_gnutls_hex2bin (str, strlen(str), keyid->keyid, &keyid_size) < 0)
+    if (_gnutls_hex2bin (str, strlen(str), keyid, &keyid_size) < 0)
       {
         _gnutls_debug_log("Error converting hex string: %s.\n", str);
         return GNUTLS_E_INVALID_REQUEST;
@@ -438,9 +438,9 @@ gnutls_certificate_set_openpgp_key_mem2 (gnutls_certificate_credentials_t
       gnutls_openpgp_keyid_t keyid;
       
       if (strcasecmp( subkey_id, "auto")==0)
-        ret = gnutls_openpgp_crt_get_auth_subkey( cert, &keyid);
+        ret = gnutls_openpgp_crt_get_auth_subkey( cert, keyid);
       else
-        ret = get_keyid( &keyid, subkey_id);
+        ret = get_keyid( keyid, subkey_id);
 
       if (ret >= 0)
         {
@@ -759,7 +759,7 @@ _gnutls_openpgp_privkey_to_gkey (gnutls_privkey * dest,
 
   dest->params_size = MAX_PRIV_PARAMS_SIZE;
 
-  ret = gnutls_openpgp_privkey_get_preferred_key_id( src, &keyid);
+  ret = gnutls_openpgp_privkey_get_preferred_key_id( src, keyid);
 
   if (ret == 0) 
     {
@@ -767,7 +767,7 @@ _gnutls_openpgp_privkey_to_gkey (gnutls_privkey * dest,
       uint32_t kid32[2];
 
       _gnutls_debug_log("Importing Openpgp key and using openpgp sub key: %s\n",
-        _gnutls_bin2hex( keyid.keyid, sizeof(keyid.keyid), err_buf, sizeof(err_buf)));
+        _gnutls_bin2hex( keyid, sizeof(keyid), err_buf, sizeof(err_buf)));
 
       KEYID_IMPORT(kid32, keyid);
   
@@ -815,7 +815,7 @@ _gnutls_openpgp_crt_to_gcert (gnutls_cert * gcert, gnutls_openpgp_crt_t cert)
   gcert->version = gnutls_openpgp_crt_get_version( cert);
   gcert->params_size = MAX_PUBLIC_PARAMS_SIZE;
   
-  ret = gnutls_openpgp_crt_get_preferred_key_id( cert, &keyid);
+  ret = gnutls_openpgp_crt_get_preferred_key_id( cert, keyid);
   
   if (ret == 0)
     {
@@ -823,7 +823,7 @@ _gnutls_openpgp_crt_to_gcert (gnutls_cert * gcert, gnutls_openpgp_crt_t cert)
       uint32_t kid32[2];
 
       _gnutls_debug_log("Importing Openpgp cert and using openpgp sub key: %s\n",
-        _gnutls_bin2hex( keyid.keyid, sizeof(keyid.keyid), err_buf, sizeof(err_buf)));
+        _gnutls_bin2hex( keyid, sizeof(keyid), err_buf, sizeof(err_buf)));
   
       KEYID_IMPORT(kid32, keyid);
 
@@ -838,7 +838,8 @@ _gnutls_openpgp_crt_to_gcert (gnutls_cert * gcert, gnutls_openpgp_crt_t cert)
   
       gnutls_openpgp_crt_get_subkey_usage( cert, idx, &gcert->key_usage);
       gcert->use_subkey = 1;
-      gcert->subkey_id = keyid;
+
+      memcpy(gcert->subkey_id, keyid, sizeof(keyid));
 
       ret = _gnutls_openpgp_crt_get_mpis( cert, kid32, gcert->params, &gcert->params_size);
     }
@@ -941,7 +942,7 @@ gnutls_openpgp_keyid_t keyid;
       return GNUTLS_E_INVALID_REQUEST;
     }
 
-  result = gnutls_openpgp_privkey_get_preferred_key_id( key, &keyid);
+  result = gnutls_openpgp_privkey_get_preferred_key_id( key, keyid);
   if (result == 0)
     {
       uint32_t kid[2];
index 2b994520074e6a45b6f0169f6fefc2432bd430bf..4cfab0f3c4884b6e8b5ed5f67c9e8c848b05af41 100644 (file)
@@ -88,14 +88,14 @@ gnutls_openpgp_keyring_deinit (gnutls_openpgp_keyring_t keyring)
  **/
 int
 gnutls_openpgp_keyring_check_id (gnutls_openpgp_keyring_t ring,
-                                gnutls_openpgp_keyid_t keyid,
+                                const gnutls_openpgp_keyid_t keyid,
                                 unsigned int flags)
 {
   cdk_pkt_pubkey_t pk;
   uint32_t id[2];
 
-  id[0] = _gnutls_read_uint32 (keyid.keyid);
-  id[1] = _gnutls_read_uint32 (&keyid.keyid[4]);
+  id[0] = _gnutls_read_uint32 (keyid);
+  id[1] = _gnutls_read_uint32 (&keyid[4]);
 
   if (!cdk_keydb_get_pk (ring->db, id, &pk))
     {
index 6343780994b2f95789b81a8173d9ac8098ff5728..1b8f2b8722c2068987acb00b21c508c9bddf1728 100644 (file)
@@ -8,19 +8,6 @@
 #include <auth_cert.h>
 #include <opencdk.h>
 
-typedef struct
-{
-  int type;
-  size_t size;
-  uint8_t *data;
-} keybox_blob;
-
-typedef enum
-{
-  KBX_BLOB_FILE = 0x00,
-  KBX_BLOB_DATA = 0x01
-} keyring_blob_types;
-
 /* OpenCDK compatible */
 typedef enum
 {
@@ -92,8 +79,6 @@ gnutls_openpgp_privkey_import (gnutls_openpgp_privkey_t key,
                               gnutls_openpgp_crt_fmt_t format,
                               const char *pass, unsigned int flags);
 
-int _gnutls_openpgp_find_valid_subkey( gnutls_openpgp_crt_t crt, gnutls_openpgp_keyid_t* keyid);
-
 #endif /*GNUTLS_OPENPGP_LOCAL_H */
 
 #endif /*ENABLE_OPENPGP */
index bf4f5b5ebcf55652eba716203797f305d88c94bd..e32db263330ab23387fe1bc88a266b7f378b14be 100644 (file)
 #include <gnutls/openpgp.h>
 
 #define KEYID_IMPORT(dst, src) \
-       dst[0] = _gnutls_read_uint32( src.keyid); \
-       dst[1] = _gnutls_read_uint32( src.keyid+4)
-
-#define KEYID_IMPORT2(dst, src) \
-       dst[0] = _gnutls_read_uint32( src->keyid); \
-       dst[1] = _gnutls_read_uint32( src->keyid+4)
+       dst[0] = _gnutls_read_uint32( src); \
+       dst[1] = _gnutls_read_uint32( src+4)
 
 /* Internal context to store the OpenPGP key. */
 typedef struct gnutls_openpgp_crt_int
index 9cf82997c178ed6556c82b947b9dbd94bbfafba1..dbd25f863cc7eaf7886f5cc519234390d25b255d 100644 (file)
@@ -129,16 +129,16 @@ print_key_id (gnutls_string * str, gnutls_openpgp_crt_t cert, int idx)
     int err;
 
     if (idx < 0)
-      err = gnutls_openpgp_crt_get_key_id (cert, &id);
+      err = gnutls_openpgp_crt_get_key_id (cert, id);
     else
-      err = gnutls_openpgp_crt_get_subkey_id( cert, idx, &id);
+      err = gnutls_openpgp_crt_get_subkey_id( cert, idx, id);
 
     if (err < 0)
       addf (str, "error: get_key_id: %s\n", gnutls_strerror (err));
     else
       {
        addf (str, _("\tID (hex): "));
-       hexprint (str, id.keyid, sizeof(id.keyid));
+       hexprint (str, id, sizeof(id));
        addf (str, "\n");
       }
 }
index 38c8bc9111218bb8771223c7816d4e2536f39a35..27962536767984723c78fedb99f5d08a8b447933 100644 (file)
@@ -449,7 +449,7 @@ gnutls_openpgp_crt_get_expiration_time (gnutls_openpgp_crt_t key)
  * Returns the 64-bit keyID of the OpenPGP key.
  **/
 int
-gnutls_openpgp_crt_get_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t* keyid)
+gnutls_openpgp_crt_get_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid)
 {
   cdk_packet_t pkt;
   uint32_t kid[2];
@@ -465,13 +465,13 @@ gnutls_openpgp_crt_get_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t*
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
 
   cdk_pk_get_keyid (pkt->pkt.public_key, kid);
-  _gnutls_write_uint32( kid[0], keyid->keyid);
-  _gnutls_write_uint32( kid[1], keyid->keyid+4);
+  _gnutls_write_uint32( kid[0], keyid);
+  _gnutls_write_uint32( kid[1], keyid+4);
 
   return 0;
 }
 
-/**
+/*-
  * gnutls_openpgp_crt_get_id - Gets the keyID
  * @key: the structure that contains the OpenPGP public key.
  * @keyid: the buffer to save the keyid.
@@ -479,14 +479,11 @@ gnutls_openpgp_crt_get_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t*
  * Returns the 64-bit keyID of the OpenPGP key.
  *
  * Deprecated: Use gnutls_openpgp_crt_get_key_id() instead.
**/
-*/
 int
 gnutls_openpgp_crt_get_id (gnutls_openpgp_crt_t key, unsigned char keyid[8])
 {
-  gnutls_openpgp_keyid_t tmp;
-  int ret = gnutls_openpgp_crt_get_key_id (key, &tmp);
-  memcpy (keyid, tmp.keyid, sizeof (tmp.keyid));
-  return ret;
+  return gnutls_openpgp_crt_get_key_id( key, keyid);
 }
 
 /**
@@ -876,7 +873,7 @@ gnutls_openpgp_crt_get_subkey_expiration_time (gnutls_openpgp_crt_t key, unsigne
  * Returns the 64-bit keyID of the OpenPGP key.
  **/
 int
-gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key, unsigned int idx, gnutls_openpgp_keyid_t* keyid)
+gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key, unsigned int idx, gnutls_openpgp_keyid_t keyid)
 {
   cdk_packet_t pkt;
   uint32_t kid[2];
@@ -892,8 +889,8 @@ gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key, unsigned int idx, gn
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
 
   cdk_pk_get_keyid (pkt->pkt.public_key, kid);
-  _gnutls_write_uint32( kid[0], keyid->keyid);
-  _gnutls_write_uint32( kid[1], keyid->keyid+4);
+  _gnutls_write_uint32( kid[0], keyid);
+  _gnutls_write_uint32( kid[1], keyid+4);
 
   return 0;
 }
@@ -907,7 +904,7 @@ gnutls_openpgp_crt_get_subkey_id (gnutls_openpgp_crt_t key, unsigned int idx, gn
  *
  **/
 int
-gnutls_openpgp_crt_get_subkey_idx (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid)
+gnutls_openpgp_crt_get_subkey_idx (gnutls_openpgp_crt_t key, const gnutls_openpgp_keyid_t keyid)
 {
   cdk_packet_t pkt;
   int ret;
@@ -1280,7 +1277,7 @@ gnutls_openpgp_crt_get_pk_rsa_raw (gnutls_openpgp_crt_t crt,
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_crt_get_key_id( crt, &keyid);  
+  ret = gnutls_openpgp_crt_get_key_id( crt, keyid);
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1312,7 +1309,7 @@ gnutls_openpgp_crt_get_pk_dsa_raw (gnutls_openpgp_crt_t crt,
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_crt_get_key_id( crt, &keyid);  
+  ret = gnutls_openpgp_crt_get_key_id( crt, keyid);
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1342,7 +1339,7 @@ gnutls_openpgp_crt_get_subkey_pk_rsa_raw (gnutls_openpgp_crt_t crt, unsigned int
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_crt_get_subkey_id( crt, idx, &keyid);  
+  ret = gnutls_openpgp_crt_get_subkey_id( crt, idx, keyid);  
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1375,7 +1372,7 @@ gnutls_openpgp_crt_get_subkey_pk_dsa_raw (gnutls_openpgp_crt_t crt, unsigned int
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_crt_get_subkey_id( crt, idx, &keyid);  
+  ret = gnutls_openpgp_crt_get_subkey_id( crt, idx, keyid);  
   if (ret < 0)
     {
       gnutls_assert ();
@@ -1394,7 +1391,7 @@ int ret;
  * been set it returns GNUTLS_E_INVALID_REQUEST.
  **/
 int
-gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t* keyid)
+gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid)
 {
   if (!key || !keyid || !key->preferred_set)
     {
@@ -1402,7 +1399,7 @@ gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpg
       return GNUTLS_E_INVALID_REQUEST;
     }
 
-  memcpy( keyid->keyid, key->preferred_keyid.keyid, sizeof(keyid->keyid));
+  memcpy( keyid, key->preferred_keyid, sizeof(keyid));
 
   return 0;
 }
@@ -1417,7 +1414,7 @@ gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpg
  *
  **/
 int
-gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key, gnutls_openpgp_keyid_t keyid)
+gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key, const gnutls_openpgp_keyid_t keyid)
 {
 int ret;
 
@@ -1437,7 +1434,7 @@ int ret;
     }
 
   key->preferred_set = 1;
-  memcpy( key->preferred_keyid.keyid, keyid.keyid, sizeof(keyid.keyid));
+  memcpy( key->preferred_keyid, keyid, sizeof(keyid));
 
   return 0;
 }
@@ -1451,7 +1448,7 @@ int ret;
  * 
  * Returns zero on success.
  **/
-int gnutls_openpgp_crt_get_auth_subkey( gnutls_openpgp_crt_t crt, gnutls_openpgp_keyid_t* keyid)
+int gnutls_openpgp_crt_get_auth_subkey( gnutls_openpgp_crt_t crt, gnutls_openpgp_keyid_t keyid)
 {
   int ret, subkeys, i;
   unsigned int usage;
index d0d1d360e0cd2da01648c331728e00427dca20bc..1ac09c273bf728410b811d0e8e81bbb45fda400f 100644 (file)
@@ -95,7 +95,7 @@ gnutls_openpgp_crt_verify_ring (gnutls_openpgp_crt_t key,
   /* Check if the key is included in the ring. */
   if (!(flags & GNUTLS_VERIFY_DO_NOT_ALLOW_SAME))
     {
-      rc = gnutls_openpgp_crt_get_key_id (key, &id);
+      rc = gnutls_openpgp_crt_get_key_id (key, id);
       if (rc < 0)
        {
          gnutls_assert ();
index 99bc60910e532ecd36523779d7a9bc72c40312b1..8d61c719c51a997dfbb4a274281ed5e5912215a9 100644 (file)
@@ -279,7 +279,7 @@ gnutls_openpgp_privkey_get_fingerprint (gnutls_openpgp_privkey_t key,
  * Returns the 64-bit keyID of the OpenPGP key.
  **/
 int
-gnutls_openpgp_privkey_get_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t* keyid)
+gnutls_openpgp_privkey_get_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid)
 {
   cdk_packet_t pkt;
   uint32_t kid[2];
@@ -295,8 +295,8 @@ gnutls_openpgp_privkey_get_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
 
   cdk_sk_get_keyid (pkt->pkt.secret_key, kid);
-  _gnutls_write_uint32( kid[0], keyid->keyid);
-  _gnutls_write_uint32( kid[1], keyid->keyid+4);
+  _gnutls_write_uint32( kid[0], keyid);
+  _gnutls_write_uint32( kid[1], keyid+4);
 
   return 0;
 }
@@ -439,7 +439,7 @@ gnutls_openpgp_privkey_get_subkey_pk_algorithm (gnutls_openpgp_privkey_t key,
  *
  **/
 int
-gnutls_openpgp_privkey_get_subkey_idx (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid)
+gnutls_openpgp_privkey_get_subkey_idx (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid)
 {
   cdk_packet_t pkt;
   int ret;
@@ -522,7 +522,7 @@ gnutls_openpgp_privkey_get_subkey_expiration_time (gnutls_openpgp_privkey_t key,
  * Returns the 64-bit keyID of the OpenPGP key.
  **/
 int
-gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key, unsigned int idx, gnutls_openpgp_keyid_t* keyid)
+gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key, unsigned int idx, gnutls_openpgp_keyid_t keyid)
 {
   cdk_packet_t pkt;
   uint32_t kid[2];
@@ -538,8 +538,8 @@ gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key, unsigned int
     return GNUTLS_E_OPENPGP_GETKEY_FAILED;
 
   cdk_sk_get_keyid (pkt->pkt.secret_key, kid);
-  _gnutls_write_uint32( kid[0], keyid->keyid);
-  _gnutls_write_uint32( kid[1], keyid->keyid+4);
+  _gnutls_write_uint32( kid[0], keyid);
+  _gnutls_write_uint32( kid[1], keyid+4);
 
   return 0;
 }
@@ -851,7 +851,7 @@ gnutls_openpgp_privkey_export_rsa_raw (gnutls_openpgp_privkey_t pkey,
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_privkey_get_key_id( pkey, &keyid);  
+  ret = gnutls_openpgp_privkey_get_key_id( pkey, keyid);  
   if (ret < 0)
     {
       gnutls_assert ();
@@ -885,7 +885,7 @@ gnutls_openpgp_privkey_export_dsa_raw (gnutls_openpgp_privkey_t pkey,
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_privkey_get_key_id( pkey, &keyid);  
+  ret = gnutls_openpgp_privkey_get_key_id( pkey, keyid);  
   if (ret < 0)
     {
       gnutls_assert ();
@@ -921,7 +921,7 @@ gnutls_openpgp_privkey_export_subkey_rsa_raw (gnutls_openpgp_privkey_t pkey, uns
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_privkey_get_subkey_id( pkey, idx, &keyid);  
+  ret = gnutls_openpgp_privkey_get_subkey_id( pkey, idx, keyid);  
   if (ret < 0)
     {
       gnutls_assert ();
@@ -956,7 +956,7 @@ gnutls_openpgp_privkey_export_subkey_dsa_raw (gnutls_openpgp_privkey_t pkey, uns
 gnutls_openpgp_keyid_t keyid;
 int ret;
 
-  ret = gnutls_openpgp_privkey_get_subkey_id( pkey, idx, &keyid);  
+  ret = gnutls_openpgp_privkey_get_subkey_id( pkey, idx, keyid);  
   if (ret < 0)
     {
       gnutls_assert ();
@@ -975,7 +975,7 @@ int ret;
  * been set it returns GNUTLS_E_INVALID_REQUEST.
  **/
 int
-gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t* keyid)
+gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid)
 {
   if (!key || !keyid || !key->preferred_set)
     {
@@ -983,7 +983,7 @@ gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, gnutl
       return GNUTLS_E_INVALID_REQUEST;
     }
 
-  memcpy( keyid->keyid, key->preferred_keyid.keyid, sizeof(keyid->keyid));
+  memcpy( keyid, key->preferred_keyid, sizeof(keyid));
 
   return 0;
 }
@@ -998,7 +998,8 @@ gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, gnutl
  *
  **/
 int
-gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid)
+gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key, 
+  const gnutls_openpgp_keyid_t keyid)
 {
 int ret;
 
@@ -1018,7 +1019,7 @@ int ret;
     }
 
   key->preferred_set = 1;
-  memcpy( key->preferred_keyid.keyid, keyid.keyid, sizeof(keyid.keyid));
+  memcpy( key->preferred_keyid, keyid, sizeof(keyid));
 
   return 0;
 }
index f2d58b93c86a27fad05d1badd6e435c24c1b7f02..b1253b0be61ab3a0cc2740fcdb9dc68896adf7b5 100644 (file)
@@ -1177,9 +1177,9 @@ pgp_privkey_info (void)
 
       size = sizeof (buffer);
       if (i == -1)
-       ret = gnutls_openpgp_privkey_get_key_id (key, &keyid);
+       ret = gnutls_openpgp_privkey_get_key_id (key, keyid);
       else
-       ret = gnutls_openpgp_privkey_get_subkey_id (key, i, &keyid);
+       ret = gnutls_openpgp_privkey_get_subkey_id (key, i, keyid);
 
       if (ret < 0)
        {
@@ -1189,7 +1189,7 @@ pgp_privkey_info (void)
       else
        {
          fprintf (outfile, "Public Key ID: %s\n",
-                  raw_to_string (keyid.keyid, 8));
+                  raw_to_string (keyid, 8));
        }
 
     }
index 3834f79bc1f75cde9b6d241fdb49fb90b38522e0..46b9c32e2a9cc31a52e1dac2dbdd504e556ba004 100644 (file)
@@ -149,7 +149,7 @@ void gaa_help(void)
        __gaa_helpsingle(0, "pgpkeyfile", "FILE ", "PGP Key file to use.");
        __gaa_helpsingle(0, "pgpkeyring", "FILE ", "PGP Key ring file to use.");
        __gaa_helpsingle(0, "pgpcertfile", "FILE ", "PGP Public Key (certificate) file to use.");
-       __gaa_helpsingle(0, "pgpsubkey", "HEX ", "PGP subkey to use.");
+       __gaa_helpsingle(0, "pgpsubkey", "HEX|auto ", "PGP subkey to use.");
        __gaa_helpsingle(0, "x509keyfile", "FILE ", "X.509 key file to use.");
        __gaa_helpsingle(0, "x509certfile", "FILE ", "X.509 Certificate file to use.");
        __gaa_helpsingle(0, "srpusername", "NAME ", "SRP username to use.");
index 365e4442cb7ad63380a7d97a3e850f7bb1ff99cf..19bb7061af15fd2881e1eaa935cd5a1139e1a8df 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -170,7 +170,7 @@ static gnutls_openpgp_privkey_t pgp_key = NULL;
 
 static void get_keyid( gnutls_openpgp_keyid_t* keyid, const char* str)
 {
-    size_t keyid_size = sizeof(keyid->keyid);
+    size_t keyid_size = sizeof(keyid);
 
     if (strlen(str) != 16)
       {
@@ -178,7 +178,7 @@ static void get_keyid( gnutls_openpgp_keyid_t* keyid, const char* str)
         exit(1);
       }  
 
-    if (gnutls_hex2bin (str, strlen(str), keyid->keyid, &keyid_size) < 0)
+    if (gnutls_hex2bin (str, strlen(str), keyid, &keyid_size) < 0)
       {
         fprintf(stderr, "Error converting hex string: %s.\n", str);
         exit(1);
index a31c31eddc0d909ffa7bb44dff9ef9444524df71..c2c4f13388f21e8282d0622628a0d5815298150f 100644 (file)
@@ -139,7 +139,7 @@ void gaa_help(void)
        __gaa_helpsingle(0, "pgpkeyring", "FILE ", "PGP Key ring file to use.");
        __gaa_helpsingle(0, "pgpkeyfile", "FILE ", "PGP Key file to use.");
        __gaa_helpsingle(0, "pgpcertfile", "FILE ", "PGP Public Key (certificate) file to use.");
-       __gaa_helpsingle(0, "pgpsubkey", "HEX ", "PGP subkey to use.");
+       __gaa_helpsingle(0, "pgpsubkey", "HEX|auto ", "PGP subkey to use.");
        __gaa_helpsingle(0, "x509keyfile", "FILE ", "X.509 key file to use.");
        __gaa_helpsingle(0, "x509certfile", "FILE ", "X.509 Certificate file to use.");
        __gaa_helpsingle(0, "x509dsakeyfile", "FILE ", "Alternative X.509 key file to use.");
index 9453d3f78ead8dff636e8dcacd2136c00ac0290f..d56a3cd930248761164af738fc956d76895ad188 100644 (file)
@@ -164,17 +164,17 @@ static unsigned char raw_keyring[] = {
 /* The ID of a key known to be in the above keyring.  */
 static const gnutls_openpgp_keyid_t id_in_keyring =
   /* "Dr. Who", first key in the keyring */
-  { 0x35, 0x14, 0x5c, 0xea,
-    0xa7, 0xd9, 0x3c, 0x3f } };
+  { 0x35, 0x14, 0x5c, 0xea,
+    0xa7, 0xd9, 0x3c, 0x3f };
 
 static const gnutls_openpgp_keyid_t id2_in_keyring =
   /* OpenCDK test key, second key in the keyring */
-  { 0xbd, 0x57, 0x2c, 0xdc,
-    0xcc, 0xc0, 0x7c, 0x35 } };
+  { 0xbd, 0x57, 0x2c, 0xdc,
+    0xcc, 0xc0, 0x7c, 0x35 };
 
 static const gnutls_openpgp_keyid_t id_not_in_keyring =
-  { 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00 } };
+  { 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00 };
 
 \f
 void