]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/intel-ipsec-mb/aes_xcbc_expand_key.c
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / intel-ipsec-mb / aes_xcbc_expand_key.c
index af7f4be36a751485bae7e4dd146d96d271f19429..bd66948d2599f49bcb43bf94d9a88bb24ed2b7d8 100644 (file)
@@ -29,6 +29,7 @@
 #include <stdio.h>
 #include "intel-ipsec-mb.h"
 
+#include "noaesni.h"
 #include "asm.h"
 
 static uint32_t in[4*3] = {
@@ -50,7 +51,22 @@ aes_xcbc_expand_key_sse(const void *key, void *k1_exp, void *k2, void *k3)
 }
 
 void
-aes_xcbc_expand_key_avx(const void *key, void *k1_exp, void *k2, void *k3)
+aes_xcbc_expand_key_sse_no_aesni(const void *key, void *k1_exp,
+                                 void *k2, void *k3)
+{
+        DECLARE_ALIGNED(uint32_t keys_exp_enc[11*4], 16);
+
+        aes_keyexp_128_enc_sse_no_aesni(key, keys_exp_enc);
+
+        aes128_ecbenc_x3_sse_no_aesni(in, keys_exp_enc, k1_exp, k2, k3);
+
+        aes_keyexp_128_enc_sse_no_aesni(k1_exp, k1_exp);
+}
+
+__forceinline
+void
+aes_xcbc_expand_key_avx_common(const void *key,
+                               void *k1_exp, void *k2, void *k3)
 {
         DECLARE_ALIGNED(uint32_t keys_exp_enc[11*4], 16);
 
@@ -60,3 +76,21 @@ aes_xcbc_expand_key_avx(const void *key, void *k1_exp, void *k2, void *k3)
 
         aes_keyexp_128_enc_avx(k1_exp, k1_exp);
 }
+
+void
+aes_xcbc_expand_key_avx(const void *key, void *k1_exp, void *k2, void *k3)
+{
+        aes_xcbc_expand_key_avx_common(key, k1_exp, k2, k3);
+}
+
+void
+aes_xcbc_expand_key_avx2(const void *key, void *k1_exp, void *k2, void *k3)
+{
+        aes_xcbc_expand_key_avx_common(key, k1_exp, k2, k3);
+}
+
+void
+aes_xcbc_expand_key_avx512(const void *key, void *k1_exp, void *k2, void *k3)
+{
+        aes_xcbc_expand_key_avx_common(key, k1_exp, k2, k3);
+}