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

Functions

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void dec (uint8x16_t &B, uint8x16_t K)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void dec4 (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void dec4_last (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K, uint8x16_t K2)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void dec_last (uint8x16_t &B, uint8x16_t K, uint8x16_t K2)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void enc (uint8x16_t &B, uint8x16_t K)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void enc4 (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void enc4_last (uint8x16_t &B0, uint8x16_t &B1, uint8x16_t &B2, uint8x16_t &B3, uint8x16_t K, uint8x16_t K2)
 
BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void enc_last (uint8x16_t &B, uint8x16_t K, uint8x16_t K2)
 

Function Documentation

◆ dec()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void Botan::AES_AARCH64::dec ( uint8x16_t & B,
uint8x16_t K )

Definition at line 45 of file aes_armv8.cpp.

45 {
46 B = vaesimcq_u8(vaesdq_u8(B, K));
47}

References BOTAN_FORCE_INLINE.

◆ dec4()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES 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.

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

References BOTAN_FORCE_INLINE.

◆ dec4_last()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES 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.

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

References BOTAN_FORCE_INLINE.

◆ dec_last()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void Botan::AES_AARCH64::dec_last ( uint8x16_t & B,
uint8x16_t K,
uint8x16_t K2 )

Definition at line 57 of file aes_armv8.cpp.

57 {
58 B = veorq_u8(vaesdq_u8(B, K), K2);
59}

References BOTAN_FORCE_INLINE.

◆ enc()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void Botan::AES_AARCH64::enc ( uint8x16_t & B,
uint8x16_t K )

Definition at line 21 of file aes_armv8.cpp.

21 {
22 B = vaesmcq_u8(vaeseq_u8(B, K));
23}

References BOTAN_FORCE_INLINE.

◆ enc4()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES 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.

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

References BOTAN_FORCE_INLINE.

◆ enc4_last()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES 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.

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

References BOTAN_FORCE_INLINE.

◆ enc_last()

BOTAN_FORCE_INLINE BOTAN_FN_ISA_AES void Botan::AES_AARCH64::enc_last ( uint8x16_t & B,
uint8x16_t K,
uint8x16_t K2 )

Definition at line 33 of file aes_armv8.cpp.

33 {
34 B = veorq_u8(vaeseq_u8(B, K), K2);
35}

References BOTAN_FORCE_INLINE.