ecc: Add Curve448.

Authored by gniibe on Jun 25 2019, 3:15 AM.

Description

ecc: Add Curve448.

* cipher/ecc-curves.c (curve_aliases): Add Curve448.
(domain_parms): Add domain parameter for Curve448.
* cipher/ecc-ecdh.c (_gcry_ecc_mul_point): Support Curve448.
* mpi/ec.c (ec_addm_448, ec_subm_448, ec_mulm_448): New.
(ec_mul2_448, ec_pow2_448): New.
(field_table): Add field specific routines for Curve448.
(curve25519_bad_points): It's constants.
(curve448_bad_points): New.
(bad_points_table): New.
(ec_p_init): Initialize by bad_points_table.
* tests/Makefile.am (t-cv448): New.
* tests/t-cv448.c: New.
* tests/curves.c (N_CURVES): Increment.

This change is to add "Curve448". In libgcrypt and GnuPG, we have an
interface with a curve name, which was introduced before X25519/X448
function.

While OID 1.3.101.111 is for X448 function on the curve, we use it
to refer the curve itself.

  • Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>

Details

Committed
gniibeOct 3 2019, 6:58 AM
Parents
rC1cfe2329b91c: ecc: Fix regression in keygrip computation for cv25519 (2).
Branches
Unknown
Tags
Unknown
This commit has been deleted in the repository: it is no longer reachable from any branch, tag, or ref.