aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJ08nY2017-09-19 11:13:42 +0200
committerJ08nY2017-09-19 11:13:42 +0200
commit6adddf44e235fa272d82e8dcde748d6e7a8db14a (patch)
treef2c78c14bc80169bb0af06188251cd24c6ed5a1e /test
parent38ab890296ec07317cdbfe7f71a443c46ec30dd2 (diff)
downloadecgen-6adddf44e235fa272d82e8dcde748d6e7a8db14a.tar.gz
ecgen-6adddf44e235fa272d82e8dcde748d6e7a8db14a.tar.zst
ecgen-6adddf44e235fa272d82e8dcde748d6e7a8db14a.zip
Fix ANSI X9.62 binary field generation method.
Diffstat (limited to 'test')
-rw-r--r--test/src/exhaustive/test_ansi.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/test/src/exhaustive/test_ansi.c b/test/src/exhaustive/test_ansi.c
index 6c6ccb3..996f3a5 100644
--- a/test/src/exhaustive/test_ansi.c
+++ b/test/src/exhaustive/test_ansi.c
@@ -189,6 +189,7 @@ void binary_params_cleanup(struct criterion_test_params *ctp) {
ParameterizedTestParameters(ansi, test_seed_binary_examples) {
static struct binary_params params[10] = {};
+ // Taken from ANSI X9.62 J.4.1, J.4.3, J.4.5 and J.4.8; p. 107 - 113
polynomial_t p163 = {163, 9, 3, 2};
params[0].bits = 163;
params[0].field = p163;
@@ -245,7 +246,7 @@ ParameterizedTestParameters(ansi, test_seed_binary_examples) {
params[9].b = cr_strdup("2472E2D0197C49363F1FE7F5B6DB075D52B6947D135D8CA445805D39BC345626089687742B6329E70680231988");
size_t nb_params = sizeof(params) / sizeof(struct binary_params);
- //nb_params = 2;
+ //nb_params = 1;
return cr_make_param_array(struct binary_params, params, nb_params, binary_params_cleanup);
}
ParameterizedTest(struct binary_params *param, ansi, test_seed_binary_examples) {
@@ -256,14 +257,16 @@ ParameterizedTest(struct binary_params *param, ansi, test_seed_binary_examples)
curve_t curve = {};
curve.field = poly_gen(&param->field);
+ GEN expected_b = bits_to_i(bits_from_hex(param->b));
+ bits_t *b = bits_from_i(expected_b);
+
int ret = ansi_gen_seed_argument(&curve, &cfg, NULL);
cr_assert_eq(ret, 1,);
- bits_t *b = bits_from_i(bits_to_i(bits_from_hex(param->b)));
+
ret = ansi_gen_equation(&curve, &cfg, NULL);
cr_assert_eq(ret, 1,);
GEN curve_b = field_elementi(curve.b);
- printf("\n******************************\n\n%lu\n%s\n%s\n********************\n", cfg.bits, bits_to_bin(b), bits_to_bin(bits_from_i(curve_b)));
- cr_assert(gequal(curve_b, bits_to_i(b)),);
+ cr_assert(gequal(curve_b, expected_b),);
bits_free(&b);