Merge branch 'master' of git+ssh://metalzone.distorted.org.uk/~mdw/public-git/catacomb/
[u/mdw/catacomb] / ec.h
diff --git a/ec.h b/ec.h
index bd71810..f46a985 100644 (file)
--- a/ec.h
+++ b/ec.h
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: ec.h,v 1.11 2004/04/08 01:36:15 mdw Exp $
+ * $Id$
  *
  * Elliptic curve definitions
  *
@@ -84,6 +84,7 @@ typedef struct ec_mulfactor {
  */
 
 typedef struct ec_ops {
+  const char *name;
   void (*destroy)(ec_curve */*c*/);
   int (*samep)(ec_curve */*c*/, ec_curve */*d*/);
   ec *(*in)(ec_curve */*c*/, ec */*d*/, const ec */*p*/);
@@ -97,6 +98,8 @@ typedef struct ec_ops {
   int (*check)(ec_curve */*c*/, const ec */*p*/);
 } ec_ops;
 
+#define EC_NAME(c)             (c)->ops->name
+
 #define EC_SAMEP(c, d)         (c)->ops->samep((c), (d))
 #define EC_IN(c, d, p)         (c)->ops->in((c), (d), (p))
 #define EC_OUT(c, d, p)                (c)->ops->out((c), (d), (p))
@@ -546,6 +549,20 @@ extern ec *ec_ptparse(qd_parse */*qd*/, ec */*p*/);
 
 extern int ec_infoparse(qd_parse */*qd*/, ec_info */*ei*/);
 
+/* --- @ec_infofromdata@ --- *
+ *
+ * Arguments:  @ec_info *ei@ = where to write the information
+ *             @ecdata *ed@ = raw data
+ *
+ * Returns:    ---
+ *
+ * Use:                Loads elliptic curve information about one of the standard
+ *             curves.
+ */
+
+struct ecdata;
+extern void ec_infofromdata(ec_info */*ei*/, struct ecdata */*ed*/);
+
 /* --- @ec_getinfo@ --- *
  *
  * Arguments:  @ec_info *ei@ = where to write the information