Botan 3.5.0
Crypto and TLS for C&
Botan::AES_AARCH64 Namespace Reference

Functions

 BOTAN_FUNC_ISA_INLINE ("+crypto+aes") void enc(uint8x16_t &B
 
void dec4 (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K)
 
void dec4_last (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K, uint8x16_t K2)
 
void enc4 (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K)
 
void enc4_last (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K, uint8x16_t K2)
 

Variables

uint8x16_t K
 
uint8x16_t uint8x16_t K2
 

Function Documentation

◆ BOTAN_FUNC_ISA_INLINE()

Botan::AES_AARCH64::BOTAN_FUNC_ISA_INLINE ( "+crypto+aes" ) &

References K.

◆ dec4()

void Botan::AES_AARCH64::dec4 ( uint8x16_t & B0,
uint8x16_t & B1,
uint8x16_t & B2,
uint8x16_t & B3,
uint8x16_t K )

Definition at line 49 of file aes_armv8.cpp.

49 {
50 B0 = vaesimcq_u8(vaesdq_u8(B0, K));
51 B1 = vaesimcq_u8(vaesdq_u8(B1, K));
52 B2 = vaesimcq_u8(vaesdq_u8(B2, K));
53 B3 = vaesimcq_u8(vaesdq_u8(B3, K));
54}

References K.

◆ dec4_last()

void Botan::AES_AARCH64::dec4_last ( uint8x16_t & B0,
uint8x16_t & B1,
uint8x16_t & B2,
uint8x16_t & B3,
uint8x16_t K,
uint8x16_t K2 )

Definition at line 61 of file aes_armv8.cpp.

61 {
62 B0 = veorq_u8(vaesdq_u8(B0, K), K2);
63 B1 = veorq_u8(vaesdq_u8(B1, K), K2);
64 B2 = veorq_u8(vaesdq_u8(B2, K), K2);
65 B3 = veorq_u8(vaesdq_u8(B3, K), K2);
66}

References K, and K2.

◆ enc4()

void Botan::AES_AARCH64::enc4 ( uint8x16_t & B0,
uint8x16_t & B1,
uint8x16_t & B2,
uint8x16_t & B3,
uint8x16_t K )

Definition at line 25 of file aes_armv8.cpp.

25 {
26 B0 = vaesmcq_u8(vaeseq_u8(B0, K));
27 B1 = vaesmcq_u8(vaeseq_u8(B1, K));
28 B2 = vaesmcq_u8(vaeseq_u8(B2, K));
29 B3 = vaesmcq_u8(vaeseq_u8(B3, K));
30}

References K.

◆ enc4_last()

void Botan::AES_AARCH64::enc4_last ( uint8x16_t & B0,
uint8x16_t & B1,
uint8x16_t & B2,
uint8x16_t & B3,
uint8x16_t K,
uint8x16_t K2 )

Definition at line 37 of file aes_armv8.cpp.

37 {
38 B0 = veorq_u8(vaeseq_u8(B0, K), K2);
39 B1 = veorq_u8(vaeseq_u8(B1, K), K2);
40 B2 = veorq_u8(vaeseq_u8(B2, K), K2);
41 B3 = veorq_u8(vaeseq_u8(B3, K), K2);
42}

References K, and K2.

Variable Documentation

◆ K

uint8x16_t Botan::AES_AARCH64::K
Initial value:
{
B = vaesmcq_u8(vaeseq_u8(B, K))

Definition at line 20 of file aes_armv8.cpp.

Referenced by BOTAN_FUNC_ISA_INLINE(), dec4(), dec4_last(), enc4(), and enc4_last().

◆ K2

uint8x16_t uint8x16_t Botan::AES_AARCH64::K2
Initial value:
{
B = veorq_u8(vaeseq_u8(B, K), K2)

Definition at line 32 of file aes_armv8.cpp.

Referenced by dec4_last(), and enc4_last().