aboutsummaryrefslogtreecommitdiff
path: root/crypto/ec/ecp_smpl.c
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2002-08-02 13:42:24 +0000
committerBodo Möller <bodo@openssl.org>2002-08-02 13:42:24 +0000
commit7793f30e09c104b209206608a20f2088b1b635fd (patch)
treed2cd7bb2648283c9aba75420791330992f35a42d /crypto/ec/ecp_smpl.c
parent714df32e33ab704e208fcf0c91ae32e9d925615e (diff)
downloadopenssl-7793f30e09c104b209206608a20f2088b1b635fd.zip
openssl-7793f30e09c104b209206608a20f2088b1b635fd.tar.gz
openssl-7793f30e09c104b209206608a20f2088b1b635fd.tar.bz2
add support for elliptic curves over binary fields
Submitted by: Duglas Stebila <douglas.stebila@sun.com>, Sheueling Chang <sheueling.chang@sun.com> (CHANGES entries by Bodo Moeller)
Diffstat (limited to 'crypto/ec/ecp_smpl.c')
-rw-r--r--crypto/ec/ecp_smpl.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/crypto/ec/ecp_smpl.c b/crypto/ec/ecp_smpl.c
index a453f4f..27b4472 100644
--- a/crypto/ec/ecp_smpl.c
+++ b/crypto/ec/ecp_smpl.c
@@ -54,6 +54,11 @@
* 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/symhacks.h>
@@ -70,6 +75,7 @@ const EC_METHOD *EC_GFp_simple_method(void)
ec_GFp_simple_group_copy,
ec_GFp_simple_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,
@@ -86,6 +92,8 @@ const EC_METHOD *EC_GFp_simple_method(void)
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,
@@ -93,6 +101,7 @@ const EC_METHOD *EC_GFp_simple_method(void)
ec_GFp_simple_points_make_affine,
ec_GFp_simple_field_mul,
ec_GFp_simple_field_sqr,
+ 0 /* field_div */,
0 /* field_encode */,
0 /* field_decode */,
0 /* field_set_to_one */ };
@@ -245,6 +254,12 @@ int ec_GFp_simple_group_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *
}
+int ec_GFp_simple_group_get_degree(const EC_GROUP *group)
+ {
+ return BN_num_bits(&group->field);
+ }
+
+
int ec_GFp_simple_group_check_discriminant(const EC_GROUP *group, BN_CTX *ctx)
{
int ret = 0;