diff options
author | Matt Caswell <matt@openssl.org> | 2018-05-21 16:24:56 +0200 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2018-05-24 18:17:44 +0200 |
commit | b14e60155009f4f1d168e220fa01cd2b75557b72 (patch) | |
tree | 5a9d75432d7308b24eaaee50d402133e05c92507 /crypto/ec/ec_oct.c | |
parent | Save and restore the Windows error around TlsGetValue. (diff) | |
download | openssl-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.c | 8 |
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; } |