Botan  2.19.1
Crypto and TLS for C++11
Namespaces | Macros | Functions | Variables
sm4_armv8.cpp File Reference
#include <botan/sm4.h>
#include <arm_neon.h>

Go to the source code of this file.

Namespaces

 Botan
 

Macros

#define SM4_E(B0, B1, B2, B3, K)
 

Functions

 Botan::for (size_t r=0;r!=64;r+=8)
 
 Botan::while (blocks >=4)
 

Variables

const uint32_t * Botan::input32 = reinterpret_cast<const uint32_t*>(reinterpret_cast<const void*>(input8))
 
void BOTAN_FUNC_ISA("arch=armv8.2-a+sm4") SM4 const uint32x4_t Botan::K1 = vld1q_u32(&m_RK[ 4])
 
const uint32x4_t Botan::K2 = vld1q_u32(&m_RK[ 8])
 
const uint32x4_t Botan::K3 = vld1q_u32(&m_RK[12])
 
const uint32x4_t Botan::K4 = vld1q_u32(&m_RK[16])
 
const uint32x4_t Botan::K5 = vld1q_u32(&m_RK[20])
 
const uint32x4_t Botan::K6 = vld1q_u32(&m_RK[24])
 
const uint32x4_t Botan::K7 = vld1q_u32(&m_RK[28])
 
uint32_t * Botan::output32 = reinterpret_cast<uint32_t*>(reinterpret_cast<void*>(output8))
 

Macro Definition Documentation

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

Definition at line 41 of file sm4_armv8.cpp.

Referenced by Botan::while().