aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2018-07-09 21:46:09 +0200
committerJ08nY2018-07-10 00:05:44 +0200
commite73dbb321629b845d37cae1b8376a8ac5a7542be (patch)
tree51e376403e451a01ea659e4f0885630dd6b49f4a
parent57888634921b61a828f9b98632b8a450bd6445f2 (diff)
downloadecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.tar.gz
ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.tar.zst
ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.zip
-rw-r--r--.travis.yml15
-rw-r--r--src/cm/cm_any.c20
-rw-r--r--src/cm/cm_any.h10
-rw-r--r--src/cm/cm_prime.c33
-rw-r--r--src/cm/cm_prime.h7
-rw-r--r--src/gen/point.c1
-rw-r--r--src/invalid/invalid.c1
-rw-r--r--test/src/cm/test_cm.c52
-rw-r--r--test/src/exhaustive/test_brainpool_rfc.c1
-rw-r--r--test/src/gen/test_order.c1
-rw-r--r--test/src/util/test_bits.c1
11 files changed, 12 insertions, 130 deletions
diff --git a/.travis.yml b/.travis.yml
index 102bb2b..8f668f4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,15 +20,16 @@ matrix:
- clang-5.0
before_install:
- - wget mirrors.kernel.org/ubuntu/pool/universe/p/pari/libpari-gmp-tls5_2.9.3-1_amd64.deb
- - wget mirrors.kernel.org/ubuntu/pool/universe/p/pari/libpari-dev_2.9.3-1_amd64.deb
- - wget mirrors.kernel.org/ubuntu/pool/universe/p/pari/pari-gp_2.9.3-1_amd64.deb
- - wget mirrors.kernel.org/ubuntu/pool/main/r/readline/libreadline7_7.0-0ubuntu2_amd64.deb
- - wget mirrors.kernel.org/ubuntu/pool/main/n/ncurses/libtinfo5_6.0%2B20160625-1ubuntu1_amd64.deb
+ - sudo apt-get update
+ - sudo apt-get install -y dpkg apt
+ - wget https://mirrors.kernel.org/ubuntu/pool/universe/p/pari/libpari-gmp-tls5_2.9.5-1_amd64.deb
+ - wget https://mirrors.kernel.org/ubuntu/pool/universe/p/pari/libpari-dev_2.9.5-1_amd64.deb
+ - wget https://mirrors.kernel.org/ubuntu/pool/universe/p/pari/pari-gp_2.9.5-1_amd64.deb
+ - wget https://mirrors.kernel.org/ubuntu/pool/main/r/readline/libreadline7_7.0-0ubuntu2_amd64.deb
+ - wget https://mirrors.kernel.org/ubuntu/pool/main/n/ncurses/libtinfo5_6.0%2B20160625-1ubuntu1_amd64.deb
- wget http://pari.math.u-bordeaux.fr/pub/pari/packages/seadata.tgz
- - sudo dpkg --force-all -i libtinfo5_6.0+20160625-1ubuntu1_amd64.deb libreadline7_7.0-0ubuntu2_amd64.deb libpari-gmp-tls5_2.9.3-1_amd64.deb libpari-dev_2.9.3-1_amd64.deb pari-gp_2.9.3-1_amd64.deb
+ - sudo dpkg --force-all -i libtinfo5_6.0+20160625-1ubuntu1_amd64.deb libreadline7_7.0-0ubuntu2_amd64.deb libpari-gmp-tls5_2.9.5-1_amd64.deb libpari-dev_2.9.5-1_amd64.deb pari-gp_2.9.5-1_amd64.deb
- DATADIR=$(echo "default(datadir)" | gp -q | cut -d\" -f2)
- - echo $DATADIR
- sudo tar --strip-components=1 -C ${DATADIR} -xzvf seadata.tgz data/
script: # Test, clean, build for release
diff --git a/src/cm/cm_any.c b/src/cm/cm_any.c
index f993fa3..2cab060 100644
--- a/src/cm/cm_any.c
+++ b/src/cm/cm_any.c
@@ -3,8 +3,6 @@
* Copyright (C) 2017-2018 J08nY
*/
#include "cm_any.h"
-#include <misc/config.h>
-#include <obj/obj.h>
#include "io/output.h"
#include "obj/curve.h"
#include "util/memory.h"
@@ -205,24 +203,6 @@ GEN cm_construct_curve(GEN order, GEN d, GEN p, bool ord_prime) {
return NULL;
}
-curve_t *cm_any_curve(GEN order) {
- cm_any_qdisc_t min_disc = {0};
- good_qdisc_minimal(&min_disc, order);
- debug_log("Got min D = %Pi", min_disc.d);
- GEN e = cm_construct_curve(order, min_disc.d, min_disc.p, false);
- if (e == NULL) {
- fprintf(err, "Could not construct curve.");
- return NULL;
- }
- curve_t *curve = curve_new();
- curve->field = min_disc.p;
- curve->curve = e;
- curve->a = ell_get_a4(e);
- curve->b = ell_get_a6(e);
- curve->order = gcopy(order);
- return curve;
-}
-
GENERATOR(cm_gen_curve_any) {
pari_sp ltop = avma;
GEN order = strtoi(cfg->cm_order);
diff --git a/src/cm/cm_any.h b/src/cm/cm_any.h
index 48dee1c..42fc68e 100644
--- a/src/cm/cm_any.h
+++ b/src/cm/cm_any.h
@@ -13,7 +13,8 @@ typedef struct {
} cm_any_qdisc_t;
/**
- * @brief
+ * @brief Construct an elliptic curve given its order, CM discriminant and field
+ * order.
* @param order
* @param d
* @param p
@@ -24,13 +25,6 @@ GEN cm_construct_curve(GEN order, GEN d, GEN p, bool ord_prime);
/**
* @brief
- * @param order
- * @return
- */
-curve_t *cm_any_curve(GEN order);
-
-/**
- * @brief
* @param curve
* @param args
* @param state
diff --git a/src/cm/cm_prime.c b/src/cm/cm_prime.c
index e3a6882..383229b 100644
--- a/src/cm/cm_prime.c
+++ b/src/cm/cm_prime.c
@@ -96,8 +96,8 @@ static void qdisc_next(cm_prime_qdisc_t *qdisc) {
if (cmpii(absp, rlog2) < 0 && equalii(modis(pprod, 8), stoi(5)) &&
m4 != 1 && m4 != 2) {
debug_log("candidate D = %Pi", pprod);
- GEN x;
- GEN y;
+ GEN x = NULL;
+ GEN y = NULL;
if (!cornacchia2(absp, qdisc->order, &x, &y)) {
qdisc->i = gerepileupto(btop, addis(qdisc->i, 1));
// debug_log("Cornacchia fail");
@@ -137,35 +137,6 @@ static void qdisc_next(cm_prime_qdisc_t *qdisc) {
static void qdisc_free(cm_prime_qdisc_t *qdisc) { try_free(qdisc->Sp); }
-curve_t *cm_prime_curve(GEN order) {
- GEN e = NULL;
-
- cm_prime_qdisc_t qdisc = {0};
- qdisc_init(&qdisc, order);
- do {
- qdisc_next(&qdisc);
- e = cm_construct_curve(order, qdisc.D, qdisc.p, true);
- } while (e == NULL);
- qdisc_free(&qdisc);
-
- curve_t *result = curve_new();
- result->field = qdisc.p;
- result->a = ell_get_a4(e);
- result->b = ell_get_a6(e);
- result->curve = e;
- result->order = order;
- result->generators = subgroups_new(1);
- result->generators[0] = subgroup_new();
- result->generators[0]->generator = point_new();
- result->generators[0]->generator->point = genrand(e);
- result->generators[0]->generator->order = order;
- result->generators[0]->generator->cofactor = stoi(1);
- result->generators[0]->npoints = 0;
- result->ngens = 1;
-
- return result;
-}
-
GENERATOR(cm_gen_curve_prime) {
GEN order = strtoi(cfg->cm_order);
GEN e = NULL;
diff --git a/src/cm/cm_prime.h b/src/cm/cm_prime.h
index 9b25100..739da84 100644
--- a/src/cm/cm_prime.h
+++ b/src/cm/cm_prime.h
@@ -26,13 +26,6 @@ typedef struct {
* 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);
-
-/**
- * @brief
* @param curve
* @param args
* @param state
diff --git a/src/gen/point.c b/src/gen/point.c
index 7d3ba90..d98edac 100644
--- a/src/gen/point.c
+++ b/src/gen/point.c
@@ -3,7 +3,6 @@
* Copyright (C) 2017-2018 J08nY
*/
#include "point.h"
-#include <obj/obj.h>
#include "exhaustive/arg.h"
#include "math/subgroup.h"
#include "obj/point.h"
diff --git a/src/invalid/invalid.c b/src/invalid/invalid.c
index 9b4dcb2..686bf23 100644
--- a/src/invalid/invalid.c
+++ b/src/invalid/invalid.c
@@ -3,7 +3,6 @@
* Copyright (C) 2017-2018 J08nY
*/
#include "invalid.h"
-#include <misc/config.h>
#include "exhaustive/arg.h"
#include "exhaustive/check.h"
#include "exhaustive/exhaustive.h"
diff --git a/test/src/cm/test_cm.c b/test/src/cm/test_cm.c
deleted file mode 100644
index d3f8257..0000000
--- a/test/src/cm/test_cm.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * ecgen, tool for generating Elliptic curve domain parameters
- * Copyright (C) 2017-2018 J08nY
- */
-
-#include <criterion/criterion.h>
-#include "cm/cm_any.h"
-#include "cm/cm_prime.h"
-#include "obj/curve.h"
-#include "test/default.h"
-#include "test/input.h"
-#include "test/output.h"
-#include "util/random.h"
-
-void cm_setup() {
- default_setup();
- input_setup();
- output_setup();
- random_init();
-}
-
-void cm_teardown() {
- default_teardown();
- input_teardown();
- output_teardown();
-}
-
-TestSuite(cm, .init = cm_setup, .fini = cm_teardown);
-
-Test(cm, test_curve_prime) {
- cfg->bits = 128;
- cfg->cm_order = "263473633827487324648193013259296339349";
- GEN order = strtoi(cfg->cm_order);
-
- curve_t *curve = cm_prime_curve(order);
- cr_assert_not_null(curve, );
- cr_assert(equalii(curve->order, order), );
- cr_assert(equalii(ellcard(curve->curve, NULL), order), );
- curve_free(&curve);
-}
-
-Test(cm, test_curve_composite) {
- cfg->bits = 64;
- cfg->cm_order = "13282407956253574712";
- GEN order = strtoi(cfg->cm_order);
-
- curve_t *curve = cm_any_curve(order);
- cr_assert_not_null(curve, );
- cr_assert(equalii(curve->order, order), );
- cr_assert(equalii(ellcard(curve->curve, NULL), order), );
- curve_free(&curve);
-} \ No newline at end of file
diff --git a/test/src/exhaustive/test_brainpool_rfc.c b/test/src/exhaustive/test_brainpool_rfc.c
index 72eb75f..02398d7 100644
--- a/test/src/exhaustive/test_brainpool_rfc.c
+++ b/test/src/exhaustive/test_brainpool_rfc.c
@@ -5,7 +5,6 @@
#include <criterion/criterion.h>
#include <criterion/parameterized.h>
-#include <misc/types.h>
#include "exhaustive/brainpool.h"
#include "exhaustive/brainpool_rfc.h"
#include "exhaustive/check.h"
diff --git a/test/src/gen/test_order.c b/test/src/gen/test_order.c
index 02668f9..2ec4109 100644
--- a/test/src/gen/test_order.c
+++ b/test/src/gen/test_order.c
@@ -3,7 +3,6 @@
* Copyright (C) 2017-2018 J08nY
*/
#include <criterion/criterion.h>
-#include <obj/obj.h>
#include "gen/order.h"
#include "test/io.h"
diff --git a/test/src/util/test_bits.c b/test/src/util/test_bits.c
index e2e7648..c1dfd6a 100644
--- a/test/src/util/test_bits.c
+++ b/test/src/util/test_bits.c
@@ -5,7 +5,6 @@
#include <criterion/criterion.h>
#include <criterion/parameterized.h>
-#include <misc/types.h>
#include "test/default.h"
#include "test/memory.h"
#include "util/bits.h"