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

Private GIT Repository
new
[Cipher_code.git] / Arduino / sketch_AES_other2 / sketch_AES_other2.ino
1 #include <Crypto.h>
2
3
4
5
6 int size_mesg=256;
7
8 byte *key = (unsigned char*)"0123456789010123";
9 byte *iv =  (unsigned char*)"0123456789010123";
10
11
12 void printArray(byte *mes, int n) {
13   for (byte i = 0; i < n; i++) {
14     Serial.print(mes[i]);
15     Serial.print(" ");
16   }
17   Serial.println();
18 }
19
20
21
22 void setup() {
23   // put your setup code here to run once:
24   Serial.begin (57600) ;
25 //  printf_begin();
26    delay(500);
27 }
28
29 void loop() {
30   // put your main code here, to run repeatedly:
31
32  AES   aes(key, iv, AES::AES_MODE_128, AES::CIPHER_ENCRYPT);
33
34   uint8_t plain[size_mesg];
35   uint8_t cipher [size_mesg] ;
36   uint8_t check [size_mesg] ;
37
38  
39   randomSeed(334);
40   for(int i=0;i<size_mesg;i++) {
41     plain[i]=random(255);
42   }
43
44
45 unsigned long ms1 = micros ();
46    aes.encryptCBC(plain, cipher, size_mesg);
47     Serial.print("Encryption took: ");
48     Serial.println(micros() - ms1);
49 AES aes2(key, iv, AES::AES_MODE_128, AES::CIPHER_DECRYPT);
50     
51   //  aes.convertKey();
52 ms1 = micros ();
53   aes2.decryptCBC(cipher, check, size_mesg);
54 Serial.print("Decryption took: ");
55     Serial.println(micros() - ms1);
56
57
58
59 /*printArray(plain,size_mesg);  
60 printArray(cipher,size_mesg);
61 printArray(check,size_mesg);
62 */
63  bool equal=true;
64     for(int i=0;i<size_mesg-1;i++) {
65       
66       if(check[i]!=plain[i]) {
67       //  printf("%d %d %d\n",plain[i],check[i],i);
68         equal=false;
69       }
70     }
71   printf("CHECK %d\n",equal);
72
73 delay(2000);
74
75 }