# include <inttypes.h> # include <stdio.h> # include <string.h> # define NK_MAX (8) # define NR_MAX (14) enum { AES128 = 0, AES192, AES256, }; uint8_t aes_type = AES128; const uint8_t Nb = 4; struct key_round { uint8_t Nk; uint8_t Nr; } const key_round_table[] = { { 4, 10 }, // AES128(0) { 6, 12 }, // AES192(1) { 8, 14 }, // AES256(2) }; /* Figure 7. S-box: substitution values for the byte xy (in