openssl/providers/implementations
Todd Short 0113ec8460 Implement AES-GCM-SIV (RFC8452)
Fixes #16721

This uses AES-ECB to create a counter mode AES-CTR32 (32bit counter, I could
not get AES-CTR to work as-is), and GHASH to implement POLYVAL. Optimally,
there would be separate polyval assembly implementation(s), but the only one
I could find (and it was SSE2 x86_64 code) was not Apache 2.0 licensed.

This implementation lives only in the default provider; there is no legacy
implementation.

The code offered in #16721 is not used; that implementation sits on top of
OpenSSL, this one is embedded inside OpenSSL.

Full test vectors from RFC8452 are included, except the 0 length plaintext;
that is not supported; and I'm not sure it's worthwhile to do so.

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18693)
2022-07-29 08:32:16 -04:00
..
asymciphers sm2_dupctx: Avoid potential use after free of the md 2022-06-10 14:06:57 +02:00
ciphers Implement AES-GCM-SIV (RFC8452) 2022-07-29 08:32:16 -04:00
digests s390x: Optimize kmac 2022-07-26 16:27:21 +02:00
encode_decode dh_to_text: Print the dh->length if set 2022-07-18 08:06:17 +01:00
exchange providers/implementations/exchange/kdf_exch.c: fix unavailable SIZE_MAX 2022-06-20 10:11:43 +01:00
include/prov Implement AES-GCM-SIV (RFC8452) 2022-07-29 08:32:16 -04:00
kdfs kdf objects missing a return if malloc fails. 2022-06-28 19:48:36 +01:00
kem Update copyright year 2022-05-03 13:34:51 +01:00
keymgmt The flag "decoded-from-explicit" must be imp/exportable 2022-06-23 15:47:15 +02:00
macs Fix a use after free in error handling of hmac_dup 2022-06-10 12:43:38 +02:00
rands use #pragma comment(lib) with _MSC_VER only 2022-07-11 10:36:28 +02:00
signature Remove duplicated #include headers 2022-05-04 13:46:10 +10:00
storemgmt Update copyright year 2022-05-03 13:34:51 +01:00
build.info