Botan
1.11.15
|
#include <botan/internal/block_utils.h>
#include <botan/aes_ni.h>
#include <botan/cpuid.h>
#include <wmmintrin.h>
Go to the source code of this file.
Namespaces | |
namespace | Botan |
Defines | |
#define | AES_128_key_exp(K, RCON) aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON)) |
#define | AES_192_key_exp(RCON, EK_OFF) |
#define | AES_DEC_4_LAST_ROUNDS(K) |
#define | AES_DEC_4_ROUNDS(K) |
#define | AES_ENC_4_LAST_ROUNDS(K) |
#define | AES_ENC_4_ROUNDS(K) |
Functions | |
Botan::BOTAN_REGISTER_BLOCK_CIPHER_NOARGS_IF (CPUID::has_aes_ni(), AES_128_NI,"AES-128","aes_ni", 16) | |
Botan::BOTAN_REGISTER_BLOCK_CIPHER_NOARGS_IF (CPUID::has_aes_ni(), AES_192_NI,"AES-192","aes_ni", 16) | |
Botan::BOTAN_REGISTER_BLOCK_CIPHER_NOARGS_IF (CPUID::has_aes_ni(), AES_256_NI,"AES-256","aes_ni", 16) |
#define AES_128_key_exp | ( | K, | |
RCON | |||
) | aes_128_key_expansion(K, _mm_aeskeygenassist_si128(K, RCON)) |
#define AES_192_key_exp | ( | RCON, | |
EK_OFF | |||
) |
aes_192_key_expansion(&K0, &K1, \ _mm_aeskeygenassist_si128(K1, RCON), \ &EK[EK_OFF], EK_OFF == 48)
#define AES_DEC_4_LAST_ROUNDS | ( | K | ) |
do \ { \ B0 = _mm_aesdeclast_si128(B0, K); \ B1 = _mm_aesdeclast_si128(B1, K); \ B2 = _mm_aesdeclast_si128(B2, K); \ B3 = _mm_aesdeclast_si128(B3, K); \ } while(0)
Definition at line 99 of file aes_ni.cpp.
Referenced by Botan::AES_128_NI::decrypt_n(), Botan::AES_192_NI::decrypt_n(), and Botan::AES_256_NI::decrypt_n().
#define AES_DEC_4_ROUNDS | ( | K | ) |
do \ { \ B0 = _mm_aesdec_si128(B0, K); \ B1 = _mm_aesdec_si128(B1, K); \ B2 = _mm_aesdec_si128(B2, K); \ B3 = _mm_aesdec_si128(B3, K); \ } while(0)
Definition at line 90 of file aes_ni.cpp.
Referenced by Botan::AES_128_NI::decrypt_n(), Botan::AES_192_NI::decrypt_n(), and Botan::AES_256_NI::decrypt_n().
#define AES_ENC_4_LAST_ROUNDS | ( | K | ) |
do \ { \ B0 = _mm_aesenclast_si128(B0, K); \ B1 = _mm_aesenclast_si128(B1, K); \ B2 = _mm_aesenclast_si128(B2, K); \ B3 = _mm_aesenclast_si128(B3, K); \ } while(0)
Definition at line 81 of file aes_ni.cpp.
Referenced by Botan::AES_128_NI::encrypt_n(), Botan::AES_192_NI::encrypt_n(), and Botan::AES_256_NI::encrypt_n().
#define AES_ENC_4_ROUNDS | ( | K | ) |
do \ { \ B0 = _mm_aesenc_si128(B0, K); \ B1 = _mm_aesenc_si128(B1, K); \ B2 = _mm_aesenc_si128(B2, K); \ B3 = _mm_aesenc_si128(B3, K); \ } while(0)
Definition at line 72 of file aes_ni.cpp.
Referenced by Botan::AES_128_NI::encrypt_n(), Botan::AES_192_NI::encrypt_n(), and Botan::AES_256_NI::encrypt_n().