| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // Local imports
- #include "crypto.h"
- #include "rng.h"
- #define MLEN 32
- // Energia constructors
- #include "Arduino.h"
- //#include "Energia.h"
- void setup();
- void loop();
- uint8_t aes_key[16] = {
- 0x03, 0x02, 0x01, 0x00,
- 0x07, 0x06, 0x05, 0x04,
- 0x0b, 0x0a, 0x09, 0x08,
- 0x0f, 0x0e, 0x0d, 0x0c
- };
- uint8_t AESData[MLEN], *AESResult, AESResult2[MLEN];
- uint32_t AESDataLength=MLEN;
- void setup() {
- // initialising
- Serial.begin(9600);
- Serial.print("Setup RNG ..");
- RNGSetup();
- Serial.println("OK");
- Serial.print("Setup AES ..");
- AESSetup(AES_KEY_128BIT, aes_key);
- Serial.println("OK");
- String msg = "This is secret!";
- msg.toCharArray((char *)AESData, MLEN);
- //
- // Serial.print("KEY: ");
- // for(int i=0;i<16;i++) {
- // Serial.print(aes_key[i], HEX);
- // Serial.print(' ');
- // }
- // Serial.println();
- //
- // Serial.print("IV: ");
- // for(int i=0;i<16;i++) {
- // Serial.print(aes_iv[i], HEX);
- // Serial.print(' ');
- // }
- // Serial.println();
- //
- // Serial.print("Message: ");
- // for(int i=0;i<MLEN;i++) {
- // Serial.print(AESData[i], HEX);
- // Serial.print(' ');
- // }
- // Serial.println();
- //
- AESResult = AESEncrypt(AESData, AESDataLength);
- // AESCrypt(AES_DIR_ENCRYPT, aes_iv, AESData, AESResult, AESDataLength);
- Serial.print("Encrypted: ");
- for(uint32_t i=0;i<AESDataLength+getBlockSize();i++) {
- Serial.print(AESResult[i], HEX);
- Serial.print(' ');
- }
- Serial.println();
- // AESCrypt(AES_DIR_DECRYPT, &aesv, AESResult, AESResult2, AESDataLength);
- // Serial.print("Decrypted: ");
- // for(int i=0;i<MLEN;i++) {
- // Serial.print(AESResult2[i], HEX);
- // Serial.print(' ');
- // }
- // Serial.println();
- }
- void loop() {
- while (Serial.available() > 0) {
- Serial.println(random(), HEX);
- }
- }
|