From: Niels Möller Date: Fri, 13 Nov 2020 18:59:36 +0000 (+0100) Subject: Generalize ECC_J_TO_A_ITCH. X-Git-Tag: nettle_3.7rc1~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7a433dc591a8435defebbcdf85a98d4198f9dce;p=thirdparty%2Fnettle.git Generalize ECC_J_TO_A_ITCH. * ecc-internal.h (ECC_J_TO_A_ITCH): Generalize, and take invert itch as an argument, similarly to ECC_EH_TO_A_ITCH. Updated all secp and gost curve definitions to use it. --- diff --git a/ChangeLog b/ChangeLog index fb4b6ab5..1d4699b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2020-11-13 Niels Möller + + * ecc-internal.h (ECC_J_TO_A_ITCH): Generalize, and take invert + itch as an argument, similarly to ECC_EH_TO_A_ITCH. Updated all + secp and gost curve definitions to use it. + 2020-10-21 Niels Möller * ecc-secp384r1.c (ecc_secp384r1_inv): New function, modular diff --git a/ecc-gost-gc256b.c b/ecc-gost-gc256b.c index 1490d7a8..988368e9 100644 --- a/ecc-gost-gc256b.c +++ b/ecc-gost-gc256b.c @@ -107,7 +107,7 @@ const struct ecc_curve _nettle_gost_gc256b = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - ECC_J_TO_A_ITCH (ECC_LIMB_SIZE), + ECC_J_TO_A_ITCH (ECC_LIMB_SIZE, ECC_MOD_INV_ITCH(ECC_LIMB_SIZE)), ecc_add_jja, ecc_add_jjj, diff --git a/ecc-gost-gc512a.c b/ecc-gost-gc512a.c index 0f6e9b6d..0b9864ef 100644 --- a/ecc-gost-gc512a.c +++ b/ecc-gost-gc512a.c @@ -107,7 +107,7 @@ const struct ecc_curve _nettle_gost_gc512a = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - ECC_J_TO_A_ITCH (ECC_LIMB_SIZE), + ECC_J_TO_A_ITCH (ECC_LIMB_SIZE, ECC_MOD_INV_ITCH(ECC_LIMB_SIZE)), ecc_add_jja, ecc_add_jjj, diff --git a/ecc-internal.h b/ecc-internal.h index d26458e1..2b059914 100644 --- a/ecc-internal.h +++ b/ecc-internal.h @@ -439,8 +439,7 @@ curve448_eh_to_x (mp_limb_t *xp, const mp_limb_t *p, /* Current scratch needs: */ #define ECC_MOD_INV_ITCH(size) (2*(size)) -/* Only valid when using the general ecc_mod_inv ! */ -#define ECC_J_TO_A_ITCH(size) (4*(size)) +#define ECC_J_TO_A_ITCH(size, inv) (2*(size)+(inv)) #define ECC_EH_TO_A_ITCH(size, inv) (2*(size)+(inv)) #define ECC_DUP_JJ_ITCH(size) (4*(size)) #define ECC_DUP_EH_ITCH(size) (3*(size)) diff --git a/ecc-secp192r1.c b/ecc-secp192r1.c index eb46559b..285278a5 100644 --- a/ecc-secp192r1.c +++ b/ecc-secp192r1.c @@ -235,7 +235,7 @@ const struct ecc_curve _nettle_secp_192r1 = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - 2*ECC_LIMB_SIZE + ECC_SECP192R1_INV_ITCH, + ECC_J_TO_A_ITCH(ECC_LIMB_SIZE, ECC_SECP192R1_INV_ITCH), ecc_add_jja, ecc_add_jjj, diff --git a/ecc-secp224r1.c b/ecc-secp224r1.c index 4b0fd9ba..98260412 100644 --- a/ecc-secp224r1.c +++ b/ecc-secp224r1.c @@ -163,7 +163,7 @@ const struct ecc_curve _nettle_secp_224r1 = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - 2*ECC_LIMB_SIZE + ECC_SECP224R1_INV_ITCH, + ECC_J_TO_A_ITCH(ECC_LIMB_SIZE, ECC_SECP224R1_INV_ITCH), ecc_add_jja, ecc_add_jjj, diff --git a/ecc-secp256r1.c b/ecc-secp256r1.c index d813da5d..9bdd0077 100644 --- a/ecc-secp256r1.c +++ b/ecc-secp256r1.c @@ -345,7 +345,7 @@ const struct ecc_curve _nettle_secp_256r1 = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - 2*ECC_LIMB_SIZE + ECC_SECP256R1_INV_ITCH, + ECC_J_TO_A_ITCH(ECC_LIMB_SIZE, ECC_SECP256R1_INV_ITCH), ecc_add_jja, ecc_add_jjj, diff --git a/ecc-secp384r1.c b/ecc-secp384r1.c index c51aa260..fef47036 100644 --- a/ecc-secp384r1.c +++ b/ecc-secp384r1.c @@ -255,7 +255,7 @@ const struct ecc_curve _nettle_secp_384r1 = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - 2*ECC_LIMB_SIZE + ECC_SECP384R1_INV_ITCH, + ECC_J_TO_A_ITCH(ECC_LIMB_SIZE, ECC_SECP384R1_INV_ITCH), ecc_add_jja, ecc_add_jjj, diff --git a/ecc-secp521r1.c b/ecc-secp521r1.c index 0d9f88fc..42b7e156 100644 --- a/ecc-secp521r1.c +++ b/ecc-secp521r1.c @@ -172,7 +172,7 @@ const struct ecc_curve _nettle_secp_521r1 = ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE), ECC_MUL_A_ITCH (ECC_LIMB_SIZE), ECC_MUL_G_ITCH (ECC_LIMB_SIZE), - 2*ECC_LIMB_SIZE + ECC_SECP521R1_INV_ITCH, + ECC_J_TO_A_ITCH(ECC_LIMB_SIZE, ECC_SECP521R1_INV_ITCH), ecc_add_jja, ecc_add_jjj,