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