summaryrefslogtreecommitdiff
path: root/lib/accelerated/x86/aes-gcm-x86-ssse3.c
diff options
context:
space:
mode:
authorDmitry Baryshkov <dbaryshkov@gmail.com>2020-06-15 20:55:39 +0000
committerDmitry Baryshkov <dbaryshkov@gmail.com>2020-06-15 20:55:39 +0000
commit7bfc148a587a69cf7faab4ef090031c91b6bb33a (patch)
tree93286d95c71a087f551360e77d35120295de3a69 /lib/accelerated/x86/aes-gcm-x86-ssse3.c
parent9ec9fe6cc4d0ceab436a418dd1e52132967bb9c7 (diff)
parent5c7ec5abb8947795b35b18a91eaaf097ebff4d06 (diff)
downloadgnutls-7bfc148a587a69cf7faab4ef090031c91b6bb33a.tar.gz
Merge branch 'master' into 'tmp-mark-gost94-as-broken'
# Conflicts: # lib/crypto-selftests-pk.c
Diffstat (limited to 'lib/accelerated/x86/aes-gcm-x86-ssse3.c')
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-ssse3.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/accelerated/x86/aes-gcm-x86-ssse3.c b/lib/accelerated/x86/aes-gcm-x86-ssse3.c
index 5580cc2214..f6b14681c9 100644
--- a/lib/accelerated/x86/aes-gcm-x86-ssse3.c
+++ b/lib/accelerated/x86/aes-gcm-x86-ssse3.c
@@ -69,6 +69,14 @@ static void x86_aes_128_set_encrypt_key(void *_ctx,
vpaes_set_encrypt_key(key, 16*8, ctx);
}
+static void x86_aes_192_set_encrypt_key(void *_ctx,
+ const uint8_t * key)
+{
+ AES_KEY *ctx = _ctx;
+
+ vpaes_set_encrypt_key(key, 24*8, ctx);
+}
+
static void x86_aes_256_set_encrypt_key(void *_ctx,
const uint8_t * key)
{
@@ -83,6 +91,7 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
+ algorithm != GNUTLS_CIPHER_AES_192_GCM &&
algorithm != GNUTLS_CIPHER_AES_256_GCM)
return GNUTLS_E_INVALID_REQUEST;
@@ -103,6 +112,9 @@ aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t keysize)
if (keysize == 16) {
GCM_SET_KEY(ctx, x86_aes_128_set_encrypt_key, x86_aes_encrypt,
key);
+ } else if (keysize == 24) {
+ GCM_SET_KEY(ctx, x86_aes_192_set_encrypt_key, x86_aes_encrypt,
+ key);
} else if (keysize == 32) {
GCM_SET_KEY(ctx, x86_aes_256_set_encrypt_key, x86_aes_encrypt,
key);