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