Don't set pubkey if eckey already has public key
The 'ecdsa_check()' function tries to correctly set the public key
on the eckey, but this should be skipped if the public key is
retrieved via the private key.
(cherry picked from commit 06b9724152)
This commit is contained in:
@@ -563,17 +563,21 @@ static isc_result_t
|
||||
ecdsa_check(EC_KEY *eckey, EC_KEY *pubeckey) {
|
||||
const EC_POINT *pubkey;
|
||||
|
||||
pubkey = EC_KEY_get0_public_key(pubeckey);
|
||||
if (pubkey == NULL) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
if (EC_KEY_set_public_key(eckey, pubkey) != 1) {
|
||||
pubkey = EC_KEY_get0_public_key(eckey);
|
||||
if (pubkey != NULL) {
|
||||
return (ISC_R_SUCCESS);
|
||||
} else if (pubeckey != NULL) {
|
||||
pubkey = EC_KEY_get0_public_key(pubeckey);
|
||||
if (pubkey == NULL) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
if (EC_KEY_set_public_key(eckey, pubkey) != 1) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
}
|
||||
if (EC_KEY_check_key(eckey) == 1) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user