NetSim Source Code Help
Loading...
Searching...
No Matches
des.c File Reference

Go to the source code of this file.

Macros

#define uchar   unsigned char
 
#define uint   unsigned int
 
#define ENCRYPT   1
 
#define DECRYPT   0
 
#define BITNUM(a, b, c)   (((a[(b)/8] >> (7 - (b%8))) & 0x01) << (c))
 
#define BITNUMINTR(a, b, c)   ((((a) >> (31 - (b))) & 0x00000001) << (c))
 
#define BITNUMINTL(a, b, c)   ((((a) << (b)) & 0x80000000) >> (c))
 
#define SBOXBIT(a)   (((a) & 0x20) | (((a) & 0x1f) >> 1) | (((a) & 0x01) << 4))
 

Functions

void key_schedule (uchar key[], uchar schedule[][6], uint mode)
 
void IP (uint state[], uchar in[])
 
void InvIP (uint state[], uchar in[])
 
uint f (uint state, uchar key[])
 
void des_crypt (uchar in[], uchar out[], uchar key[][6])
 
void three_des_key_schedule (uchar key[], uchar schedule[][16][6], uint mode)
 
void three_des_crypt (uchar in[], uchar out[], uchar key[][16][6])
 

Variables

uchar sbox1 [64]
 
uchar sbox2 [64]
 
uchar sbox3 [64]
 
uchar sbox4 [64]
 
uchar sbox5 [64]
 
uchar sbox6 [64]
 
uchar sbox7 [64]
 
uchar sbox8 [64]
 

Macro Definition Documentation

◆ BITNUM

#define BITNUM (   a,
  b,
  c 
)    (((a[(b)/8] >> (7 - (b%8))) & 0x01) << (c))

Definition at line 18 of file des.c.

◆ BITNUMINTL

#define BITNUMINTL (   a,
  b,
  c 
)    ((((a) << (b)) & 0x80000000) >> (c))

Definition at line 20 of file des.c.

◆ BITNUMINTR

#define BITNUMINTR (   a,
  b,
  c 
)    ((((a) >> (31 - (b))) & 0x00000001) << (c))

Definition at line 19 of file des.c.

◆ DECRYPT

#define DECRYPT   0

Definition at line 15 of file des.c.

◆ ENCRYPT

#define ENCRYPT   1

Definition at line 14 of file des.c.

◆ SBOXBIT

#define SBOXBIT (   a)    (((a) & 0x20) | (((a) & 0x1f) >> 1) | (((a) & 0x01) << 4))

Definition at line 23 of file des.c.

◆ uchar

#define uchar   unsigned char

Definition at line 12 of file des.c.

◆ uint

#define uint   unsigned int

Definition at line 13 of file des.c.

Function Documentation

◆ des_crypt()

void des_crypt ( uchar  in[],
uchar  out[],
uchar  key[][6] 
)

Definition at line 230 of file des.c.

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

◆ f()

uint f ( uint  state,
uchar  key[] 
)

Definition at line 172 of file des.c.

Here is the caller graph for this function:

◆ InvIP()

void InvIP ( uint  state[],
uchar  in[] 
)

Definition at line 137 of file des.c.

Here is the caller graph for this function:

◆ IP()

void IP ( uint  state[],
uchar  in[] 
)

Definition at line 116 of file des.c.

Here is the caller graph for this function:

◆ key_schedule()

void key_schedule ( uchar  key[],
uchar  schedule[][6],
uint  mode 
)

Definition at line 75 of file des.c.

Here is the caller graph for this function:

◆ three_des_crypt()

void three_des_crypt ( uchar  in[],
uchar  out[],
uchar  key[][16][6] 
)

Definition at line 266 of file des.c.

Here is the call graph for this function:

◆ three_des_key_schedule()

void three_des_key_schedule ( uchar  key[],
uchar  schedule[][16][6],
uint  mode 
)

Definition at line 252 of file des.c.

Here is the call graph for this function:

Variable Documentation

◆ sbox1

uchar sbox1[64]
Initial value:
= {
14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7,
0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8,
4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0,
15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13
}

Definition at line 25 of file des.c.

◆ sbox2

uchar sbox2[64]
Initial value:
= {
15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10,
3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5,
0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15,
13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9
}

Definition at line 31 of file des.c.

◆ sbox3

uchar sbox3[64]
Initial value:
= {
10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8,
13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1,
13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7,
1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12
}

Definition at line 37 of file des.c.

◆ sbox4

uchar sbox4[64]
Initial value:
= {
7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15,
13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9,
10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4,
3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14
}

Definition at line 43 of file des.c.

◆ sbox5

uchar sbox5[64]
Initial value:
= {
2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9,
14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6,
4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14,
11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3
}

Definition at line 49 of file des.c.

◆ sbox6

uchar sbox6[64]
Initial value:
= {
12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11,
10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8,
9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6,
4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13
}

Definition at line 55 of file des.c.

◆ sbox7

uchar sbox7[64]
Initial value:
= {
4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1,
13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6,
1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2,
6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12
}

Definition at line 61 of file des.c.

◆ sbox8

uchar sbox8[64]
Initial value:
= {
13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7,
1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2,
7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8,
2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11
}

Definition at line 67 of file des.c.