« Back to documentation index
aesni.h File Reference
AES-NI for hardware AES acceleration on some Intel processors.
More...
Go to the source code of this file.
Detailed Description
AES-NI for hardware AES acceleration on some Intel processors.
Definition in file aesni.h .
Function Documentation
int mbedtls_aesni_crypt_ecb
(
mbedtls_aes_context *
ctx ,
int
mode ,
const unsigned char
input [16],
unsigned char
output [16]
)
AES-NI AES-ECB block en(de)cryption.
Parameters:
ctx AES context
mode MBEDTLS_AES_ENCRYPT or MBEDTLS_AES_DECRYPT
input 16-byte input block
output 16-byte output block
Returns: 0 on success (cannot fail)
Definition at line 95 of file aesni.c .
void mbedtls_aesni_gcm_mult
(
unsigned char
c [16],
const unsigned char
a [16],
const unsigned char
b [16]
)
GCM multiplication: c = a * b in GF(2^128)
Parameters:
c Result
a First operand
b Second operand
Note: Both operands and result are bit strings interpreted as elements of GF(2^128) as per the GCM spec.
Definition at line 141 of file aesni.c .
int mbedtls_aesni_has_support
(
unsigned int
what )
AES-NI features detection routine.
Parameters:
what The feature to detect (MBEDTLS_AESNI_AES or MBEDTLS_AESNI_CLMUL)
Returns: 1 if CPU has support for the feature, 0 otherwise
Definition at line 48 of file aesni.c .
void mbedtls_aesni_inverse_key
(
unsigned char *
invkey ,
const unsigned char *
fwdkey ,
int
nr
)
Compute decryption round keys from encryption round keys.
Parameters:
invkey Round keys for the equivalent inverse cipher
fwdkey Original round keys (for encryption)
nr Number of rounds (that is, number of round keys minus one)
Definition at line 252 of file aesni.c .
int mbedtls_aesni_setkey_enc
(
unsigned char *
rk ,
const unsigned char *
key ,
size_t
bits
)
Perform key expansion (for encryption)
Parameters:
rk Destination buffer where the round keys are written
key Encryption key
bits Key size in bits (must be 128, 192 or 256)
Returns: 0 if successful, or MBEDTLS_ERR_AES_INVALID_KEY_LENGTH
Definition at line 447 of file aesni.c .