Normal basis support (translates to poly basis internally). Rewrite
[u/mdw/catacomb] / ectab.h
diff --git a/ectab.h b/ectab.h
index 925924d..d75e79c 100644 (file)
--- a/ectab.h
+++ b/ectab.h
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: ectab.h,v 1.2 2004/04/01 12:50:09 mdw Exp $
+ * $Id: ectab.h,v 1.3 2004/04/01 21:28:41 mdw Exp $
  *
  * Table of standard elliptic curves
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: ectab.h,v $
+ * Revision 1.3  2004/04/01 21:28:41  mdw
+ * Normal basis support (translates to poly basis internally).  Rewrite
+ * EC and prime group table generators in awk, so that they can reuse data
+ * for repeated constants.
+ *
  * Revision 1.2  2004/04/01 12:50:09  mdw
  * Add cyclic group abstraction, with test code.  Separate off exponentation
  * functions for better static linking.  Fix a buttload of bugs on the way.
@@ -57,7 +62,7 @@
 
 typedef struct ecdata {
   unsigned ftag;                       /* The kind of curve this is */
-  mp p;                                        /* Modulus */
+  mp p, beta;                          /* Modulus, and conversion magic */
   mp a, b;                             /* Elliptic curve parameters */
   mp r;                                        /* Order of common point %$g$% */
   mp h;                                        /* Cofactor %$h = \#E/r$% */
@@ -67,7 +72,8 @@ typedef struct ecdata {
 enum {
   FTAG_PRIME,                          /* Prime but not nice */
   FTAG_NICEPRIME,                      /* Nice prime field */
-  FTAG_BINPOLY                         /* Any old binary field */
+  FTAG_BINPOLY,                                /* Binary field, poly basis */
+  FTAG_BINNORM                         /* Binary field, normal basis */
 };
 
 typedef struct ecentry {