aes.c File Reference

Go to the source code of this file.

Classes

struct  AVAES

Functions

static void addkey (uint64_t dst[2], uint64_t src[2], uint64_t round_key[2])
static void subshift (uint8_t s0[2][16], int s, uint8_t *box)
static int mix_core (uint32_t multbl[4][256], int a, int b, int c, int d)
static void mix (uint8_t state[2][4][4], uint32_t multbl[4][256], int s1, int s3)
static void crypt (AVAES *a, int s, uint8_t *sbox, uint32_t *multbl)
void av_aes_crypt (AVAES *a, uint8_t *dst, uint8_t *src, int count, uint8_t *iv, int decrypt)
 encrypts / decrypts.
static void init_multbl2 (uint8_t tbl[1024], int c[4], uint8_t *log8, uint8_t *alog8, uint8_t *sbox)
int av_aes_init (AVAES *a, const uint8_t *key, int key_bits, int decrypt)
 initializes an AVAES context
int main ()

Variables

const int av_aes_size = sizeof(AVAES)
static const uint8_t rcon [10]
static uint8_t sbox [256]
static uint8_t inv_sbox [256]
static uint32_t enc_multbl [1][256]
static uint32_t dec_multbl [1][256]


Function Documentation

static void addkey ( uint64_t  dst[2],
uint64_t  src[2],
uint64_t  round_key[2] 
) [inline, static]

Definition at line 50 of file aes.c.

Referenced by av_aes_crypt(), and crypt().

static void subshift ( uint8_t  s0[2][16],
int  s,
uint8_t *  box 
) [static]

Definition at line 55 of file aes.c.

Referenced by av_aes_init(), and crypt().

static int mix_core ( uint32_t  multbl[4][256],
int  a,
int  b,
int  c,
int  d 
) [inline, static]

Definition at line 64 of file aes.c.

Referenced by mix().

static void mix ( uint8_t  state[2][4][4],
uint32_t  multbl[4][256],
int  s1,
int  s3 
) [inline, static]

Definition at line 73 of file aes.c.

static void crypt ( AVAES a,
int  s,
uint8_t *  sbox,
uint32_t multbl 
) [inline, static]

Definition at line 80 of file aes.c.

Referenced by av_aes_crypt(), and TV::UpdateOSDSignal().

void av_aes_crypt ( struct AVAES a,
uint8_t *  dst,
uint8_t *  src,
int  count,
uint8_t *  iv,
int  decrypt 
)

encrypts / decrypts.

Parameters:
count number of 16 byte blocks
dst destination array, can be equal to src
src source array, can be equal to dst
iv initialization vector for CBC mode, if NULL then ECB will be used
decrypt 0 for encryption, 1 for decryption

Definition at line 90 of file aes.c.

Referenced by main(), and mxf_decrypt_triplet().

static void init_multbl2 ( uint8_t  tbl[1024],
int  c[4],
uint8_t *  log8,
uint8_t *  alog8,
uint8_t *  sbox 
) [static]

Definition at line 111 of file aes.c.

Referenced by av_aes_init().

int av_aes_init ( struct AVAES a,
const uint8_t *  key,
int  key_bits,
int  decrypt 
)

initializes an AVAES context

Parameters:
key_bits 128, 192 or 256
decrypt 0 for encryption, 1 for decryption

Definition at line 125 of file aes.c.

Referenced by main(), and mxf_decrypt_triplet().

int main ( void   ) 

Definition at line 197 of file aes.c.


Variable Documentation

const int av_aes_size = sizeof(AVAES)

Definition at line 34 of file aes.c.

Referenced by mxf_decrypt_triplet().

const uint8_t rcon[10] [static]

Initial value:

 {
  0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36
}

Definition at line 36 of file aes.c.

Referenced by av_aes_init().

uint8_t sbox[256] [static]

Definition at line 40 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().

uint8_t inv_sbox[256] [static]

Definition at line 41 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().

static uint32_t enc_multbl [static]

Definition at line 43 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().

static uint32_t dec_multbl [static]

Definition at line 44 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().


Generated on Sat Dec 18 05:15:50 2010 for MythTV by  doxygen 1.5.5