]> AND Private Git Repository - Cipher_code.git/blob - Arduino/sketch_AES/sketch_AES.ino
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
add cmac version
[Cipher_code.git] / Arduino / sketch_AES / sketch_AES.ino
1 #include <AES.h>
2 //#include "./printf.h"
3
4 AES aes ;
5
6 byte *key = (unsigned char*)"0123456789010123";
7 const int size_mesg=256;
8
9
10
11
12
13
14 //real iv = iv x2 ex: 01234567 = 0123456701234567
15 unsigned long long int my_iv = 36753562;
16
17
18   
19
20
21
22
23
24
25
26
27 void setup ()
28 {
29   Serial.begin (57600) ;
30 //  printf_begin();
31   delay(500);
32 //  printf("\n===testng mode\n") ;
33   
34   randomSeed(134);
35
36
37   
38
39   
40 //  otfly_test () ;
41 //  otfly_test256 () ;
42 }
43
44 void loop () 
45 {
46   prekey_test () ;
47   delay(2000);
48 }
49
50 void prekey (int bits)
51 {
52   aes.iv_inc();
53   byte iv [N_BLOCK] ;
54
55
56   byte plain[size_mesg];
57   byte cipher [size_mesg] ;
58   byte check [size_mesg] ;
59
60   randomSeed(334);
61   for(int i=0;i<size_mesg;i++) {
62     plain[i]=random(255);
63   }
64   
65  
66
67  
68   
69   unsigned long ms = micros ();
70   aes.set_IV(my_iv);
71   aes.get_IV(iv);
72
73   aes.do_aes_encrypt(plain,size_mesg,cipher,key,bits,iv);
74   Serial.print("Encryption took: ");
75   Serial.println(micros() - ms);
76   ms = micros ();
77   aes.set_IV(my_iv);
78   aes.get_IV(iv);
79   aes.do_aes_decrypt(cipher,size_mesg,check,key,bits,iv);
80   Serial.print("Decryption took: ");
81   Serial.println(micros() - ms);
82 /*  printf("\n\nPLAIN :");
83   aes.printArray(plain,(bool)true);
84   printf("\nCIPHER:");
85   aes.printArray(cipher,(bool)false);
86   printf("\nCHECK :");
87   aes.printArray(check,(bool)true);
88   printf("\nIV    :");
89   aes.printArray(iv,16);
90   printf("\n============================================================\n");
91
92   */
93   bool equal=true;
94     for(int i=0;i<size_mesg-1;i++) {
95       
96       if(check[i]!=plain[i]) {
97         printf("%d %d %d\n",plain[i],check[i],i);
98         equal=false;
99       }
100     }
101   printf("CHECK %d\n",equal);
102   
103 }
104
105 void prekey_test ()
106 {
107   prekey (128) ;
108 }
109