libavutil/aes.c File Reference

#include "common.h"
#include "aes.h"
#include "intreadwrite.h"

Go to the source code of this file.

Data Structures

union  av_aes_block
struct  AVAES

Defines

#define ROT(x, s)   ((x << s) | (x >> (32-s)))

Functions

static void addkey (av_aes_block *dst, const av_aes_block *src, const av_aes_block *round_key)
static void addkey_s (av_aes_block *dst, const uint8_t *src, const av_aes_block *round_key)
static void addkey_d (uint8_t *dst, const av_aes_block *src, const av_aes_block *round_key)
static void subshift (av_aes_block s0[2], int s, const uint8_t *box)
static int mix_core (uint32_t multbl[][256], int a, int b, int c, int d)
static void mix (av_aes_block state[2], uint32_t multbl[][256], int s1, int s3)
static void crypt (AVAES *a, int s, const uint8_t *sbox, uint32_t multbl[][256])
void av_aes_crypt (AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt)
 Encrypt or decrypt a buffer using a previously initialized context.
static void init_multbl2 (uint32_t tbl[][256], const int c[4], const uint8_t *log8, const uint8_t *alog8, const uint8_t *sbox)
int av_aes_init (AVAES *a, const uint8_t *key, int key_bits, int decrypt)
 Initialize an AVAES context.

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 [4][256]
static uint32_t dec_multbl [4][256]


Define Documentation

#define ROT ( x,
 )     ((x << s) | (x >> (32-s)))

Definition at line 61 of file aes.c.

Referenced by init_multbl2(), and mix_core().


Function Documentation

static void addkey ( av_aes_block dst,
const av_aes_block src,
const av_aes_block round_key 
) [inline, static]

Definition at line 64 of file aes.c.

Referenced by crypt().

static void addkey_d ( uint8_t *  dst,
const av_aes_block src,
const av_aes_block round_key 
) [inline, static]

Definition at line 78 of file aes.c.

Referenced by av_aes_crypt().

static void addkey_s ( av_aes_block dst,
const uint8_t *  src,
const av_aes_block round_key 
) [inline, static]

Definition at line 71 of file aes.c.

Referenced by av_aes_crypt().

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

Definition at line 124 of file aes.c.

Referenced by av_aes_crypt().

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

Definition at line 162 of file aes.c.

Referenced by av_aes_init().

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

Definition at line 116 of file aes.c.

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

Definition at line 108 of file aes.c.

Referenced by mix().

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

Definition at line 85 of file aes.c.

Referenced by av_aes_init(), and crypt().


Variable Documentation

uint32_t dec_multbl[4][256] [static]

Definition at line 55 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().

uint32_t enc_multbl[4][256] [static]

Definition at line 54 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().

uint8_t inv_sbox[256] [static]

Definition at line 49 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().

const uint8_t rcon[10] [static]

Initial value:

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

Definition at line 44 of file aes.c.

Referenced by av_aes_init().

uint8_t sbox[256] [static]

Definition at line 48 of file aes.c.

Referenced by av_aes_crypt(), and av_aes_init().


Generated on Fri Oct 26 02:46:14 2012 for FFmpeg by  doxygen 1.5.8