![]() |
Bitcoin ABC 0.31.2
P2P Digital Currency
|
#include "ctaes.h"
Go to the source code of this file.
Macros | |
#define | BIT_RANGE(from, to) (((1 << ((to) - (from))) - 1) << (from)) |
#define | BIT_RANGE_LEFT(x, from, to, shift) (((x)&BIT_RANGE((from), (to))) << (shift)) |
#define | BIT_RANGE_RIGHT(x, from, to, shift) (((x)&BIT_RANGE((from), (to))) >> (shift)) |
#define | ROT(x, b) (((x) >> ((b)*4)) | ((x) << ((4 - (b)) * 4))) |
Functions | |
static void | LoadByte (AES_state *s, uint8_t byte, int r, int c) |
Convert a byte to sliced form, storing it corresponding to given row and column in s. More... | |
static void | LoadBytes (AES_state *s, const uint8_t *data16) |
Load 16 bytes of data into 8 sliced integers. More... | |
static void | SaveBytes (uint8_t *data16, const AES_state *s) |
Convert 8 sliced integers into 16 bytes of data. More... | |
static void | SubBytes (AES_state *s, int inv) |
static void | ShiftRows (AES_state *s) |
static void | InvShiftRows (AES_state *s) |
static void | MixColumns (AES_state *s, int inv) |
static void | AddRoundKey (AES_state *s, const AES_state *round) |
static void | GetOneColumn (AES_state *s, const AES_state *a, int c) |
column_0(s) = column_c(a) More... | |
static void | KeySetupColumnMix (AES_state *s, AES_state *r, const AES_state *a, int c1, int c2) |
column_c1(r) |= (column_0(s) ^= column_c2(a)) More... | |
static void | KeySetupTransform (AES_state *s, const AES_state *r) |
Rotate the rows in s one position upwards, and xor in r. More... | |
static void | MultX (AES_state *s) |
static void | AES_setup (AES_state *rounds, const uint8_t *key, int nkeywords, int nrounds) |
Expand the cipher key into the key schedule. More... | |
static void | AES_encrypt (const AES_state *rounds, int nrounds, uint8_t *cipher16, const uint8_t *plain16) |
static void | AES_decrypt (const AES_state *rounds, int nrounds, uint8_t *plain16, const uint8_t *cipher16) |
void | AES128_init (AES128_ctx *ctx, const uint8_t *key16) |
void | AES128_encrypt (const AES128_ctx *ctx, size_t blocks, uint8_t *cipher16, const uint8_t *plain16) |
void | AES128_decrypt (const AES128_ctx *ctx, size_t blocks, uint8_t *plain16, const uint8_t *cipher16) |
void | AES192_init (AES192_ctx *ctx, const uint8_t *key24) |
void | AES192_encrypt (const AES192_ctx *ctx, size_t blocks, uint8_t *cipher16, const uint8_t *plain16) |
void | AES192_decrypt (const AES192_ctx *ctx, size_t blocks, uint8_t *plain16, const uint8_t *cipher16) |
void | AES256_init (AES256_ctx *ctx, const uint8_t *key32) |
void | AES256_encrypt (const AES256_ctx *ctx, size_t blocks, uint8_t *cipher16, const uint8_t *plain16) |
void | AES256_decrypt (const AES256_ctx *ctx, size_t blocks, uint8_t *plain16, const uint8_t *cipher16) |
#define BIT_RANGE | ( | from, | |
to | |||
) | (((1 << ((to) - (from))) - 1) << (from)) |
#define BIT_RANGE_LEFT | ( | x, | |
from, | |||
to, | |||
shift | |||
) | (((x)&BIT_RANGE((from), (to))) << (shift)) |
#define BIT_RANGE_RIGHT | ( | x, | |
from, | |||
to, | |||
shift | |||
) | (((x)&BIT_RANGE((from), (to))) >> (shift)) |
#define ROT | ( | x, | |
b | |||
) | (((x) >> ((b)*4)) | ((x) << ((4 - (b)) * 4))) |
void AES128_decrypt | ( | const AES128_ctx * | ctx, |
size_t | blocks, | ||
uint8_t * | plain16, | ||
const uint8_t * | cipher16 | ||
) |
void AES128_encrypt | ( | const AES128_ctx * | ctx, |
size_t | blocks, | ||
uint8_t * | cipher16, | ||
const uint8_t * | plain16 | ||
) |
void AES128_init | ( | AES128_ctx * | ctx, |
const uint8_t * | key16 | ||
) |
void AES192_decrypt | ( | const AES192_ctx * | ctx, |
size_t | blocks, | ||
uint8_t * | plain16, | ||
const uint8_t * | cipher16 | ||
) |
void AES192_encrypt | ( | const AES192_ctx * | ctx, |
size_t | blocks, | ||
uint8_t * | cipher16, | ||
const uint8_t * | plain16 | ||
) |
void AES192_init | ( | AES192_ctx * | ctx, |
const uint8_t * | key24 | ||
) |
void AES256_decrypt | ( | const AES256_ctx * | ctx, |
size_t | blocks, | ||
uint8_t * | plain16, | ||
const uint8_t * | cipher16 | ||
) |
void AES256_encrypt | ( | const AES256_ctx * | ctx, |
size_t | blocks, | ||
uint8_t * | cipher16, | ||
const uint8_t * | plain16 | ||
) |
void AES256_init | ( | AES256_ctx * | ctx, |
const uint8_t * | key32 | ||
) |
|
static |
|
static |
|
static |
Expand the cipher key into the key schedule.
state must be a pointer to an array of size nrounds + 1. key must be a pointer to 4 * nkeywords bytes.
AES128 uses nkeywords = 4, nrounds = 10 AES192 uses nkeywords = 6, nrounds = 12 AES256 uses nkeywords = 8, nrounds = 14
Definition at line 423 of file ctaes.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |