openssl/crypto/ec
James Muir 836080a89a Support all five EdDSA instances from RFC 8032
Fixes #6277

Description:
Make each of the five EdDSA instances defined in RFC 8032 -- Ed25519,
Ed25519ctx, Ed25519ph, Ed448, Ed448ph -- available via the EVP APIs.

The desired EdDSA instance is specified via an OSSL_PARAM.

All instances, except for Ed25519, allow context strings as input.
Context strings are passed via an OSSL_PARAM.  For Ed25519ctx, the
context string must be nonempty.

Ed25519, Ed25519ctx, Ed448 are PureEdDSA instances, which means that
the full message (not a digest) must be passed to sign and verify
operations.

Ed25519ph, Ed448ph are HashEdDSA instances, which means that the input
message is hashed before sign and verify.

Testing:
All 21 test vectors from RFC 8032 have been added to evppkey_ecx.txt
(thanks to Shane Lontis for showing how to do that).  Those 21 test
vectors are exercised by evp_test.c and cover all five instances.

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/19705)
2023-01-13 07:09:09 +00:00
..
asm Apply the correct Apache v2 license 2022-02-14 10:08:21 +01:00
curve448 Support all five EdDSA instances from RFC 8032 2023-01-13 07:09:09 +00:00
build.info Add HPKE DHKEM provider support for EC, X25519 and X448. 2022-09-23 09:24:47 +01:00
curve25519.c Support all five EdDSA instances from RFC 8032 2023-01-13 07:09:09 +00:00
ec2_oct.c Update copyright year 2022-05-03 13:34:51 +01:00
ec2_smpl.c crypto: Fix various typos, repeated words, align some spelling to LDP. 2022-10-12 16:55:01 +11:00
ec_ameth.c Honor OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT as set and default to UNCOMPRESSED 2022-11-29 16:03:04 +01:00
ec_asn1.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_backend.c Cleanup : directly include of internal/nelem.h when required. 2022-11-23 18:08:25 +01:00
ec_check.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_curve.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_cvt.c Update copyright year 2021-03-11 13:27:36 +00:00
ec_deprecated.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_err.c Add error code for unsupported explicit parameters 2022-04-14 08:51:18 +02:00
ec_key.c dsa/ec: update pairwise tests to account for 140-3 IG 10.3.A additiocal comment 1 2022-11-02 08:42:46 +11:00
ec_kmeth.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_lib.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_local.h ec: Fail build on big-endian with enable-ec_nistp_64_gcc_128 2021-06-22 18:27:29 +10:00
ec_mult.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_oct.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_pmeth.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ec_print.c EC_POINT_hex2point: forget to free pt 2021-12-16 12:40:05 +01:00
ecdh_kdf.c Rename all getters to use get/get0 in name 2021-06-01 12:40:00 +02:00
ecdh_ossl.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecdsa_ossl.c Implement deterministic ECDSA sign (RFC6979) 2022-11-30 07:31:53 +00:00
ecdsa_sign.c Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
ecdsa_vrf.c Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
eck_prn.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecp_mont.c crypto: Fix various typos, repeated words, align some spelling to LDP. 2022-10-12 16:55:01 +11:00
ecp_nist.c Update copyright year 2021-03-11 13:27:36 +00:00
ecp_nistp224.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecp_nistp256.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecp_nistp521.c Remove redundant assignment in felem_mul_ref in p521 2022-11-30 07:13:03 +00:00
ecp_nistputil.c Update copyright year 2021-03-11 13:27:36 +00:00
ecp_nistz256_table.c Following the license change, modify the boilerplates in crypto/ec/ 2018-12-06 14:51:47 +01:00
ecp_nistz256.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecp_oct.c Replace some of the ERR_clear_error() calls with mark calls 2021-05-13 19:26:06 +02:00
ecp_ppc.c ppccap.c: Split out algorithm-specific functions 2021-06-25 08:49:45 +01:00
ecp_s390x_nistp.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecp_smpl.c nit: fix some pointer comparisons 2022-10-12 16:55:28 +11:00
ecx_backend.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecx_backend.h Fix the KEYNID2TYPE macro 2020-05-04 09:30:55 +01:00
ecx_key.c Stop raising ERR_R_MALLOC_FAILURE in most places 2022-10-05 14:02:03 +02:00
ecx_meth.c Support all five EdDSA instances from RFC 8032 2023-01-13 07:09:09 +00:00
ecx_s390x.c Update copyright year 2020-04-23 13:55:52 +01:00