handle negative scalars correctly when doing point multiplication
[openssl.git] / crypto / ec / ecp_recp.c
index df7b52bce5ed55c1ff79356e06b53e0d2f70c361..fec843b5c85b7aafb6b94d93456320f91ef5245f 100644 (file)
 
 #include "ec_lcl.h"
 
-
+#if 0
 const EC_METHOD *EC_GFp_recp_method(void)
        {
        static const EC_METHOD ret = {
                ec_GFp_recp_group_init,
-               ec_GFp_recp_group_set_curve_GFp,
                ec_GFp_recp_group_finish,
                ec_GFp_recp_group_clear_finish,
                ec_GFp_recp_group_copy,
+               ec_GFp_recp_group_set_curve_GFp,
+               ec_GFp_simple_group_get_curve_GFp,
                ec_GFp_simple_group_set_generator,
-               /* TODO: 'set' and 'get' functions for EC_GROUPs */
+               ec_GFp_simple_group_get0_generator,
+               ec_GFp_simple_group_get_order,
+               ec_GFp_simple_group_get_cofactor,
                ec_GFp_simple_point_init,
                ec_GFp_simple_point_finish,
                ec_GFp_simple_point_clear_finish,
                ec_GFp_simple_point_copy,
                ec_GFp_simple_point_set_to_infinity,
+               ec_GFp_simple_set_Jprojective_coordinates_GFp,
+               ec_GFp_simple_get_Jprojective_coordinates_GFp,
                ec_GFp_simple_point_set_affine_coordinates_GFp,
                ec_GFp_simple_point_get_affine_coordinates_GFp,
-               /* TODO: other 'set' and 'get' functions for EC_POINTs */
+               ec_GFp_simple_set_compressed_coordinates_GFp,
                ec_GFp_simple_point2oct,
                ec_GFp_simple_oct2point,
                ec_GFp_simple_add,
                ec_GFp_simple_dbl,
+               ec_GFp_simple_invert,
                ec_GFp_simple_is_at_infinity,
                ec_GFp_simple_is_on_curve,
+               ec_GFp_simple_cmp,
                ec_GFp_simple_make_affine,
+               ec_GFp_simple_points_make_affine,
                ec_GFp_recp_field_mul,
                ec_GFp_recp_field_sqr,
-               ec_GFp_recp_field_encode,
-               ec_GFp_recp_field_decode };
+               0 /* field_encode */,
+               0 /* field_decode */,
+               0 /* field_set_to_one */ };
 
        return &ret;
        }
-
+#endif
 
 int ec_GFp_recp_group_init(EC_GROUP *group)
        {
        int ok;
 
        ok = ec_GFp_simple_group_init(group);
-       group->field_data = NULL;
+       group->field_data1 = NULL;
        return ok;
        }
 
@@ -122,11 +131,3 @@ int ec_GFp_recp_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, con
 
 int ec_GFp_recp_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, BN_CTX *ctx);
 /* TODO */
-
-
-int ec_GFp_recp_field_encode(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, BN_CTX *ctx);
-/* TODO */
-
-
-int ec_GFp_recp_field_decode(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, BN_CTX *ctx);
-/* TODO */