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