There never was a real need for a distinction between the GFp and GF2m
variants of EC_POINT_{get,set}_affine_coordinates_{GFp,GF2m}() in
libcrypto. The EC_GROUP method has the correct function pointer set. Now
that we have EC_POINT_{get,set}_affine_coordinates(), let's use them and
avoid the complexity of using the GFp and GF2m variants.
Index: dh.c
===================================================================
RCS file: /cvs/src/sbin/isakmpd/dh.c,v
retrieving revision 1.21
diff -u -p -r1.21 dh.c
--- dh.c 8 Nov 2017 13:33:49 -0000 1.21
+++ dh.c 13 May 2021 05:25:32 -0000
@@ -535,16 +535,8 @@ ec_point2raw(struct group *group, const
if ((ecgroup = EC_KEY_get0_group(group->ec)) == NULL)
goto done;
- if (EC_METHOD_get_field_type(EC_GROUP_method_of(ecgroup)) ==
- NID_X9_62_prime_field) {
- if (!EC_POINT_get_affine_coordinates_GFp(ecgroup,
- point, x, y, bnctx))
- goto done;
- } else {
- if (!EC_POINT_get_affine_coordinates_GF2m(ecgroup,
- point, x, y, bnctx))
- goto done;
- }
+ if (!EC_POINT_get_affine_coordinates(ecgroup, point, x, y, bnctx))
+ goto done;
xoff = xlen - BN_num_bytes(x);
bzero(buf, xoff);
@@ -603,16 +595,8 @@ ec_raw2point(struct group *group, u_int8
if ((point = EC_POINT_new(ecgroup)) == NULL)
goto done;
- if (EC_METHOD_get_field_type(EC_GROUP_method_of(ecgroup)) ==
- NID_X9_62_prime_field) {
- if (!EC_POINT_set_affine_coordinates_GFp(ecgroup,
- point, x, y, bnctx))
- goto done;
- } else {
- if (!EC_POINT_set_affine_coordinates_GF2m(ecgroup,
- point, x, y, bnctx))
- goto done;
- }
+ if (!EC_POINT_set_affine_coordinates(ecgroup, point, x, y, bnctx))
+ goto done;
ret = 0;
done: