--- libaitio/example/aes.c 2011/10/07 09:14:40 1.1 +++ libaitio/example/aes.c 2011/10/31 13:53:50 1.2 @@ -0,0 +1,47 @@ +#include +#include +#include + + +int +main(int argc, char **argv) +{ + char *str2 = NULL, *str = NULL; + int i, n; + char ivec[16]; + + if (argc < 4) + return 1; + + printf("String=%s\nKey=%s IV=%s\n\n", argv[1], argv[2], argv[3]); + /* encode */ + 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 */ + 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]); + printf("\n"); + + printf("\n\n"); + if (!strcmp(argv[1], str2)) + printf("%s == %s ... Test passed\n", argv[1], str2); + else + printf("%s != %s ... Test FAILED\n", argv[1], str2); + + if (str) + free(str); + if (str2) + free(str2); + + return 0; +}