#include "config.h"
#include <string.h>
#include "aes.h"
#include "platform.h"
#include "platform_util.h"
Macros | |
#define | AES_VALIDATE_RET(cond) MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_AES_BAD_INPUT_DATA ) |
#define | AES_VALIDATE(cond) MBEDTLS_INTERNAL_VALIDATE( cond ) |
#define | GET_UINT32_LE(n, b, i) |
#define | PUT_UINT32_LE(n, b, i) |
#define | FT |
#define | V(a, b, c, d) 0x##a##b##c##d |
#define | V(a, b, c, d) 0x##b##c##d##a |
#define | V(a, b, c, d) 0x##c##d##a##b |
#define | V(a, b, c, d) 0x##d##a##b##c |
#define | RT |
#define | V(a, b, c, d) 0x##a##b##c##d |
#define | V(a, b, c, d) 0x##b##c##d##a |
#define | V(a, b, c, d) 0x##c##d##a##b |
#define | V(a, b, c, d) 0x##d##a##b##c |
#define | AES_RT0(idx) RT0[idx] |
#define | AES_RT1(idx) RT1[idx] |
#define | AES_RT2(idx) RT2[idx] |
#define | AES_RT3(idx) RT3[idx] |
#define | AES_FT0(idx) FT0[idx] |
#define | AES_FT1(idx) FT1[idx] |
#define | AES_FT2(idx) FT2[idx] |
#define | AES_FT3(idx) FT3[idx] |
#define | AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3) |
#define | AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3) |
Functions | |
void | mbedtls_aes_init (mbedtls_aes_context *ctx) |
This function initializes the specified AES context. More... | |
void | mbedtls_aes_free (mbedtls_aes_context *ctx) |
This function releases and clears the specified AES context. More... | |
int | mbedtls_aes_setkey_enc (mbedtls_aes_context *ctx, const unsigned char *key, unsigned int keybits) |
This function sets the encryption key. More... | |
int | mbedtls_aes_setkey_dec (mbedtls_aes_context *ctx, const unsigned char *key, unsigned int keybits) |
This function sets the decryption key. More... | |
int | mbedtls_internal_aes_encrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16]) |
Internal AES block encryption function. This is only exposed to allow overriding it using MBEDTLS_AES_ENCRYPT_ALT . More... | |
void | mbedtls_aes_encrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16]) |
Deprecated internal AES block encryption function without return value. More... | |
int | mbedtls_internal_aes_decrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16]) |
Internal AES block decryption function. This is only exposed to allow overriding it using see MBEDTLS_AES_DECRYPT_ALT . More... | |
void | mbedtls_aes_decrypt (mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16]) |
Deprecated internal AES block decryption function without return value. More... | |
int | mbedtls_aes_crypt_ecb (mbedtls_aes_context *ctx, int mode, const unsigned char input[16], unsigned char output[16]) |
This function performs an AES single-block encryption or decryption operation. More... | |
#define AES_FROUND | ( | X0, | |
X1, | |||
X2, | |||
X3, | |||
Y0, | |||
Y1, | |||
Y2, | |||
Y3 | |||
) |
#define AES_FT0 | ( | idx | ) | FT0[idx] |
#define AES_FT1 | ( | idx | ) | FT1[idx] |
#define AES_FT2 | ( | idx | ) | FT2[idx] |
#define AES_FT3 | ( | idx | ) | FT3[idx] |
#define AES_RROUND | ( | X0, | |
X1, | |||
X2, | |||
X3, | |||
Y0, | |||
Y1, | |||
Y2, | |||
Y3 | |||
) |
#define AES_RT0 | ( | idx | ) | RT0[idx] |
#define AES_RT1 | ( | idx | ) | RT1[idx] |
#define AES_RT2 | ( | idx | ) | RT2[idx] |
#define AES_RT3 | ( | idx | ) | RT3[idx] |
#define AES_VALIDATE | ( | cond | ) | MBEDTLS_INTERNAL_VALIDATE( cond ) |
#define AES_VALIDATE_RET | ( | cond | ) | MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_AES_BAD_INPUT_DATA ) |
#define FT |
#define GET_UINT32_LE | ( | n, | |
b, | |||
i | |||
) |
#define PUT_UINT32_LE | ( | n, | |
b, | |||
i | |||
) |
#define RT |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##a##b##c##d |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##b##c##d##a |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##c##d##a##b |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##d##a##b##c |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##a##b##c##d |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##b##c##d##a |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##c##d##a##b |
#define V | ( | a, | |
b, | |||
c, | |||
d | |||
) | 0x##d##a##b##c |
int mbedtls_aes_crypt_ecb | ( | mbedtls_aes_context * | ctx, |
int | mode, | ||
const unsigned char | input[16], | ||
unsigned char | output[16] | ||
) |
This function performs an AES single-block encryption or decryption operation.
It performs the operation defined in the mode
parameter (encrypt or decrypt), on the input data buffer defined in the input
parameter.
mbedtls_aes_init(), and either mbedtls_aes_setkey_enc() or mbedtls_aes_setkey_dec() must be called before the first call to this API with the same context.
ctx | The AES context to use for encryption or decryption. It must be initialized and bound to a key. |
mode | The AES operation: MBEDTLS_AES_ENCRYPT or MBEDTLS_AES_DECRYPT. |
input | The buffer holding the input data. It must be readable and at least 16 Bytes long. |
output | The buffer where the output data will be written. It must be writeable and at least 16 Bytes long. |
0
on success. void mbedtls_aes_decrypt | ( | mbedtls_aes_context * | ctx, |
const unsigned char | input[16], | ||
unsigned char | output[16] | ||
) |
Deprecated internal AES block decryption function without return value.
ctx | The AES context to use for decryption. |
input | Ciphertext block. |
output | Output (plaintext) block. |
void mbedtls_aes_encrypt | ( | mbedtls_aes_context * | ctx, |
const unsigned char | input[16], | ||
unsigned char | output[16] | ||
) |
Deprecated internal AES block encryption function without return value.
ctx | The AES context to use for encryption. |
input | Plaintext block. |
output | Output (ciphertext) block. |
void mbedtls_aes_free | ( | mbedtls_aes_context * | ctx | ) |
This function releases and clears the specified AES context.
ctx | The AES context to clear. If this is NULL , this function does nothing. Otherwise, the context must have been at least initialized. |
void mbedtls_aes_init | ( | mbedtls_aes_context * | ctx | ) |
This function initializes the specified AES context.
It must be the first API called before using the context.
ctx | The AES context to initialize. This must not be NULL . |
int mbedtls_aes_setkey_dec | ( | mbedtls_aes_context * | ctx, |
const unsigned char * | key, | ||
unsigned int | keybits | ||
) |
This function sets the decryption key.
ctx | The AES context to which the key should be bound. It must be initialized. |
key | The decryption key. This must be a readable buffer of size keybits bits. |
keybits | The size of data passed. Valid options are:
|
0
on success. int mbedtls_aes_setkey_enc | ( | mbedtls_aes_context * | ctx, |
const unsigned char * | key, | ||
unsigned int | keybits | ||
) |
This function sets the encryption key.
ctx | The AES context to which the key should be bound. It must be initialized. |
key | The encryption key. This must be a readable buffer of size keybits bits. |
keybits | The size of data passed in bits. Valid options are:
|
0
on success. int mbedtls_internal_aes_decrypt | ( | mbedtls_aes_context * | ctx, |
const unsigned char | input[16], | ||
unsigned char | output[16] | ||
) |
Internal AES block decryption function. This is only exposed to allow overriding it using see MBEDTLS_AES_DECRYPT_ALT
.
ctx | The AES context to use for decryption. |
input | The ciphertext block. |
output | The output (plaintext) block. |
0
on success. int mbedtls_internal_aes_encrypt | ( | mbedtls_aes_context * | ctx, |
const unsigned char | input[16], | ||
unsigned char | output[16] | ||
) |
Internal AES block encryption function. This is only exposed to allow overriding it using MBEDTLS_AES_ENCRYPT_ALT
.
ctx | The AES context to use for encryption. |
input | The plaintext block. |
output | The output (ciphertext) block. |
0
on success.