libosmogsm 1.9.0.196-9975
Osmocom GSM library
aes_i.h File Reference

AES (Rijndael) cipher. More...

#include "aes.h"

Go to the source code of this file.

Macros

#define AES_SMALL_TABLES
 
#define RCON(i)   ((u32)rcons[(i)] << 24)
 
#define TE0(i)   Te0[((i) >> 24) & 0xff]
 
#define TE1(i)   rotr(Te0[((i) >> 16) & 0xff], 8)
 
#define TE2(i)   rotr(Te0[((i) >> 8) & 0xff], 16)
 
#define TE3(i)   rotr(Te0[(i) & 0xff], 24)
 
#define TE41(i)   ((Te0[((i) >> 24) & 0xff] << 8) & 0xff000000)
 
#define TE42(i)   (Te0[((i) >> 16) & 0xff] & 0x00ff0000)
 
#define TE43(i)   (Te0[((i) >> 8) & 0xff] & 0x0000ff00)
 
#define TE44(i)   ((Te0[(i) & 0xff] >> 8) & 0x000000ff)
 
#define TE421(i)   ((Te0[((i) >> 16) & 0xff] << 8) & 0xff000000)
 
#define TE432(i)   (Te0[((i) >> 8) & 0xff] & 0x00ff0000)
 
#define TE443(i)   (Te0[(i) & 0xff] & 0x0000ff00)
 
#define TE414(i)   ((Te0[((i) >> 24) & 0xff] >> 8) & 0x000000ff)
 
#define TE4(i)   ((Te0[(i)] >> 8) & 0x000000ff)
 
#define TD0(i)   Td0[((i) >> 24) & 0xff]
 
#define TD1(i)   rotr(Td0[((i) >> 16) & 0xff], 8)
 
#define TD2(i)   rotr(Td0[((i) >> 8) & 0xff], 16)
 
#define TD3(i)   rotr(Td0[(i) & 0xff], 24)
 
#define TD41(i)   (Td4s[((i) >> 24) & 0xff] << 24)
 
#define TD42(i)   (Td4s[((i) >> 16) & 0xff] << 16)
 
#define TD43(i)   (Td4s[((i) >> 8) & 0xff] << 8)
 
#define TD44(i)   (Td4s[(i) & 0xff])
 
#define TD0_(i)   Td0[(i) & 0xff]
 
#define TD1_(i)   rotr(Td0[(i) & 0xff], 8)
 
#define TD2_(i)   rotr(Td0[(i) & 0xff], 16)
 
#define TD3_(i)   rotr(Td0[(i) & 0xff], 24)
 
#define GETU32(pt)
 
#define PUTU32(ct, st)
 
#define AES_PRIV_SIZE   (4 * 44)
 

Functions

static u32 rotr (u32 val, int bits)
 
void rijndaelKeySetupEnc (u32 rk[], const u8 cipherKey[])
 Expand the cipher key into the encryption key schedule. More...
 

Variables

const u32 Te0 [256]
 
const u32 Te1 [256]
 
const u32 Te2 [256]
 
const u32 Te3 [256]
 
const u32 Te4 [256]
 
const u32 Td0 [256]
 
const u32 Td1 [256]
 
const u32 Td2 [256]
 
const u32 Td3 [256]
 
const u32 Td4 [256]
 
const u32 rcon [10]
 
const u8 Td4s [256]
 
const u8 rcons [10]
 

Detailed Description

AES (Rijndael) cipher.

Macro Definition Documentation

◆ AES_PRIV_SIZE

#define AES_PRIV_SIZE   (4 * 44)

◆ AES_SMALL_TABLES

#define AES_SMALL_TABLES

◆ GETU32

#define GETU32 (   pt)
Value:
(((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \
((u32)(pt)[2] << 8) ^ ((u32)(pt)[3]))
uint32_t u32
Definition: common.h:25

◆ PUTU32

#define PUTU32 (   ct,
  st 
)
Value:
{ \
(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \
(ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); }
uint8_t u8
Definition: common.h:27

◆ RCON

#define RCON (   i)    ((u32)rcons[(i)] << 24)

◆ TD0

#define TD0 (   i)    Td0[((i) >> 24) & 0xff]

◆ TD0_

#define TD0_ (   i)    Td0[(i) & 0xff]

◆ TD1

#define TD1 (   i)    rotr(Td0[((i) >> 16) & 0xff], 8)

◆ TD1_

#define TD1_ (   i)    rotr(Td0[(i) & 0xff], 8)

◆ TD2

#define TD2 (   i)    rotr(Td0[((i) >> 8) & 0xff], 16)

◆ TD2_

#define TD2_ (   i)    rotr(Td0[(i) & 0xff], 16)

◆ TD3

#define TD3 (   i)    rotr(Td0[(i) & 0xff], 24)

◆ TD3_

#define TD3_ (   i)    rotr(Td0[(i) & 0xff], 24)

◆ TD41

#define TD41 (   i)    (Td4s[((i) >> 24) & 0xff] << 24)

◆ TD42

#define TD42 (   i)    (Td4s[((i) >> 16) & 0xff] << 16)

◆ TD43

#define TD43 (   i)    (Td4s[((i) >> 8) & 0xff] << 8)

◆ TD44

#define TD44 (   i)    (Td4s[(i) & 0xff])

◆ TE0

#define TE0 (   i)    Te0[((i) >> 24) & 0xff]

◆ TE1

#define TE1 (   i)    rotr(Te0[((i) >> 16) & 0xff], 8)

◆ TE2

#define TE2 (   i)    rotr(Te0[((i) >> 8) & 0xff], 16)

◆ TE3

#define TE3 (   i)    rotr(Te0[(i) & 0xff], 24)

◆ TE4

#define TE4 (   i)    ((Te0[(i)] >> 8) & 0x000000ff)

◆ TE41

#define TE41 (   i)    ((Te0[((i) >> 24) & 0xff] << 8) & 0xff000000)

◆ TE414

#define TE414 (   i)    ((Te0[((i) >> 24) & 0xff] >> 8) & 0x000000ff)

◆ TE42

#define TE42 (   i)    (Te0[((i) >> 16) & 0xff] & 0x00ff0000)

◆ TE421

#define TE421 (   i)    ((Te0[((i) >> 16) & 0xff] << 8) & 0xff000000)

◆ TE43

#define TE43 (   i)    (Te0[((i) >> 8) & 0xff] & 0x0000ff00)

◆ TE432

#define TE432 (   i)    (Te0[((i) >> 8) & 0xff] & 0x00ff0000)

◆ TE44

#define TE44 (   i)    ((Te0[(i) & 0xff] >> 8) & 0x000000ff)

◆ TE443

#define TE443 (   i)    (Te0[(i) & 0xff] & 0x0000ff00)

Function Documentation

◆ rijndaelKeySetupEnc()

void rijndaelKeySetupEnc ( u32  rk[],
const u8  cipherKey[] 
)

Expand the cipher key into the encryption key schedule.

Returns
the number of rounds for the given cipher key size.

References GETU32, RCON, TE414, TE421, TE432, and TE443.

Referenced by aes_encrypt_init().

◆ rotr()

static u32 rotr ( u32  val,
int  bits 
)
inlinestatic

Variable Documentation

◆ rcon

const u32 rcon[10]
extern

◆ rcons

const u8 rcons[10]
extern

◆ Td0

const u32 Td0[256]
extern

◆ Td1

const u32 Td1[256]
extern

◆ Td2

const u32 Td2[256]
extern

◆ Td3

const u32 Td3[256]
extern

◆ Td4

const u32 Td4[256]
extern

◆ Td4s

const u8 Td4s[256]
extern

◆ Te0

const u32 Te0[256]
extern

◆ Te1

const u32 Te1[256]
extern

◆ Te2

const u32 Te2[256]
extern

◆ Te3

const u32 Te3[256]
extern

◆ Te4

const u32 Te4[256]
extern