aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Meshkov <meshkov@rutoken.ru>2018-12-27 13:03:13 +0300
committerDmitry Meshkov <meshkov@rutoken.ru>2018-12-28 10:11:47 +0300
commite73b5da38fe3e541d076093f7dd96fd2f8f527cc (patch)
treeea642a77cd2025b11f7ddd0a43d787d18763a337
parent2b79bbba6aed4e69b1d2d0c04da00f121c69799d (diff)
downloadgost-engine-e73b5da38fe3e541d076093f7dd96fd2f8f527cc.zip
gost-engine-e73b5da38fe3e541d076093f7dd96fd2f8f527cc.tar.gz
gost-engine-e73b5da38fe3e541d076093f7dd96fd2f8f527cc.tar.bz2
Replace orders of groups with orders of cyclic subgroups
According to OpenSSL documentation EC_GROUP's member named order contains the cardinality of cyclic subgroup. Some paramsets contain cardinalities of elliptic curves' groups.
-rw-r--r--gost_params.c10
-rw-r--r--test_curves.c9
2 files changed, 8 insertions, 11 deletions
diff --git a/gost_params.c b/gost_params.c
index 799672b..b73d5a9 100644
--- a/gost_params.c
+++ b/gost_params.c
@@ -137,8 +137,8 @@ R3410_ec_params R3410_2012_512_paramset[] = {
"295F9BAE7428ED9CCC20E7C359A9D41A22FCCD9108E17BF7BA9337A6F8AE9513",
/* p */
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD97",
- /* m */
- "01000000000000000000000000000000003F63377F21ED98D70456BD55B0D8319C",
+ /* q */
+ "400000000000000000000000000000000FD8CDDFC87B6635C115AF556C360C67",
/* x */
"91E38443A5E82C0D880923425712B2BB658B9196932E02C78B2582FE742DAA28",
/* y */
@@ -155,9 +155,9 @@ R3410_ec_params R3410_2012_512_paramset[] = {
/* p */
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC7",
- /* m */
- "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
- "26336E91941AAC0130CEA7FD451D40B323B6A79E9DA6849A5188F3BD1FC08FB4",
+ /* q */
+ "3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ "C98CDBA46506AB004C33A9FF5147502CC8EDA9E7A769A12694623CEF47F023ED",
/* x */
"E2E31EDFC23DE7BDEBE241CE593EF5DE2295B7A9CBAEF021D385F7074CEA043A"
"A27272A7AE602BF2A7B9033DB9ED3610C6FB85487EAE97AAC5BC7928C1950148",
diff --git a/test_curves.c b/test_curves.c
index ba1da89..1ee15b0 100644
--- a/test_curves.c
+++ b/test_curves.c
@@ -182,8 +182,8 @@ static int parameter_test(struct test_curve *tc)
const BIGNUM *order;
T(order = EC_GROUP_get0_order(group));
T(!BN_is_zero(order));
- print_bn("m", order);
- T(!BN_is_zero(order));
+ print_bn("q", order);
+ T(BN_is_odd(order));
EC_POINT *point;
T((point = EC_POINT_new(group)));
T(EC_POINT_mul(group, point, NULL, generator, order, ctx));
@@ -204,10 +204,7 @@ static int parameter_test(struct test_curve *tc)
/* Cofactor is 1 or 4 */
const BIGNUM *c;
T(c = EC_GROUP_get0_cofactor(group));
- if (BN_is_odd(order))
- T(BN_is_word(c, 1));
- else
- T(BN_is_word(c, 4));
+ T(BN_is_word(c, 1) || BN_is_word(c, 4));
TEST_ASSERT(0);
return test;