#include #include #include static void print_hex(unsigned char *str, int len) { int i; for (i = 0; i < len; ++i) printf("%02x", str[i]); printf("\n"); } unsigned char key[] = { 0xfb,0xf5,0x4c,0x84,0x9e,0x5a,0xbd,0xe8,0x5a,0xf2,0xed,0x17,0xd9,0xe4,0x30,0x32 }; unsigned char in[] = { 0x46,0xbf,0xac,0x7f,0xb8,0x7c,0xd4,0x3b,0xd0,0xab,0x54,0xeb,0xc2,0x1c,0x12,0x0d,0xf5,0xfa,0xb7,0xe6,0xf1,0x13,0x75,0xe7,0x9e,0xe0,0x44,0xe6,0x63,0x64,0x1d,0x5e }; unsigned char iv[] = { 0xf5,0xfa,0xb7,0xe6,0xf1,0x13,0x75,0xe7,0x9e,0xe0,0x44,0xe6,0x63,0x64,0x1d,0x5e }; int main() { unsigned char out[32]; AES_KEY akey; memset(&akey, 0, sizeof(AES_KEY)); if(AES_set_decrypt_key(key, 128, &akey) < 0) { fprintf(stderr, "AES_set_derypt_key failed!\n"); return 0; } AES_cbc_encrypt(in, out, 32, &akey, iv, AES_DECRYPT); printf("key : "); print_hex(key, 16); printf("input : "); print_hex(in, 32); printf("iv : "); print_hex(iv, 16); printf("output : "); print_hex(out, 32); return 0; }