ECDH_compute_key is silently ignored and the KDF is run on duff data
Thanks to github user tomykaira for the suggested fix.
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
(cherry picked from commit
8d02bebddf4b69f7f260adfed4be4f498dcbd16c)
outlen = *keylen;
ret = ECDH_compute_key(key, outlen, pubkey, eckey, 0);
outlen = *keylen;
ret = ECDH_compute_key(key, outlen, pubkey, eckey, 0);
- if (ret < 0)
- return ret;
+ if (ret <= 0)
+ return 0;
*keylen = ret;
return 1;
}
*keylen = ret;
return 1;
}