openssl/providers/implementations/include/prov
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
..
__DECC_INCLUDE_EPILOGUE.H Update copyright year 2021-06-17 13:24:59 +01:00
__DECC_INCLUDE_PROLOGUE.H Update copyright year 2021-06-17 13:24:59 +01:00
blake2.h Update copyright year 2021-03-11 13:27:36 +00:00
ciphercommon_aead.h Update copyright year 2022-05-03 13:34:51 +01:00
ciphercommon_ccm.h Update copyright year 2022-05-03 13:34:51 +01:00
ciphercommon_gcm.h Update copyright year 2022-05-03 13:34:51 +01:00
ciphercommon.h Make IV/buf in prov_cipher_ctx_st aligned 2022-05-11 15:10:07 +02:00
digestcommon.h Add null digest implementation to the default provider 2021-11-15 09:25:42 +01:00
implementations.h Implement AES-GCM-SIV (RFC8452) 2022-07-29 08:32:16 -04:00
kdfexchange.h Update copyright year 2021-04-08 13:04:41 +01:00
macsignature.h rename mac_key_* to ossl_mac_key_* 2020-11-19 07:38:58 +10:00
md5_sha1.h Update copyright year 2021-03-11 13:27:36 +00:00
names.h Implement AES-GCM-SIV (RFC8452) 2022-07-29 08:32:16 -04:00
seeding.h Update copyright year 2021-04-08 13:04:41 +01:00