summaryrefslogtreecommitdiffhomepage
path: root/libtomcrypt/demos/multi.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2007-02-03 08:20:34 +0000
committerMatt Johnston <matt@ucc.asn.au>2007-02-03 08:20:34 +0000
commitd9aeb2773e236e662c8b493f4bcee978f9908d7c (patch)
treebac48e388bf3ac739ae14cdf98da0eb4bb9d17bf /libtomcrypt/demos/multi.c
parent056b92bd4c8a42ce1843493310d382159166edb8 (diff)
parentc5fd7dd5548f28e32d846e39d17e5c4de4e769af (diff)
merge of '5fdf69ca60d1683cdd9f4c2595134bed26394834'
and '6b61c50f4cf888bea302ac8fcf5dbb573b443251' --HG-- extra : convert_revision : b1dd3b94e60a07a176dba2b035ac79968595990a
Diffstat (limited to 'libtomcrypt/demos/multi.c')
-rw-r--r--libtomcrypt/demos/multi.c110
1 files changed, 110 insertions, 0 deletions
diff --git a/libtomcrypt/demos/multi.c b/libtomcrypt/demos/multi.c
new file mode 100644
index 0000000..2520de9
--- /dev/null
+++ b/libtomcrypt/demos/multi.c
@@ -0,0 +1,110 @@
+/* test the multi helpers... */
+#include <tomcrypt.h>
+
+int main(void)
+{
+ unsigned char key[16], buf[2][MAXBLOCKSIZE];
+ unsigned long len, len2;
+
+
+/* register algos */
+ register_hash(&sha256_desc);
+ register_cipher(&aes_desc);
+
+/* HASH testing */
+ len = sizeof(buf[0]);
+ hash_memory(find_hash("sha256"), (unsigned char*)"hello", 5, buf[0], &len);
+ len2 = sizeof(buf[0]);
+ hash_memory_multi(find_hash("sha256"), buf[1], &len2, (unsigned char*)"hello", 5, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ hash_memory_multi(find_hash("sha256"), buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL, 0);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ hash_memory_multi(find_hash("sha256"), buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+
+/* HMAC */
+ len = sizeof(buf[0]);
+ hmac_memory(find_hash("sha256"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
+ len2 = sizeof(buf[0]);
+ hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, (unsigned char*)"hello", 5UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+
+/* OMAC */
+ len = sizeof(buf[0]);
+ omac_memory(find_cipher("aes"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
+ len2 = sizeof(buf[0]);
+ omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"hello", 5UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+
+/* PMAC */
+ len = sizeof(buf[0]);
+ pmac_memory(find_cipher("aes"), key, 16, (unsigned char*)"hello", 5, buf[0], &len);
+ len2 = sizeof(buf[0]);
+ pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"hello", 5, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"he", 2UL, "llo", 3UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+ len2 = sizeof(buf[0]);
+ pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, (unsigned char*)"h", 1UL, "e", 1UL, "l", 1UL, "l", 1UL, "o", 1UL, NULL);
+ if (len != len2 || memcmp(buf[0], buf[1], len)) {
+ printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
+ return EXIT_FAILURE;
+ }
+
+
+ printf("All passed\n");
+ return EXIT_SUCCESS;
+}
+
+
+/* $Source: /cvs/libtom/libtomcrypt/demos/multi.c,v $ */
+/* $Revision: 1.3 $ */
+/* $Date: 2006/06/07 22:25:09 $ */