diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-02-13 20:30:30 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-02-13 20:30:30 +0100 |
commit | 01ad9ae499df34c16b627f2e1538f51d23944960 (patch) | |
tree | 90425e1f88b141993e256e7d34fcf39ba1820710 | |
parent | b2ae2a7aee3b13124f655e829bac59b3dd4d3dc6 (diff) | |
download | gnutls-01ad9ae499df34c16b627f2e1538f51d23944960.tar.gz |
corrected gnutls_pubkey_verify_data()
-rw-r--r-- | lib/gnutls_pubkey.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/gnutls_pubkey.c b/lib/gnutls_pubkey.c index cc250215ed..8cd74de74d 100644 --- a/lib/gnutls_pubkey.c +++ b/lib/gnutls_pubkey.c @@ -1521,6 +1521,7 @@ gnutls_pubkey_verify_data (gnutls_pubkey_t pubkey, unsigned int flags, const gnutls_datum_t * signature) { int ret; + gnutls_digest_algorithm_t hash; if (pubkey == NULL) { @@ -1528,7 +1529,11 @@ gnutls_pubkey_verify_data (gnutls_pubkey_t pubkey, unsigned int flags, return GNUTLS_E_INVALID_REQUEST; } - ret = pubkey_verify_data( pubkey->pk_algorithm, GNUTLS_DIG_UNKNOWN, data, signature, + ret = gnutls_pubkey_get_verify_algorithm (pubkey, signature, &hash); + if (ret < 0) + return gnutls_assert_val(ret); + + ret = pubkey_verify_data( pubkey->pk_algorithm, hash, data, signature, &pubkey->params); if (ret < 0) { @@ -1593,7 +1598,6 @@ gnutls_pubkey_verify_data2 (gnutls_pubkey_t pubkey, * Deprecated. This function cannot be easily used securely. * Use gnutls_pubkey_verify_hash2() instead. * - * * Returns: In case of a verification failure %GNUTLS_E_PK_SIG_VERIFY_FAILED * is returned, and zero or positive code on success. * |