comparison libtomcrypt/demos/multi.c @ 285:1b9e69c058d2

propagate from branch 'au.asn.ucc.matt.ltc.dropbear' (head 20dccfc09627970a312d77fb41dc2970b62689c3) to branch 'au.asn.ucc.matt.dropbear' (head fdf4a7a3b97ae5046139915de7e40399cceb2c01)
author Matt Johnston <matt@ucc.asn.au>
date Wed, 08 Mar 2006 13:23:58 +0000
parents
children 0cbe8f6dbf9e
comparison
equal deleted inserted replaced
281:997e6f7dc01e 285:1b9e69c058d2
1 /* test the multi helpers... */
2 #include <tomcrypt.h>
3
4 int main(void)
5 {
6 unsigned char key[16], buf[2][MAXBLOCKSIZE];
7 unsigned long len, len2;
8
9
10 /* register algos */
11 register_hash(&sha256_desc);
12 register_cipher(&aes_desc);
13
14 /* HASH testing */
15 len = sizeof(buf[0]);
16 hash_memory(find_hash("sha256"), "hello", 5, buf[0], &len);
17 len2 = sizeof(buf[0]);
18 hash_memory_multi(find_hash("sha256"), buf[1], &len2, "hello", 5, NULL);
19 if (len != len2 || memcmp(buf[0], buf[1], len)) {
20 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
21 return EXIT_FAILURE;
22 }
23 len2 = sizeof(buf[0]);
24 hash_memory_multi(find_hash("sha256"), buf[1], &len2, "he", 2, "llo", 3, NULL);
25 if (len != len2 || memcmp(buf[0], buf[1], len)) {
26 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
27 return EXIT_FAILURE;
28 }
29 len2 = sizeof(buf[0]);
30 hash_memory_multi(find_hash("sha256"), buf[1], &len2, "h", 1, "e", 1, "l", 1, "l", 1, "o", 1, NULL);
31 if (len != len2 || memcmp(buf[0], buf[1], len)) {
32 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
33 return EXIT_FAILURE;
34 }
35
36 /* HMAC */
37 len = sizeof(buf[0]);
38 hmac_memory(find_hash("sha256"), key, 16, "hello", 5, buf[0], &len);
39 len2 = sizeof(buf[0]);
40 hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, "hello", 5, NULL);
41 if (len != len2 || memcmp(buf[0], buf[1], len)) {
42 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
43 return EXIT_FAILURE;
44 }
45 len2 = sizeof(buf[0]);
46 hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, "he", 2, "llo", 3, NULL);
47 if (len != len2 || memcmp(buf[0], buf[1], len)) {
48 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
49 return EXIT_FAILURE;
50 }
51 len2 = sizeof(buf[0]);
52 hmac_memory_multi(find_hash("sha256"), key, 16, buf[1], &len2, "h", 1, "e", 1, "l", 1, "l", 1, "o", 1, NULL);
53 if (len != len2 || memcmp(buf[0], buf[1], len)) {
54 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
55 return EXIT_FAILURE;
56 }
57
58 /* OMAC */
59 len = sizeof(buf[0]);
60 omac_memory(find_cipher("aes"), key, 16, "hello", 5, buf[0], &len);
61 len2 = sizeof(buf[0]);
62 omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, "hello", 5, NULL);
63 if (len != len2 || memcmp(buf[0], buf[1], len)) {
64 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
65 return EXIT_FAILURE;
66 }
67 len2 = sizeof(buf[0]);
68 omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, "he", 2, "llo", 3, NULL);
69 if (len != len2 || memcmp(buf[0], buf[1], len)) {
70 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
71 return EXIT_FAILURE;
72 }
73 len2 = sizeof(buf[0]);
74 omac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, "h", 1, "e", 1, "l", 1, "l", 1, "o", 1, NULL);
75 if (len != len2 || memcmp(buf[0], buf[1], len)) {
76 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
77 return EXIT_FAILURE;
78 }
79
80 /* PMAC */
81 len = sizeof(buf[0]);
82 pmac_memory(find_cipher("aes"), key, 16, "hello", 5, buf[0], &len);
83 len2 = sizeof(buf[0]);
84 pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, "hello", 5, NULL);
85 if (len != len2 || memcmp(buf[0], buf[1], len)) {
86 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
87 return EXIT_FAILURE;
88 }
89 len2 = sizeof(buf[0]);
90 pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, "he", 2, "llo", 3, NULL);
91 if (len != len2 || memcmp(buf[0], buf[1], len)) {
92 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
93 return EXIT_FAILURE;
94 }
95 len2 = sizeof(buf[0]);
96 pmac_memory_multi(find_cipher("aes"), key, 16, buf[1], &len2, "h", 1, "e", 1, "l", 1, "l", 1, "o", 1, NULL);
97 if (len != len2 || memcmp(buf[0], buf[1], len)) {
98 printf("Failed: %d %lu %lu\n", __LINE__, len, len2);
99 return EXIT_FAILURE;
100 }
101
102
103 printf("All passed\n");
104 return EXIT_SUCCESS;
105 }
106
107
108 /* $Source: /cvs/libtom/libtomcrypt/demos/multi.c,v $ */
109 /* $Revision: 1.2 $ */
110 /* $Date: 2005/05/05 14:35:56 $ */