NetSim Source Code Help
Loading...
Searching...
No Matches
aes.c File Reference
#include "aes.h"
Include dependency graph for aes.c:

Go to the source code of this file.

Macros

#define ROTR8(x)
 
#define XTIME(x)   ( ( x << 1 ) ^ ( ( x & 0x80 ) ? 0x1B : 0x00 ) )
 
#define MUL(x, y)   ( ( x && y ) ? pow[(log[x] + log[y]) % 255] : 0 )
 
#define GET_UINT32(n, b, i)
 
#define PUT_UINT32(n, b, i)
 
#define AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3)
 
#define AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3)
 

Functions

void aes_gen_tables (void)
 
int aes_set_key (aes_context *ctx, uint8 *key, int nbits)
 
void aes_encrypt (aes_context *ctx, uint8 input[16], uint8 output[16])
 
void aes_decrypt (aes_context *ctx, uint8 input[16], uint8 output[16])
 

Variables

uint32 FSb [256]
 
uint32 FT0 [256]
 
uint32 FT1 [256]
 
uint32 FT2 [256]
 
uint32 FT3 [256]
 
uint32 RSb [256]
 
uint32 RT0 [256]
 
uint32 RT1 [256]
 
uint32 RT2 [256]
 
uint32 RT3 [256]
 
uint32 RCON [10]
 
int do_init = 1
 
int KT_init = 1
 
uint32 KT0 [256]
 
uint32 KT1 [256]
 
uint32 KT2 [256]
 
uint32 KT3 [256]
 

Macro Definition Documentation

◆ AES_FROUND

#define AES_FROUND (   X0,
  X1,
  X2,
  X3,
  Y0,
  Y1,
  Y2,
  Y3 
)
Value:
{ \
RK += 4; \
\
X0 = RK[0] ^ FT0[ (uint8) ( Y0 >> 24 ) ] ^ \
FT1[ (uint8) ( Y1 >> 16 ) ] ^ \
FT2[ (uint8) ( Y2 >> 8 ) ] ^ \
FT3[ (uint8) ( Y3 ) ]; \
\
X1 = RK[1] ^ FT0[ (uint8) ( Y1 >> 24 ) ] ^ \
FT1[ (uint8) ( Y2 >> 16 ) ] ^ \
FT2[ (uint8) ( Y3 >> 8 ) ] ^ \
FT3[ (uint8) ( Y0 ) ]; \
\
X2 = RK[2] ^ FT0[ (uint8) ( Y2 >> 24 ) ] ^ \
FT1[ (uint8) ( Y3 >> 16 ) ] ^ \
FT2[ (uint8) ( Y0 >> 8 ) ] ^ \
FT3[ (uint8) ( Y1 ) ]; \
\
X3 = RK[3] ^ FT0[ (uint8) ( Y3 >> 24 ) ] ^ \
FT1[ (uint8) ( Y0 >> 16 ) ] ^ \
FT2[ (uint8) ( Y1 >> 8 ) ] ^ \
FT3[ (uint8) ( Y2 ) ]; \
}
uint32 FT3[256]
Definition: aes.c:40
uint32 FT0[256]
Definition: aes.c:37
uint32 FT1[256]
Definition: aes.c:38
uint32 FT2[256]
Definition: aes.c:39
#define uint8
Definition: aes.h:5

◆ AES_RROUND

#define AES_RROUND (   X0,
  X1,
  X2,
  X3,
  Y0,
  Y1,
  Y2,
  Y3 
)
Value:
{ \
RK += 4; \
\
X0 = RK[0] ^ RT0[ (uint8) ( Y0 >> 24 ) ] ^ \
RT1[ (uint8) ( Y3 >> 16 ) ] ^ \
RT2[ (uint8) ( Y2 >> 8 ) ] ^ \
RT3[ (uint8) ( Y1 ) ]; \
\
X1 = RK[1] ^ RT0[ (uint8) ( Y1 >> 24 ) ] ^ \
RT1[ (uint8) ( Y0 >> 16 ) ] ^ \
RT2[ (uint8) ( Y3 >> 8 ) ] ^ \
RT3[ (uint8) ( Y2 ) ]; \
\
X2 = RK[2] ^ RT0[ (uint8) ( Y2 >> 24 ) ] ^ \
RT1[ (uint8) ( Y1 >> 16 ) ] ^ \
RT2[ (uint8) ( Y0 >> 8 ) ] ^ \
RT3[ (uint8) ( Y3 ) ]; \
\
X3 = RK[3] ^ RT0[ (uint8) ( Y3 >> 24 ) ] ^ \
RT1[ (uint8) ( Y2 >> 16 ) ] ^ \
RT2[ (uint8) ( Y1 >> 8 ) ] ^ \
RT3[ (uint8) ( Y0 ) ]; \
}
uint32 RT3[256]
Definition: aes.c:48
uint32 RT1[256]
Definition: aes.c:46
uint32 RT2[256]
Definition: aes.c:47
uint32 RT0[256]
Definition: aes.c:45

◆ GET_UINT32

#define GET_UINT32 (   n,
  b,
 
)
Value:
{ \
(n) = ( (uint32) (b)[(i) ] << 24 ) \
| ( (uint32) (b)[(i) + 1] << 16 ) \
| ( (uint32) (b)[(i) + 2] << 8 ) \
| ( (uint32) (b)[(i) + 3] ); \
}
#define uint32
Definition: aes.h:9

Definition at line 410 of file aes.c.

◆ MUL

#define MUL (   x,
 
)    ( ( x && y ) ? pow[(log[x] + log[y]) % 255] : 0 )

Definition at line 64 of file aes.c.

◆ PUT_UINT32

#define PUT_UINT32 (   n,
  b,
 
)
Value:
{ \
(b)[(i) ] = (uint8) ( (n) >> 24 ); \
(b)[(i) + 1] = (uint8) ( (n) >> 16 ); \
(b)[(i) + 2] = (uint8) ( (n) >> 8 ); \
(b)[(i) + 3] = (uint8) ( (n) ); \
}

Definition at line 418 of file aes.c.

◆ ROTR8

#define ROTR8 (   x)
Value:
( ( ( x << 24 ) & 0xFFFFFFFF ) | \
( ( x & 0xFFFFFFFF ) >> 8 ) )

Definition at line 60 of file aes.c.

◆ XTIME

#define XTIME (   x)    ( ( x << 1 ) ^ ( ( x & 0x80 ) ? 0x1B : 0x00 ) )

Definition at line 63 of file aes.c.

Function Documentation

◆ aes_decrypt()

void aes_decrypt ( aes_context ctx,
uint8  input[16],
uint8  output[16] 
)

Definition at line 678 of file aes.c.

◆ aes_encrypt()

void aes_encrypt ( aes_context ctx,
uint8  input[16],
uint8  output[16] 
)

Definition at line 588 of file aes.c.

Here is the caller graph for this function:

◆ aes_gen_tables()

void aes_gen_tables ( void  )

Definition at line 66 of file aes.c.

Here is the caller graph for this function:

◆ aes_set_key()

int aes_set_key ( aes_context ctx,
uint8 key,
int  nbits 
)

Definition at line 437 of file aes.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ do_init

int do_init = 1

Definition at line 56 of file aes.c.

◆ FSb

uint32 FSb[256]

Definition at line 36 of file aes.c.

◆ FT0

uint32 FT0[256]

Definition at line 37 of file aes.c.

◆ FT1

uint32 FT1[256]

Definition at line 38 of file aes.c.

◆ FT2

uint32 FT2[256]

Definition at line 39 of file aes.c.

◆ FT3

uint32 FT3[256]

Definition at line 40 of file aes.c.

◆ KT0

uint32 KT0[256]

Definition at line 430 of file aes.c.

◆ KT1

uint32 KT1[256]

Definition at line 431 of file aes.c.

◆ KT2

uint32 KT2[256]

Definition at line 432 of file aes.c.

◆ KT3

uint32 KT3[256]

Definition at line 433 of file aes.c.

◆ KT_init

int KT_init = 1

Definition at line 428 of file aes.c.

◆ RCON

uint32 RCON[10]

Definition at line 52 of file aes.c.

◆ RSb

uint32 RSb[256]

Definition at line 44 of file aes.c.

◆ RT0

uint32 RT0[256]

Definition at line 45 of file aes.c.

◆ RT1

uint32 RT1[256]

Definition at line 46 of file aes.c.

◆ RT2

uint32 RT2[256]

Definition at line 47 of file aes.c.

◆ RT3

uint32 RT3[256]

Definition at line 48 of file aes.c.