#include <Crypto.h>
#include <AES.h>
// Déclaration cryptage
AES128 aes128;
uint8_t key[16] = { 0x28, 0x3C, 0x1D, 0x3B, 0x46, 0x1F, 0x52, 0x5A, 0x5F, 0x18, 0x0E, 0x5C, 0x15, 0x2F, 0x52, 0x40 };
void dump( const uint8_t * buffer, const size_t n) {
for (size_t i = 0; i < n; i++) {
if (buffer[i] < 0x10) Serial.write('0');
Serial.print(buffer[i], HEX);
Serial.write(' ');
}
Serial.println();
}
void setup() {
uint8_t test[] = "CF+1234567891234561111";
constexpr size_t taille = (((sizeof test) / 16) + (((sizeof test) % 16) ? 1 : 0)) * 16;
uint8_t toCrypt[taille] = {0};
uint8_t cmd_crypted[taille] = {0};
uint8_t decrypted[taille] = {0};
memcpy(toCrypt, test, sizeof test); // comprend le null de fin de chaîne
Serial.begin(115200);
aes128.setKey(key, 16);
for (size_t i = 0; i < taille; i += 16) aes128.encryptBlock(cmd_crypted + i, toCrypt + i);
Serial.print("->crypted: "); dump(cmd_crypted, taille);
for (size_t i = 0; i < taille; i += 16) aes128.decryptBlock(decrypted + i, cmd_crypted + i);
Serial.print("decrypted: "); dump(decrypted, taille);
Serial.print("decrypted: "); Serial.println((const char *)decrypted);
}
void loop() {}