aboutsummaryrefslogtreecommitdiff
path: root/test/evp_test.c
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2022-04-28 14:56:11 -0400
committerTodd Short <todd.short@me.com>2022-07-29 08:32:16 -0400
commit0113ec8460a918f8bc782130db8f75540b3b1ab2 (patch)
tree2e8c7100cd3be8c2a0cc32efed6330daf3f8395f /test/evp_test.c
parentdffafaf48174497a724d546c3483d2493fc9b64c (diff)
downloadopenssl-0113ec8460a918f8bc782130db8f75540b3b1ab2.zip
openssl-0113ec8460a918f8bc782130db8f75540b3b1ab2.tar.gz
openssl-0113ec8460a918f8bc782130db8f75540b3b1ab2.tar.bz2
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)
Diffstat (limited to 'test/evp_test.c')
-rw-r--r--test/evp_test.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/test/evp_test.c b/test/evp_test.c
index f0ca8c4..4a532be 100644
--- a/test/evp_test.c
+++ b/test/evp_test.c
@@ -1099,6 +1099,7 @@ static int cipher_test_run(EVP_TEST *t)
&& EVP_CIPHER_get_mode(cdat->cipher) == EVP_CIPH_STREAM_CIPHER)
|| ((EVP_CIPHER_get_flags(cdat->cipher) & EVP_CIPH_FLAG_CTS) != 0)
|| EVP_CIPHER_get_mode(cdat->cipher) == EVP_CIPH_SIV_MODE
+ || EVP_CIPHER_get_mode(cdat->cipher) == EVP_CIPH_GCM_SIV_MODE
|| EVP_CIPHER_get_mode(cdat->cipher) == EVP_CIPH_XTS_MODE
|| EVP_CIPHER_get_mode(cdat->cipher) == EVP_CIPH_WRAP_MODE)
break;