mirror of
https://github.com/openssl/openssl.git
synced 2025-02-17 14:32:04 +08:00
Fix EC_KEY_set_private_key() priv_key regression
This allows to set EC_KEY's private key to NULL and fixes regression issue following OTC guideline in https://github.com/openssl/openssl/issues/18744#issuecomment-1195175696 Fixes #18744. Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/18942)
This commit is contained in:
parent
0a90577e71
commit
b304b3e8f7
@ -720,6 +720,16 @@ int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key)
|
||||
&& key->meth->set_private(key, priv_key) == 0)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Return `0` to comply with legacy behavior for this function, see
|
||||
* https://github.com/openssl/openssl/issues/18744#issuecomment-1195175696
|
||||
*/
|
||||
if (priv_key == NULL) {
|
||||
BN_clear_free(key->priv_key);
|
||||
key->priv_key = NULL;
|
||||
return 0; /* intentional for legacy compatibility */
|
||||
}
|
||||
|
||||
/*
|
||||
* We should never leak the bit length of the secret scalar in the key,
|
||||
* so we always set the `BN_FLG_CONSTTIME` flag on the internal `BIGNUM`
|
||||
|
Loading…
Reference in New Issue
Block a user