Commit 3e792793 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

add cofactor ECDH support from fips branch

(cherry picked from commit a3a2e3a4)
parent ac5cb333
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -85,6 +85,8 @@
extern "C" {
#endif

#define EC_FLAG_COFACTOR_ECDH	0x1000

const ECDH_METHOD *ECDH_OpenSSL(void);

void	  ECDH_set_default_method(const ECDH_METHOD *);
+12 −0
Original line number Diff line number Diff line
@@ -137,6 +137,18 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
		}

	group = EC_KEY_get0_group(ecdh);

	if (EC_KEY_get_flags(ecdh) & EC_FLAG_COFACTOR_ECDH)
		{
		if (!EC_GROUP_get_cofactor(group, x, ctx) ||
			!BN_mul(x, x, priv_key, ctx))
			{
			ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
			goto err;
			}
		priv_key = x;
		}

	if ((tmp=EC_POINT_new(group)) == NULL)
		{
		ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_MALLOC_FAILURE);