summaryrefslogtreecommitdiffstats
path: root/crypto/ec/ec_oct.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2018-05-21 16:24:56 +0200
committerMatt Caswell <matt@openssl.org>2018-05-24 18:17:44 +0200
commitb14e60155009f4f1d168e220fa01cd2b75557b72 (patch)
tree5a9d75432d7308b24eaaee50d402133e05c92507 /crypto/ec/ec_oct.c
parentSave and restore the Windows error around TlsGetValue. (diff)
downloadopenssl-b14e60155009f4f1d168e220fa01cd2b75557b72.tar.xz
openssl-b14e60155009f4f1d168e220fa01cd2b75557b72.zip
Improve compatibility of point and curve checks
We check that the curve name associated with the point is the same as that for the curve. Fixes #6302 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6323)
Diffstat (limited to 'crypto/ec/ec_oct.c')
-rw-r--r--crypto/ec/ec_oct.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/crypto/ec/ec_oct.c b/crypto/ec/ec_oct.c
index a21906e79c..c87d495a4f 100644
--- a/crypto/ec/ec_oct.c
+++ b/crypto/ec/ec_oct.c
@@ -25,7 +25,7 @@ int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group,
ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
return 0;
}
- if (group->meth != point->meth) {
+ if (!ec_point_is_compat(point, group)) {
ECerr(EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP,
EC_R_INCOMPATIBLE_OBJECTS);
return 0;
@@ -61,7 +61,7 @@ int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,
ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
return 0;
}
- if (group->meth != point->meth) {
+ if (!ec_point_is_compat(point, group)) {
ECerr(EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M,
EC_R_INCOMPATIBLE_OBJECTS);
return 0;
@@ -88,7 +88,7 @@ size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point,
ECerr(EC_F_EC_POINT_POINT2OCT, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
return 0;
}
- if (group->meth != point->meth) {
+ if (!ec_point_is_compat(point, group)) {
ECerr(EC_F_EC_POINT_POINT2OCT, EC_R_INCOMPATIBLE_OBJECTS);
return 0;
}
@@ -118,7 +118,7 @@ int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *point,
ECerr(EC_F_EC_POINT_OCT2POINT, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
return 0;
}
- if (group->meth != point->meth) {
+ if (!ec_point_is_compat(point, group)) {
ECerr(EC_F_EC_POINT_OCT2POINT, EC_R_INCOMPATIBLE_OBJECTS);
return 0;
}