libosmogsm 1.13.1.1-afb4 Osmocom GSM library

Macros | Functions | Variables
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]))
u32
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); }
u8
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
| ) |  |
| inline static

## 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