openssl/providers/common
Stephen Farrell ad062480f7 Implements Hybrid Public Key Encryption (HPKE) as per RFC9180.
This supports all the modes, suites and export mechanisms defined
in RFC9180 and should be relatively easily extensible if/as new
suites are added.  The APIs are based on the pseudo-code from the
RFC, e.g. OSS_HPKE_encap() roughly maps to SetupBaseS().  External
APIs are defined in include/openssl/hpke.h and documented in
doc/man3/OSSL_HPKE_CTX_new.pod.  Tests (test/hpke_test.c) include
verifying a number of the test vectors from the RFC as well as
round-tripping for all the modes and suites.  We have demonstrated
interoperability with other HPKE implementations via a fork [1]
that implements TLS Encrypted ClientHello (ECH) which uses HPKE.

@slontis provided huge help in getting this done and this makes
extensive use of the KEM handling code from his PR#19068.

[1] https://github.com/sftcd/openssl/tree/ECH-draft-13c

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17172)
2022-11-25 16:26:55 +00:00
..
der providers/common/der/oids_to_c.pm: Remove use of Data::Dumper 2022-11-02 11:18:51 +01:00
include/prov Implements Hybrid Public Key Encryption (HPKE) as per RFC9180. 2022-11-25 16:26:55 +00:00
bio_prov.c Fix misc external ossl_ symbols. 2021-03-18 17:52:37 +10:00
build.info Add PBKDF1 to the legacy provider 2021-05-24 15:21:25 +10:00
capabilities.c Reimplement brainpool TLSv1.3 support group support 2022-10-07 10:01:48 +01:00
digest_to_nid.c Allow arbitrary digests with ECDSA and DSA 2021-05-12 13:12:00 +02:00
provider_ctx.c Rename some occurrences of 'library_context' and 'lib_ctx' to 'libctx' 2020-10-15 12:00:21 +01:00
provider_err.c Implements Hybrid Public Key Encryption (HPKE) as per RFC9180. 2022-11-25 16:26:55 +00:00
provider_seeding.c fix some code with obvious wrong coding style 2021-10-28 13:10:46 +10:00
provider_util.c Cleanup : directly include of internal/nelem.h when required. 2022-11-23 18:08:25 +01:00
securitycheck_default.c Store some FIPS global variables in the FIPS_GLOBAL structure 2021-04-16 14:27:28 +01:00
securitycheck_fips.c Store some FIPS global variables in the FIPS_GLOBAL structure 2021-04-16 14:27:28 +01:00
securitycheck.c Allow arbitrary digests with ECDSA and DSA 2021-05-12 13:12:00 +02:00