hashsum.c: Document `--progress' in the `--help' display.
[u/mdw/catacomb] / ec-test.c
index 1307e32..ad2af90 100644 (file)
--- a/ec-test.c
+++ b/ec-test.c
@@ -1,13 +1,13 @@
 /* -*-c-*-
  *
- * $Id: ec-test.c,v 1.4 2004/04/01 12:50:09 mdw Exp $
+ * $Id$
  *
  * Code for testing elliptic-curve stuff
  *
  * (c) 2004 Straylight/Edgeware
  */
 
-/*----- Licensing notice --------------------------------------------------* 
+/*----- Licensing notice --------------------------------------------------*
  *
  * This file is part of Catacomb.
  *
  * it under the terms of the GNU Library General Public License as
  * published by the Free Software Foundation; either version 2 of the
  * License, or (at your option) any later version.
- * 
+ *
  * Catacomb is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Library General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Library General Public
  * License along with Catacomb; if not, write to the Free
  * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  * MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: ec-test.c,v $
- * Revision 1.4  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.
- * Generally ensure that negative exponents do inversion correctly.  Add
- * table of standard prime-field subgroups.  (Binary field subgroups are
- * currently unimplemented but easy to add if anyone ever finds a good one.)
- *
- * Revision 1.3  2004/03/27 17:54:11  mdw
- * Standard curves and curve checking.
- *
- * Revision 1.2  2004/03/27 00:04:46  mdw
- * Implement efficient reduction for pleasant-looking primes.
- *
- * Revision 1.1  2004/03/23 15:19:32  mdw
- * Test elliptic curves more thoroughly.
- *
- */
-
 /*----- Header files ------------------------------------------------------*/
 
 #include <assert.h>
@@ -123,7 +102,8 @@ static int ecSAMEP(ec_curve *cc, ec_curve *dd)
   return (ec_samep(c->real, d->real));
 }
 
-static ec_ops ecops = {
+static const ec_ops ecops = {
+  "cardboard",
   ecDESTROY, ecSAMEP, ecIN, ecOUT, ecFIX,
   ecFIND, ecNEG, ecADD, ecSUB, ecDBL, ecCHECK
 };
@@ -173,7 +153,7 @@ static void ecvdump(dstr *d, FILE *fp)
   fprintf(fp, "%s", ec_name(v));
 }
 
-test_type type_ecurve = { ecvcvt, ecvdump };
+const test_type type_ecurve = { ecvcvt, ecvdump };
 
 static void eccvt(const char *p, dstr *d)
 {
@@ -197,7 +177,7 @@ static void ecdodump(ec *a, FILE *fp)
   if (EC_ATINF(a))
     fputs("inf", fp);
   else {
-    fputs("0x", fp); 
+    fputs("0x", fp);
     mp_writefile(a->x, fp, 16);
     fputs(", 0x", fp);
     mp_writefile(a->y, fp, 16);
@@ -210,7 +190,7 @@ static void ecdump(dstr *d, FILE *fp)
   ecdodump(a, fp);
 }
 
-test_type type_ec = { eccvt, ecdump };
+const test_type type_ec = { eccvt, ecdump };
 
 /*----- Testing elliptic curve functionality ------------------------------*/
 
@@ -287,9 +267,9 @@ static int vcheck(dstr v[])
   if (r != c) {
     fprintf(stderr, "check failed");
     fprintf(stderr, "\ncurve = "); type_ecurve.dump(v, stderr);
-    fprintf(stderr, "\n    a = "); ecdodump(a, stderr);
-    fprintf(stderr, "\n    r = %d", r);
-    fprintf(stderr, "\n    c = %d", c); 
+    fprintf(stderr, "\n           a = "); ecdodump(a, stderr);
+    fprintf(stderr, "\n           r = %d", r);
+    fprintf(stderr, "\n           c = %d", c);
     fprintf(stderr, "\n");
     ok = 0;
   }
@@ -310,10 +290,10 @@ static int vmul(dstr v[])
   if (!EC_EQ(r, &c)) {
     fprintf(stderr, "mul failed");
     fprintf(stderr, "\ncurve = "); type_ecurve.dump(v, stderr);
-    fprintf(stderr, "\n    a = "); ecdodump(a, stderr);
-    fprintf(stderr, "\n    n = "); mp_writefile(n, stderr, 10);
-    fprintf(stderr, "\n    r = "); ecdodump(r, stderr);
-    fprintf(stderr, "\n    c = "); ecdodump(&c, stderr);
+    fprintf(stderr, "\n           a = "); ecdodump(a, stderr);
+    fprintf(stderr, "\n           n = "); mp_writefile(n, stderr, 10);
+    fprintf(stderr, "\n           r = "); ecdodump(r, stderr);
+    fprintf(stderr, "\n           c = "); ecdodump(&c, stderr);
     fprintf(stderr, "\n");
     ok = 0;
   }
@@ -333,9 +313,9 @@ static int vfind(dstr v[])
   if (!EC_EQ(r, &c)) {
     fprintf(stderr, "find failed");
     fprintf(stderr, "\ncurve = "); type_ecurve.dump(v, stderr);
-    fprintf(stderr, "\n    x = "); mp_writefile(x, stderr, 16);
-    fprintf(stderr, "\n    r = "); ecdodump(r, stderr);
-    fprintf(stderr, "\n    c = "); ecdodump(&c, stderr);
+    fprintf(stderr, "\n           x = "); mp_writefile(x, stderr, 16);
+    fprintf(stderr, "\n           r = "); ecdodump(r, stderr);
+    fprintf(stderr, "\n           c = "); ecdodump(&c, stderr);
     fprintf(stderr, "\n");
     ok = 0;
   }