add support for elliptic curves over binary fields
[openssl.git] / crypto / ec / ecp_mont.c
index 75c9f6ed154a7f813aabd177519c30416ef90316..21592d007af17e42fd51e2ceaf31ee9a0a11bcdb 100644 (file)
  * Hudson (tjh@cryptsoft.com).
  *
  */
  * Hudson (tjh@cryptsoft.com).
  *
  */
+/* ====================================================================
+ * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
+ * Portions of this software developed by SUN MICROSYSTEMS, INC.,
+ * and contributed to the OpenSSL project.
+ */
 
 #include <openssl/err.h>
 
 
 #include <openssl/err.h>
 
@@ -68,6 +73,7 @@ const EC_METHOD *EC_GFp_mont_method(void)
                ec_GFp_mont_group_copy,
                ec_GFp_mont_group_set_curve_GFp,
                ec_GFp_simple_group_get_curve_GFp,
                ec_GFp_mont_group_copy,
                ec_GFp_mont_group_set_curve_GFp,
                ec_GFp_simple_group_get_curve_GFp,
+               ec_GFp_simple_group_get_degree,
                ec_GFp_simple_group_check_discriminant,
                ec_GFp_simple_point_init,
                ec_GFp_simple_point_finish,
                ec_GFp_simple_group_check_discriminant,
                ec_GFp_simple_point_init,
                ec_GFp_simple_point_finish,
@@ -84,6 +90,8 @@ const EC_METHOD *EC_GFp_mont_method(void)
                ec_GFp_simple_add,
                ec_GFp_simple_dbl,
                ec_GFp_simple_invert,
                ec_GFp_simple_add,
                ec_GFp_simple_dbl,
                ec_GFp_simple_invert,
+               0 /* mul */,
+               0 /* precompute_mult */,
                ec_GFp_simple_is_at_infinity,
                ec_GFp_simple_is_on_curve,
                ec_GFp_simple_cmp,
                ec_GFp_simple_is_at_infinity,
                ec_GFp_simple_is_on_curve,
                ec_GFp_simple_cmp,
@@ -91,6 +99,7 @@ const EC_METHOD *EC_GFp_mont_method(void)
                ec_GFp_simple_points_make_affine,
                ec_GFp_mont_field_mul,
                ec_GFp_mont_field_sqr,
                ec_GFp_simple_points_make_affine,
                ec_GFp_mont_field_mul,
                ec_GFp_mont_field_sqr,
+               0 /* field_div */,
                ec_GFp_mont_field_encode,
                ec_GFp_mont_field_decode,
                ec_GFp_mont_field_set_to_one };
                ec_GFp_mont_field_encode,
                ec_GFp_mont_field_decode,
                ec_GFp_mont_field_set_to_one };