]> AND Private Git Repository - Cipher_code.git/blob - Arduino/libraries/Arduino-crypto-master/examples/sha256hmac/sha256hmac.ino
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
update
[Cipher_code.git] / Arduino / libraries / Arduino-crypto-master / examples / sha256hmac / sha256hmac.ino
1 #include <Crypto.h>
2
3 /*
4  * Compute the SHA256HMAC of a message on an ESP8266
5  */
6
7 /* The length of the key we will use for this HMAC */
8 /* The key can be of any length, 16 and 32 are common */
9 #define KEY_LENGTH 16
10
11 void setup()
12 {
13   // Setup Serial
14   Serial.begin(9600);
15   Serial.println("SHA256HMAC example");
16   
17   /* Define our */
18   byte key[KEY_LENGTH] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
19   
20   /* Create the HMAC instance with our key */
21   SHA256HMAC hmac(key, KEY_LENGTH);
22   
23   /* Update the HMAC with just a plain string (null terminated) */
24   hmac.doUpdate("Hello World");
25   
26   /* And or with a string and length */
27   const char *goodbye = "GoodBye World";
28   hmac.doUpdate(goodbye, strlen(goodbye));
29   
30   /* And or with a binary message */
31   byte message[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
32   hmac.doUpdate(message, sizeof(message));
33   
34   /* Finish the HMAC calculation and return the authentication code */
35   byte authCode[SHA256HMAC_SIZE];
36   hmac.doFinal(authCode);
37   
38   /* authCode now contains our 32 byte authentication code */
39   for (byte i=0; i < SHA256HMAC_SIZE; i++)
40   {
41       if (authCode[i]<0x10) { Serial.print('0'); }
42       Serial.print(authCode[i], HEX);
43   }
44 }
45
46
47 void loop()
48 {
49   
50 }