]> AND Private Git Repository - Cipher_code.git/blob - SboxAES/IOT/main.c
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
34d24c2e4ab4e30f54365e1ad3477bc2c18998d2
[Cipher_code.git] / SboxAES / IOT / main.c
1
2
3 #include<stdio.h>
4 #include<stdlib.h>
5 #include <stdint.h>
6 #include <string.h>
7 #include"aes.h"
8 #define CTR 1
9
10
11
12
13 const int size_mesg=64;
14
15 typedef unsigned char byte;
16
17
18
19
20
21
22
23
24
25 int main(int argc, char** argv) {
26
27 #ifdef AES128
28     printf("\nTesting AES128\n\n");
29 #elif defined(AES192)
30     printf("\nTesting AES192\n\n");
31 #elif defined(AES256)
32     printf("\nTesting AES256\n\n");
33 #else
34     printf("You need to specify a symbol between AES128, AES192 or AES256. Exiting");
35     return 0;
36 #endif
37
38
39     
40   byte plain[size_mesg];
41   byte cipher [size_mesg] ;
42   byte check [size_mesg] ;
43
44
45   byte mykey[16];
46   byte iv[8];
47
48   srand(12);
49
50   for(int i=0;i<16;i++) {
51     mykey[i]=lrand48();
52
53     
54   }
55   for(int i=0;i<8;i++) {
56     iv[i]=lrand48();
57
58     
59   }
60
61
62   
63   for(int i=0;i<size_mesg;i++) {
64     plain[i]=i;
65   }
66   for(int i=0;i<size_mesg;i++) {
67     printf("%d ",plain[i]);
68   }
69   printf("\n\n");
70   
71   struct AES_ctx ctx;
72   rc4key(mykey, 8);
73
74     
75 //  AES_init_ctx_iv(&ctx, mykey, iv);
76   My_KeyExpansion(ctx.RoundKey, mykey);
77   memcpy (ctx.Iv, iv, AES_BLOCKLEN);
78   My_AES_CTR_xcrypt_buffer(&ctx, plain, size_mesg);
79
80
81
82   for(int i=0;i<size_mesg;i++) {
83     printf("%d ",plain[i]);
84   }
85
86   printf("\n\n");
87 //  AES_init_ctx_iv(&ctx, mykey, iv);
88   My_KeyExpansion(ctx.RoundKey, mykey);
89   memcpy (ctx.Iv, iv, AES_BLOCKLEN);
90
91   
92   My_AES_CTR_xcrypt_buffer(&ctx, plain, size_mesg);
93
94
95   for(int i=0;i<size_mesg;i++) {
96     printf("%d ",plain[i]);
97   }
98
99   printf("\n\n");
100
101
102
103
104 }