From 4eeba9b38b63d2aa7fd091c00c753b30b78e0209 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos <nmav@gnutls.org> Date: Fri, 25 Mar 2011 20:18:00 +0100 Subject: [PATCH] Fix size of gnutls_openpgp_keyid_t by using the GNUTLS_OPENPGP_KEYID_SIZE definition. Reported by Andreas Metzler. --- lib/includes/gnutls/openpgp.h | 3 ++- lib/openpgp/gnutls_openpgp.c | 9 +++++---- lib/openpgp/pgp.c | 4 ++-- lib/openpgp/privkey.c | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/includes/gnutls/openpgp.h b/lib/includes/gnutls/openpgp.h index 78cec82..8ea994a 100644 --- a/lib/includes/gnutls/openpgp.h +++ b/lib/includes/gnutls/openpgp.h @@ -53,7 +53,8 @@ extern "C" GNUTLS_OPENPGP_FMT_BASE64 } gnutls_openpgp_crt_fmt_t; - typedef unsigned char gnutls_openpgp_keyid_t[8]; +#define GNUTLS_OPENPGP_KEYID_SIZE 8 + typedef unsigned char gnutls_openpgp_keyid_t[GNUTLS_OPENPGP_KEYID_SIZE]; /* gnutls_openpgp_cert_t should be defined in gnutls.h */ diff --git a/lib/openpgp/gnutls_openpgp.c b/lib/openpgp/gnutls_openpgp.c index 90246f8..d6c4ef2 100644 --- a/lib/openpgp/gnutls_openpgp.c +++ b/lib/openpgp/gnutls_openpgp.c @@ -322,7 +322,7 @@ gnutls_certificate_set_openpgp_key_file (gnutls_certificate_credentials_t res, static int get_keyid (gnutls_openpgp_keyid_t keyid, const char *str) { - size_t keyid_size = sizeof (keyid); + size_t keyid_size = GNUTLS_OPENPGP_KEYID_SIZE; if (strlen (str) != 16) { @@ -811,8 +811,9 @@ _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, sizeof (keyid), err_buf, sizeof (err_buf))); + ("Importing Openpgp cert and using openpgp sub key: %s\n", + _gnutls_bin2hex (keyid, GNUTLS_OPENPGP_KEYID_SIZE, err_buf, sizeof (err_buf) + )); KEYID_IMPORT (kid32, keyid); @@ -829,7 +830,7 @@ _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; - memcpy (gcert->subkey_id, keyid, sizeof (keyid)); + memcpy (gcert->subkey_id, keyid, GNUTLS_OPENPGP_KEYID_SIZE); ret = _gnutls_openpgp_crt_get_mpis (cert, kid32, gcert->params, diff --git a/lib/openpgp/pgp.c b/lib/openpgp/pgp.c index 3483243..e592558 100644 --- a/lib/openpgp/pgp.c +++ b/lib/openpgp/pgp.c @@ -1560,7 +1560,7 @@ gnutls_openpgp_crt_get_preferred_key_id (gnutls_openpgp_crt_t key, return GNUTLS_E_INVALID_REQUEST; } - memcpy (keyid, key->preferred_keyid, sizeof (gnutls_openpgp_keyid_t)); + memcpy (keyid, key->preferred_keyid, GNUTLS_OPENPGP_KEYID_SIZE); return 0; } @@ -1598,7 +1598,7 @@ gnutls_openpgp_crt_set_preferred_key_id (gnutls_openpgp_crt_t key, } key->preferred_set = 1; - memcpy (key->preferred_keyid, keyid, sizeof (gnutls_openpgp_keyid_t)); + memcpy (key->preferred_keyid, keyid, GNUTLS_OPENPGP_KEYID_SIZE); return 0; } diff --git a/lib/openpgp/privkey.c b/lib/openpgp/privkey.c index bc4c635..77a14de 100644 --- a/lib/openpgp/privkey.c +++ b/lib/openpgp/privkey.c @@ -1140,7 +1140,7 @@ gnutls_openpgp_privkey_get_preferred_key_id (gnutls_openpgp_privkey_t key, return GNUTLS_E_INVALID_REQUEST; } - memcpy (keyid, key->preferred_keyid, sizeof (gnutls_openpgp_keyid_t)); + memcpy (keyid, key->preferred_keyid, GNUTLS_OPENPGP_KEYID_SIZE); return 0; } @@ -1178,7 +1178,7 @@ gnutls_openpgp_privkey_set_preferred_key_id (gnutls_openpgp_privkey_t key, } key->preferred_set = 1; - memcpy (key->preferred_keyid, keyid, sizeof (gnutls_openpgp_keyid_t)); + memcpy (key->preferred_keyid, keyid, GNUTLS_OPENPGP_KEYID_SIZE); return 0; } -- 1.7.2.5