aboutsummaryrefslogtreecommitdiff
path: root/src/curve.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/curve.h')
-rw-r--r--src/curve.h87
1 files changed, 21 insertions, 66 deletions
diff --git a/src/curve.h b/src/curve.h
index 5002f45..e4e973c 100644
--- a/src/curve.h
+++ b/src/curve.h
@@ -6,110 +6,65 @@
#define ECGEN_CURVE_H
#include <pari/pari.h>
-#include "field.h"
-#include "point.h"
-
-typedef struct curve_t {
- GEN seed;
- GEN field;
- GEN a;
- GEN b;
- GEN curve;
- GEN order;
- point_t **points;
- size_t npoints;
-} curve_t;
-
-/**
- *
- * @param field
- * @return
- */
-curve_t *curve_random(GEN field);
-
-/**
- *
- * @param t
- * @param bits
- * @return
- */
-curve_t *curve_randomf(enum field_e t, long bits);
-
-/**
- *
- * @param field
- * @return
- */
-curve_t *curve_nonzero(GEN field);
+#include "cli.h"
+#include "types.h"
/**
*
- * @param t
- * @param bits
- * @return
- */
-curve_t *curve_nonzerof(enum field_e t, long bits);
-
-/**
- *
- * @param field
+ * @param curve
+ * @param config
* @return
*/
-curve_t *curve_prime(GEN field);
+int curve_init(curve_t *curve, config_t *config);
/**
*
- * @param t
- * @param bits
+ * @param curve
+ * @param config
* @return
*/
-curve_t *curve_primef(enum field_e t, long bits);
+int curve_nonzero(curve_t *curve, config_t *config);
/**
- * ANSI X9.62 Verifiable random curve over field with seed.
*
- * @param field
- * @param seed
+ * @param curve
+ * @param config
* @return
*/
-curve_t *curve_seed(GEN field, GEN seed);
+int curve_prime(curve_t *curve, config_t *config);
/**
*
- * @param field
+ * @param curve
+ * @param config
* @return
*/
-curve_t *curve_seedr(GEN field);
+int curve_seed(curve_t *curve, config_t *config);
/**
*
- * @param seed
- * @param t
- * @param bits
+ * @param curve
+ * @param config
* @return
*/
-curve_t *curve_seedf(GEN seed, enum field_e t, long bits);
+int curve_g(curve_t *curve, config_t *config);
/**
- *
- * @param t
- * @param bits
+ * @param curve
* @return
*/
-curve_t *curve_seedrf(enum field_e t, long bits);
+GEN curve_params(curve_t *curve);
/**
*
- * @param curve
* @return
*/
-GEN curve_params(curve_t *curve);
+curve_t *curve_new();
/**
*
* @param curve
*/
-void free_curve(curve_t **curve);
-
+void curve_free(curve_t **curve);
#endif // ECGEN_CURVE_H