aboutsummaryrefslogtreecommitdiff
path: root/src/cm/cm_prime.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cm/cm_prime.h')
-rw-r--r--src/cm/cm_prime.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/cm/cm_prime.h b/src/cm/cm_prime.h
new file mode 100644
index 0000000..59debac
--- /dev/null
+++ b/src/cm/cm_prime.h
@@ -0,0 +1,34 @@
+/*
+ * ecgen, tool for generating Elliptic curve domain parameters
+ * Copyright (C) 2017-2018 J08nY
+ */
+#ifndef ECGEN_CM_PRIME_H
+#define ECGEN_CM_PRIME_H
+
+#include "misc/config.h"
+#include "misc/types.h"
+
+typedef struct {
+ /* Stuff filled with qdisc_next. */
+ GEN p;
+ GEN t;
+ GEN D;
+
+ /* Stuff for saving state. */
+ GEN order;
+ GEN r;
+ GEN i;
+ GEN* Sp;
+ size_t nprimes;
+} cm_prime_qdisc_t;
+
+/**
+ * Algorithm mostly from:
+ * Constructing elliptic curves of prime order
+ * by Reinier Broker and Peter Stevenhagen
+ * @param order the requested order, must be prime
+ * @return
+ */
+curve_t* cm_prime_curve(GEN order);
+
+#endif // ECGEN_CM_PRIME_H