root/crypto/aegis128-neon.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. crypto_aegis128_have_simd
  2. crypto_aegis128_update_simd
  3. crypto_aegis128_encrypt_chunk_simd
  4. crypto_aegis128_decrypt_chunk_simd

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3  * Copyright (C) 2019 Linaro Ltd <ard.biesheuvel@linaro.org>
   4  */
   5 
   6 #include <asm/cpufeature.h>
   7 #include <asm/neon.h>
   8 
   9 #include "aegis.h"
  10 
  11 void crypto_aegis128_update_neon(void *state, const void *msg);
  12 void crypto_aegis128_encrypt_chunk_neon(void *state, void *dst, const void *src,
  13                                         unsigned int size);
  14 void crypto_aegis128_decrypt_chunk_neon(void *state, void *dst, const void *src,
  15                                         unsigned int size);
  16 
  17 int aegis128_have_aes_insn __ro_after_init;
  18 
  19 bool crypto_aegis128_have_simd(void)
  20 {
  21         if (cpu_have_feature(cpu_feature(AES))) {
  22                 aegis128_have_aes_insn = 1;
  23                 return true;
  24         }
  25         return IS_ENABLED(CONFIG_ARM64);
  26 }
  27 
  28 void crypto_aegis128_update_simd(union aegis_block *state, const void *msg)
  29 {
  30         kernel_neon_begin();
  31         crypto_aegis128_update_neon(state, msg);
  32         kernel_neon_end();
  33 }
  34 
  35 void crypto_aegis128_encrypt_chunk_simd(union aegis_block *state, u8 *dst,
  36                                         const u8 *src, unsigned int size)
  37 {
  38         kernel_neon_begin();
  39         crypto_aegis128_encrypt_chunk_neon(state, dst, src, size);
  40         kernel_neon_end();
  41 }
  42 
  43 void crypto_aegis128_decrypt_chunk_simd(union aegis_block *state, u8 *dst,
  44                                         const u8 *src, unsigned int size)
  45 {
  46         kernel_neon_begin();
  47         crypto_aegis128_decrypt_chunk_neon(state, dst, src, size);
  48         kernel_neon_end();
  49 }

/* [<][>][^][v][top][bottom][index][help] */