1bdcc259dSMatthias Ringwald
2bdcc259dSMatthias Ringwald #include "rijndael.h"
3b6d14795SMatthias Ringwald #include "btstack_debug.h"
4bdcc259dSMatthias Ringwald #include <stdio.h>
5bdcc259dSMatthias Ringwald #include <string.h>
6bdcc259dSMatthias Ringwald
aes128_calc_cyphertext(uint8_t key[16],uint8_t plaintext[16],uint8_t cyphertext[16])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
hexdump2(void * data,int size)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
main(void)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);
31b6d14795SMatthias Ringwald
32b6d14795SMatthias Ringwald // test invalid key len
33b6d14795SMatthias Ringwald uint32_t rk[RKLENGTH(KEYBITS)];
34*6d21cd94SMatthias Ringwald int result = rijndaelSetupEncrypt(rk, &key[0], 0);
35*6d21cd94SMatthias Ringwald btstack_assert(result == 0);
36bdcc259dSMatthias Ringwald }
37