--- libaitio/example/aes.c 2011/10/07 09:14:40 1.1.2.1 +++ libaitio/example/aes.c 2011/10/07 10:41:11 1.1.2.2 @@ -8,20 +8,25 @@ main(int argc, char **argv) { char *str2 = NULL, *str = NULL; int i, n; + char ivec[16]; - if (argc < 3) + if (argc < 4) return 1; - printf("String=%s\nKey=%s\n\n", argv[1], argv[2]); + printf("String=%s\nKey=%s IV=%s\n\n", argv[1], argv[2], argv[3]); /* encode */ - printf("io_ctr_AES() -> %d\n", (n = io_ctr_AES(argv[1], strlen(argv[1]), (u_char**) &str, argv[2]))); + memset(ivec, 0, sizeof ivec); + strlcpy(ivec, argv[3], sizeof ivec); + printf("io_ctr_AES() -> %d\n", (n = io_ctr_AES(argv[1], strlen(argv[1]), (u_char**) &str, argv[2], ivec))); printf("Cipher: "); for (i = 0; i < n; i++) printf("%02hhx", str[i]); printf("\n"); /* decode */ - printf("io_ctr_AES() -> %d\n", (n = io_ctr_AES(str, n, (u_char**) &str2, argv[2]))); + memset(ivec, 0, sizeof ivec); + strlcpy(ivec, argv[3], sizeof ivec); + printf("io_ctr_AES() -> %d\n", (n = io_ctr_AES(str, n, (u_char**) &str2, argv[2], ivec))); printf("Plain: "); for (i = 0; i < n; i++) printf("%c", str2[i]);