From: Dr. Stephen Henson Date: Sun, 2 Jul 2006 21:12:40 +0000 (+0000) Subject: Make return value from EVP_PKEY_cmp() and EVP_PKEY_cmp_parameters() consistent. X-Git-Tag: OpenSSL_0_9_8k^2~1230 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=86207c1960f2fd5de93541488713639c3d8577db;p=oweals%2Fopenssl.git Make return value from EVP_PKEY_cmp() and EVP_PKEY_cmp_parameters() consistent. --- diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index 939857fdb0..6715c154b2 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -161,11 +161,20 @@ int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b) if (a->type != b->type) return -1; - if (EVP_PKEY_cmp_parameters(a, b) == 0) - return 0; - - if (a->ameth && a->ameth->pub_cmp) - return a->ameth->pub_cmp(a, b); + if (a->meth) + { + int ret; + /* Compare parameters if the algorithm has them */ + if (a->meth->param_cmp) + { + ret = a->meth->param_cmp(a, b); + if (ret <= 0) + return ret; + } + + if (a->ameth->pub_cmp) + return a->ameth->pub_cmp(a, b); + } return -2; }