1bdcc259dSMatthias Ringwald 2bdcc259dSMatthias Ringwald #include "rijndael.h" 3*b6d14795SMatthias Ringwald #include "btstack_debug.h" 4bdcc259dSMatthias Ringwald #include <stdio.h> 5bdcc259dSMatthias Ringwald #include <string.h> 6bdcc259dSMatthias Ringwald 7bdcc259dSMatthias Ringwald void aes128_calc_cyphertext(uint8_t key[16], uint8_t plaintext[16], uint8_t cyphertext[16]){ 8bdcc259dSMatthias Ringwald uint32_t rk[RKLENGTH(KEYBITS)]; 9bdcc259dSMatthias Ringwald int nrounds = rijndaelSetupEncrypt(rk, &key[0], KEYBITS); 10bdcc259dSMatthias Ringwald rijndaelEncrypt(rk, nrounds, plaintext, cyphertext); 11bdcc259dSMatthias Ringwald } 12bdcc259dSMatthias Ringwald 13bdcc259dSMatthias Ringwald 14bdcc259dSMatthias Ringwald static void hexdump2(void *data, int size){ 15bdcc259dSMatthias Ringwald if (size <= 0) return; 16bdcc259dSMatthias Ringwald int i; 17bdcc259dSMatthias Ringwald for (i=0; i<size;i++){ 18bdcc259dSMatthias Ringwald printf("%02X ", ((uint8_t *)data)[i]); 19bdcc259dSMatthias Ringwald } 20bdcc259dSMatthias Ringwald printf("\n"); 21bdcc259dSMatthias Ringwald } 22bdcc259dSMatthias Ringwald 23bdcc259dSMatthias Ringwald int main(void){ 24bdcc259dSMatthias Ringwald uint8_t key[16]; 25bdcc259dSMatthias Ringwald uint8_t plaintext[16]; 26bdcc259dSMatthias Ringwald memset(key, 0, 16); 27bdcc259dSMatthias Ringwald memset(plaintext, 0, 16); 28bdcc259dSMatthias Ringwald uint8_t cyphertext[16]; 29bdcc259dSMatthias Ringwald aes128_calc_cyphertext(key, plaintext, cyphertext); 30bdcc259dSMatthias Ringwald hexdump2(cyphertext, 16); 31*b6d14795SMatthias Ringwald 32*b6d14795SMatthias Ringwald // test invalid key len 33*b6d14795SMatthias Ringwald uint32_t rk[RKLENGTH(KEYBITS)]; 34*b6d14795SMatthias Ringwald btstack_assert(rijndaelSetupEncrypt(rk, &key[0], 0) == 0); 35bdcc259dSMatthias Ringwald } 36