NetSim Source Code Help
Loading...
Searching...
No Matches
des_run.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4
5#define ENCRYPT 1
6#define DECRYPT 0
7#define uchar unsigned char
8#define uint unsigned int
9
10void key_schedule(uchar key[], uchar schedule[][6], uint mode);
11void des_crypt(uchar in[], uchar out[], uchar key[][6]);
12
13void printtext(unsigned char hash[])
14{
15 int i;
16 for (i=0; i < 8; i++)
17 printf("%02x ",hash[i]);
18 printf("\n");
19}
20
21int des(char* buf,int* len)
22{
23 unsigned char text[8];
24 unsigned char key1[8]={0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF},
25 key2[8]={0x13,0x34,0x57,0x79,0x9B,0xBC,0xDF,0xF1},
26 three_key1[24]={0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
27 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
28 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF},
29 three_key2[24]={0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
30 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,
31 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF},
32 out[8],schedule[16][6];
33
34 int n;
35 int l=*len;
36 for(n=0;n<*len;n+=8,buf+=8,l-=8)
37 {
38 memcpy(text,buf,min(8,l));
39 key_schedule(key1,schedule,ENCRYPT);
40 des_crypt(text,out,schedule);
41 memcpy(buf,out,min(8,l));
42 }
43 /*printtext(out);
44
45 key_schedule(key1,schedule,DECRYPT);
46 des_crypt(out,text1,schedule);
47 printtext(text1);
48
49 key_schedule(key2,schedule,ENCRYPT);
50 des_crypt(text2,out,schedule);
51 printtext(out);
52
53 key_schedule(key2,schedule,DECRYPT);
54 des_crypt(out,text2,schedule);
55 printtext(text2);
56
57 three_des_key_schedule(three_key1,three_schedule,ENCRYPT);
58 three_des_crypt(text1,out,three_schedule);
59 printtext(out);
60
61 three_des_key_schedule(three_key2,three_schedule,ENCRYPT);
62 three_des_crypt(text1,out,three_schedule);
63 printtext(out);
64
65 getchar();*/
66 return 0;
67}
#define min(a, b)
Definition: Linux.h:106
#define ENCRYPT
Definition: des_run.c:5
void printtext(unsigned char hash[])
Definition: des_run.c:13
void key_schedule(uchar key[], uchar schedule[][6], uint mode)
Definition: des.c:75
void des_crypt(uchar in[], uchar out[], uchar key[][6])
Definition: des.c:230
#define uchar
Definition: des_run.c:7
int des(char *buf, int *len)
Definition: des_run.c:21
#define uint
Definition: des_run.c:8