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