Botan  2.7.0
Crypto and TLS for C++11
Namespaces | Macros
aes_armv8.cpp File Reference
#include <botan/aes.h>
#include <botan/loadstor.h>
#include <arm_neon.h>

Go to the source code of this file.

Namespaces

 Botan
 

Macros

#define AES_DEC_4_LAST_ROUNDS(K, K2)
 
#define AES_DEC_4_ROUNDS(K)
 
#define AES_ENC_4_LAST_ROUNDS(K, K2)
 
#define AES_ENC_4_ROUNDS(K)
 

Macro Definition Documentation

◆ AES_DEC_4_LAST_ROUNDS

#define AES_DEC_4_LAST_ROUNDS (   K,
  K2 
)
Value:
do \
{ \
B0 = veorq_u8(vaesdq_u8(B0, K), K2); \
B1 = veorq_u8(vaesdq_u8(B1, K), K2); \
B2 = veorq_u8(vaesdq_u8(B2, K), K2); \
B3 = veorq_u8(vaesdq_u8(B3, K), K2); \
} while(0)

Definition at line 44 of file aes_armv8.cpp.

◆ AES_DEC_4_ROUNDS

#define AES_DEC_4_ROUNDS (   K)
Value:
do \
{ \
B0 = vaesimcq_u8(vaesdq_u8(B0, K)); \
B1 = vaesimcq_u8(vaesdq_u8(B1, K)); \
B2 = vaesimcq_u8(vaesdq_u8(B2, K)); \
B3 = vaesimcq_u8(vaesdq_u8(B3, K)); \
} while(0)

Definition at line 35 of file aes_armv8.cpp.

◆ AES_ENC_4_LAST_ROUNDS

#define AES_ENC_4_LAST_ROUNDS (   K,
  K2 
)
Value:
do \
{ \
B0 = veorq_u8(vaeseq_u8(B0, K), K2); \
B1 = veorq_u8(vaeseq_u8(B1, K), K2); \
B2 = veorq_u8(vaeseq_u8(B2, K), K2); \
B3 = veorq_u8(vaeseq_u8(B3, K), K2); \
} while(0)

Definition at line 26 of file aes_armv8.cpp.

◆ AES_ENC_4_ROUNDS

#define AES_ENC_4_ROUNDS (   K)
Value:
do \
{ \
B0 = vaesmcq_u8(vaeseq_u8(B0, K)); \
B1 = vaesmcq_u8(vaeseq_u8(B1, K)); \
B2 = vaesmcq_u8(vaeseq_u8(B2, K)); \
B3 = vaesmcq_u8(vaeseq_u8(B3, K)); \
} while(0)

Definition at line 17 of file aes_armv8.cpp.