rijndael_armv8_impl.hpp File Reference
#include <nil/crypto3/block/detail/rijndael_impl.hpp>
#include <cstddef>
#include <arm_neon.h>
+ Include dependency graph for rijndael_armv8_impl.hpp:

Go to the source code of this file.

Classes

class  nil::crypto3::block::detail::basic_armv8_rijndael_impl< KeyBitsImpl, BlockBitsImpl, PolicyType >
 
class  nil::crypto3::block::detail::basic_armv8_rijndael_impl< KeyBitsImpl, 128, PolicyType >
 
class  nil::crypto3::block::detail::rijndael_armv8_impl< KeyBitsImpl, BlockBitsImpl, PolicyType >
 
class  nil::crypto3::block::rijndael_armv8_impl< 128, 128, PolicyType >
 
class  nil::crypto3::block::rijndael_armv8_impl< 192, 128, PolicyType >
 
class  nil::crypto3::block::rijndael_armv8_impl< 256, 128, PolicyType >
 

Namespaces

 nil
 
 nil::crypto3
 
 nil::crypto3::block
 
 nil::crypto3::block::detail
 

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)

◆ 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)

◆ 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)

◆ 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)