openssl/util
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
..
perl ParseC.pm: gracefully handle DOS-style end-of-line in source files 2022-11-18 07:47:44 +01:00
add-depends.pl Update copyright year 2022-05-03 13:34:51 +01:00
build.info Make util/wrap.pl work better on VMS 2021-06-18 09:08:16 +02:00
c-compress-test.pl FIPS module checksums: add scripts and Makefile rule 2021-05-04 11:32:16 +02:00
cavs-to-evptest.pl Add the NIST CAVS test vectors for CCM 2019-05-23 10:49:54 +01:00
check-format-test-negatives.c check-format.pl: improve whitespace reporting on <op>= 2022-09-02 21:32:46 +02:00
check-format-test-positives.c check-format.pl: improve whitespace reporting on <op>= 2022-09-02 21:32:46 +02:00
check-format.pl check-format.pl: improve whitespace reporting on <op>= 2022-09-02 21:32:46 +02:00
check-malloc-errs Following the license change, modify the boilerplates in util/, tools/ 2018-12-06 14:17:23 +01:00
ck_errf.pl Create provider errors and use them 2019-04-19 09:31:54 +01:00
copy.pl Following the license change, modify the boilerplates in util/, tools/ 2018-12-06 14:17:23 +01:00
dofile.pl configdata.pm.in, util/dofile.pl: Make a HERE document stricter. 2020-10-27 10:17:19 +01:00
echo.pl always use the same perl in $PATH 2021-09-02 12:55:39 +10:00
engines.num Change the build of engines to use ordinal files for symbol export 2018-10-05 08:22:42 +02:00
err-to-raise Simplify util/err-to-raise 2020-11-18 11:40:52 +01:00
find-doc-nits Add deprecation macro for 3.1 and deprecate OPENSSL_LH_stats 2022-06-22 09:36:14 +02:00
find-unused-errs Following the license change, modify the boilerplates in util/, tools/ 2018-12-06 14:17:23 +01:00
fips-checksums.sh always use the same perl in $PATH 2021-09-02 12:55:39 +10:00
fix-deprecation always use the same perl in $PATH 2021-09-02 12:55:39 +10:00
fix-includes Update copyright year 2020-04-23 13:55:52 +01:00
fix-includes.sed CRYPTO: split cipher_platform.h into algorithm specific headers 2019-12-19 13:31:29 +01:00
indent.pro Rename SSL3_RECORD to TLS_RL_RECORD 2022-11-14 07:51:26 +00:00
lang-compress.pl util: update FIPS checksumming script to be more aggressive with whitespace 2021-06-03 11:56:21 +10:00
libcrypto.num Implements Hybrid Public Key Encryption (HPKE) as per RFC9180. 2022-11-25 16:26:55 +00:00
libssl.num Add support for compressed certificates (RFC8879) 2022-10-18 09:30:22 -04:00
local_shlib.com.in Configuration: Fix incorrect $unified_info{attributes} references 2021-06-16 14:47:39 +01:00
markdownlint.rb Add initial demo-driven design demos 2022-06-24 16:00:00 +02:00
merge-err-lines Add merge-err-lines script 2019-09-19 09:27:38 -04:00
missingcrypto111.txt DOC: Add a few previously documented functions 2021-11-23 19:34:19 +01:00
missingcrypto-internal.txt STORE: Move the built-in 'file:' loader to become an engine module 2020-09-03 17:48:32 +02:00
missingcrypto.txt Add doc for EVP_ASYM_CIPHER-RSA and clean up OSSL_PROVIDER-FIPS.pod. 2022-11-18 14:29:01 +01:00
missingmacro111.txt Document some SSL DH related functions/macros 2020-11-18 14:14:53 +00:00
missingmacro.txt Add deprecation macro for 3.1 and deprecate OPENSSL_LH_stats 2022-06-22 09:36:14 +02:00
missingssl111.txt Adjust all util/missing*.txt to include the section number 2019-12-21 22:53:54 +01:00
missingssl-internal.txt Initialize files that declare internal symbols 2020-04-11 15:51:43 +02:00
missingssl.txt Document {SSL|SSL_CTX}_set_{purpose|trust}() 2022-04-07 11:45:23 +02:00
mk-fipsmodule-cnf.pl Rework how providers/fipsmodule.cnf is produced 2021-05-26 15:11:01 +02:00
mkbuildinf.pl Following the license change, modify the boilerplates in util/, tools/ 2018-12-06 14:17:23 +01:00
mkdef.pl Fix various typos, repeated words, align some spelling to LDP. 2022-10-12 16:55:28 +11:00
mkdir-p.pl Update copyright year 2021-04-08 13:04:41 +01:00
mkerr.pl Fix various typos, repeated words, align some spelling to LDP. 2022-10-12 16:55:28 +11:00
mknum.pl Ensure ordinals are created during release process 2021-06-29 09:51:30 +10:00
mkpod2html.pl Fix util/mkpod2html.pl to call pod2html with absolute paths 2021-09-21 11:05:53 +02:00
mkrc.pl util/mkrc.pl: Make sure FILEVERSION and PRODUCTVERSION have four numbers 2020-11-17 13:18:16 +01:00
mktar.sh Simplify the tarball generating scripts 2020-09-24 08:03:00 +02:00
opensslwrap.sh util/opensslwrap.sh: adjust to define OPENSSL_MODULES as well 2019-07-15 16:14:35 +02:00
other-internal.syms Suppress errors about undocumented asn1_d2i_read_bio 2021-02-22 12:11:38 +00:00
other.syms Allow PKCS12 export to set arbitrary bag attributes 2022-09-23 17:40:02 +01:00
providers.num Add provider module infrastructure 2019-03-11 20:40:13 +01:00
shlib_wrap.sh.in Add explicit support in util/shlib_wrap.sh.in for NonStop DLL loading. 2021-03-30 19:08:32 +02:00
su-filter.pl Following the license change, modify the boilerplates in util/, tools/ 2018-12-06 14:17:23 +01:00
unlocal_shlib.com.in Configuration: Fix incorrect $unified_info{attributes} references 2021-06-16 14:47:39 +01:00
withlibctx.pl Perl util to do with_libctx renaming 2020-10-01 09:23:05 +01:00
wrap.pl.in util/wrap.pl.in: Use parentheses so kill gets all its arguments 2022-09-15 08:42:23 +02:00
write-man-symlinks write-man-symlinks: Write relative symlinks not absolute 2021-05-25 17:14:09 +02:00