diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-06-12 09:43:50 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-06-12 09:43:50 +0000 |
commit | a3620ec951821309d4d4d76e5b8b9002edfabe00 (patch) | |
tree | 2d4aadb17e466c7c0e53f363838b026f0c72dbe2 | |
parent | 7d4c9035ce5fd098276c5f30620671f800514723 (diff) | |
download | gnutls-a3620ec951821309d4d4d76e5b8b9002edfabe00.tar.gz |
*** empty log message ***
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | includes/gnutls/openpgp.h | 3 | ||||
-rw-r--r-- | libextra/openpgp/extras.c | 28 | ||||
-rw-r--r-- | libextra/openpgp/openpgp.h | 3 | ||||
-rw-r--r-- | libextra/openpgp/verify.c | 28 |
5 files changed, 35 insertions, 30 deletions
@@ -1,4 +1,4 @@ -Version 1.1.10 +Version 1.1.10 (12/06/2004) - Added gnutls_sign_algorithm_get_name() and gnutls_pk_algorithm_get_name() - Corrected bug in TLS renegotiation. - Corrected bug in OpenPGP key loading using a callback. @@ -23,6 +23,7 @@ Version 1.1.10 gnutls_rsa_export_get_pubkey() to retrieve parameters of the DH or RSA-EXPORT key exchange. - Some fixes in the session resuming code. +- Added gnutls_openpgp_keyring_check_id(). Version 1.1.9 (14/04/2004) - Added support for authority key identifier and the extended key usage diff --git a/includes/gnutls/openpgp.h b/includes/gnutls/openpgp.h index d18a115a3b..7d9dc237cd 100644 --- a/includes/gnutls/openpgp.h +++ b/includes/gnutls/openpgp.h @@ -93,6 +93,9 @@ void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring ring); int gnutls_openpgp_keyring_import(gnutls_openpgp_keyring ring, const gnutls_datum* data, gnutls_openpgp_key_fmt format); +int gnutls_openpgp_keyring_check_id( gnutls_openpgp_keyring ring, + const unsigned char keyid[8], unsigned int flags); + /* Trustdb functions. */ struct gnutls_openpgp_trustdb_int; /* object to hold (parsed) openpgp trustdbs */ diff --git a/libextra/openpgp/extras.c b/libextra/openpgp/extras.c index 41defd6678..c45dea88b6 100644 --- a/libextra/openpgp/extras.c +++ b/libextra/openpgp/extras.c @@ -74,6 +74,34 @@ void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring keyring) } /** + * gnutls_openpgp_keyring_check_id - Check if a key id exists in the keyring + * @ring: holds the keyring to check against + * @keyid: will hold the keyid to check for. + * @flags: unused (should be 0) + * + * Check if a given key ID exists in the keyring. + * + * Returns 0 on success (if keyid exists) and a negative error code + * on failure. + */ +int gnutls_openpgp_keyring_check_id( gnutls_openpgp_keyring ring, + const unsigned char keyid[8], unsigned int flags) +{ +int rc; +cdk_pkt_pubkey_t sig_pk; +uint32 id[2]; + + id[0] = _gnutls_read_uint32( keyid); + id[1] = _gnutls_read_uint32( &keyid[4]); + + rc = cdk_keydb_get_pk( ring->hd, id, &sig_pk); + if (!rc) + return 0; + else + return GNUTLS_E_NO_CERTIFICATE_FOUND; +} + +/** * gnutls_openpgp_keyring_import - This function will import a RAW or BASE64 encoded key * @keyring: The structure to store the parsed key. * @data: The RAW or BASE64 encoded keyring. diff --git a/libextra/openpgp/openpgp.h b/libextra/openpgp/openpgp.h index 403cea6370..d4711d68c2 100644 --- a/libextra/openpgp/openpgp.h +++ b/libextra/openpgp/openpgp.h @@ -61,6 +61,8 @@ void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring keyring); int gnutls_openpgp_keyring_init(gnutls_openpgp_keyring * keyring); int gnutls_openpgp_keyring_import(gnutls_openpgp_keyring keyring, const gnutls_datum * data, gnutls_openpgp_key_fmt format); +int gnutls_openpgp_keyring_check_id( gnutls_openpgp_keyring ring, + const unsigned char keyid[8], unsigned int flags); void gnutls_openpgp_trustdb_deinit(gnutls_openpgp_trustdb trustdb); int gnutls_openpgp_trustdb_init(gnutls_openpgp_trustdb * trustdb); @@ -85,7 +87,6 @@ int _gnutls_openpgp_privkey_to_gkey(gnutls_privkey * dest, void gnutls_openpgp_privkey_deinit(gnutls_openpgp_privkey key); - #else /* no opencdk */ typedef void *gnutls_openpgp_key; diff --git a/libextra/openpgp/verify.c b/libextra/openpgp/verify.c index 81646f4e9b..5b1d3420d7 100644 --- a/libextra/openpgp/verify.c +++ b/libextra/openpgp/verify.c @@ -76,34 +76,6 @@ openpgp_get_key_trust(gnutls_openpgp_trustdb trustdb, } /** - * gnutls_openpgp_keyring_check_id - Check if a key id exists in the keyring - * @ring: holds the keyring to check against - * @keyid: will hold the keyid to check for. - * @flags: unused (should be 0) - * - * Check if a given key ID exists in the keyring. - * - * Returns 0 on success (if keyid exists) and a negative error code - * on failure. - */ -int gnutls_openpgp_keyring_check_id( gnutls_openpgp_keyring ring, - const unsigned char keyid[8], unsigned int flags) -{ -int rc; -cdk_pkt_pubkey_t sig_pk; -uint32 id[2]; - - id[0] = _gnutls_read_uint32( keyid); - id[1] = _gnutls_read_uint32( &keyid[4]); - - rc = cdk_keydb_get_pk( ring->hd, id, &sig_pk); - if (!rc) - return 0; - else - return GNUTLS_E_NO_CERTIFICATE_FOUND; -} - -/** * gnutls_openpgp_key_verify_ring - Verify all signatures in the key * @key: the structure that holds the key. * @keyring: holds the keyring to check against |