projects
/
oweals
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add cofactor ECDH support from fips branch
[oweals/openssl.git]
/
crypto
/
ecdh
/
ech_ossl.c
diff --git
a/crypto/ecdh/ech_ossl.c
b/crypto/ecdh/ech_ossl.c
index 94a8f4b696a5fcb97c3cd08ab4c471d8dc696210..2656797449e7075cd910bd69deaf4c6c8012b3f5 100644
(file)
--- a/
crypto/ecdh/ech_ossl.c
+++ b/
crypto/ecdh/ech_ossl.c
@@
-146,6
+146,18
@@
static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
}
group = EC_KEY_get0_group(ecdh);
}
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);
if ((tmp=EC_POINT_new(group)) == NULL)
{
ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_MALLOC_FAILURE);