]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - crypto/aegis128-neon.c
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
[linux.git] / crypto / aegis128-neon.c
index 751f9c195aa42a0b43916c16362e15b32497000c..8271b1fa0fbc35418e2c6c016a504fc7d41a8a79 100644 (file)
@@ -8,11 +8,14 @@
 
 #include "aegis.h"
 
+void crypto_aegis128_init_neon(void *state, const void *key, const void *iv);
 void crypto_aegis128_update_neon(void *state, const void *msg);
 void crypto_aegis128_encrypt_chunk_neon(void *state, void *dst, const void *src,
                                        unsigned int size);
 void crypto_aegis128_decrypt_chunk_neon(void *state, void *dst, const void *src,
                                        unsigned int size);
+void crypto_aegis128_final_neon(void *state, void *tag_xor, uint64_t assoclen,
+                               uint64_t cryptlen);
 
 int aegis128_have_aes_insn __ro_after_init;
 
@@ -25,6 +28,15 @@ bool crypto_aegis128_have_simd(void)
        return IS_ENABLED(CONFIG_ARM64);
 }
 
+void crypto_aegis128_init_simd(union aegis_block *state,
+                              const union aegis_block *key,
+                              const u8 *iv)
+{
+       kernel_neon_begin();
+       crypto_aegis128_init_neon(state, key, iv);
+       kernel_neon_end();
+}
+
 void crypto_aegis128_update_simd(union aegis_block *state, const void *msg)
 {
        kernel_neon_begin();
@@ -47,3 +59,12 @@ void crypto_aegis128_decrypt_chunk_simd(union aegis_block *state, u8 *dst,
        crypto_aegis128_decrypt_chunk_neon(state, dst, src, size);
        kernel_neon_end();
 }
+
+void crypto_aegis128_final_simd(union aegis_block *state,
+                               union aegis_block *tag_xor,
+                               u64 assoclen, u64 cryptlen)
+{
+       kernel_neon_begin();
+       crypto_aegis128_final_neon(state, tag_xor, assoclen, cryptlen);
+       kernel_neon_end();
+}