Mercurial > dropbear
comparison testprof/store_test.c @ 280:59400faa4b44 libtomcrypt-orig libtomcrypt-1.05
Re-import libtomcrypt 1.05 for cleaner propagating.
From crypt-1.05.tar.bz2, SHA1 of 88250202bb51570dc64f7e8f1c943cda9479258f
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Wed, 08 Mar 2006 12:58:00 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 280:59400faa4b44 |
---|---|
1 #include <tomcrypt_test.h> | |
2 | |
3 /* Test store/load macros with offsets */ | |
4 int store_test(void) | |
5 { | |
6 unsigned char buf[256]; | |
7 int y; | |
8 ulong32 L, L1; | |
9 ulong64 LL, LL1; | |
10 #ifdef LTC_FAST | |
11 int x, z; | |
12 #endif | |
13 | |
14 for (y = 0; y < 4; y++) { | |
15 L = 0x12345678UL; | |
16 L1 = 0; | |
17 STORE32L(L, buf + y); | |
18 LOAD32L(L1, buf + y); | |
19 if (L1 != L) { | |
20 fprintf(stderr, "\n32L failed at offset %d\n", y); | |
21 return 1; | |
22 } | |
23 STORE32H(L, buf + y); | |
24 LOAD32H(L1, buf + y); | |
25 if (L1 != L) { | |
26 fprintf(stderr, "\n32H failed at offset %d\n", y); | |
27 return 1; | |
28 } | |
29 } | |
30 | |
31 for (y = 0; y < 8; y++) { | |
32 LL = CONST64 (0x01020304050607); | |
33 LL1 = 0; | |
34 STORE64L(LL, buf + y); | |
35 LOAD64L(LL1, buf + y); | |
36 if (LL1 != LL) { | |
37 fprintf(stderr, "\n64L failed at offset %d\n", y); | |
38 return 1; | |
39 } | |
40 STORE64H(LL, buf + y); | |
41 LOAD64H(LL1, buf + y); | |
42 if (LL1 != LL) { | |
43 fprintf(stderr, "\n64H failed at offset %d\n", y); | |
44 return 1; | |
45 } | |
46 } | |
47 | |
48 /* test LTC_FAST */ | |
49 #ifdef LTC_FAST | |
50 y = 16; | |
51 | |
52 for (z = 0; z < y; z++) { | |
53 /* fill y bytes with random */ | |
54 yarrow_read(buf+z, y, &yarrow_prng); | |
55 yarrow_read(buf+z+y, y, &yarrow_prng); | |
56 | |
57 /* now XOR it byte for byte */ | |
58 for (x = 0; x < y; x++) { | |
59 buf[2*y+z+x] = buf[z+x] ^ buf[z+y+x]; | |
60 } | |
61 | |
62 /* now XOR it word for word */ | |
63 for (x = 0; x < y; x += sizeof(LTC_FAST_TYPE)) { | |
64 *((LTC_FAST_TYPE*)(&buf[3*y+z+x])) = *((LTC_FAST_TYPE*)(&buf[z+x])) ^ *((LTC_FAST_TYPE*)(&buf[z+y+x])); | |
65 } | |
66 | |
67 if (memcmp(&buf[2*y+z], &buf[3*y+z], y)) { | |
68 fprintf(stderr, "\nLTC_FAST failed at offset %d\n", z); | |
69 return 1; | |
70 } | |
71 } | |
72 #endif | |
73 return 0; | |
74 } | |
75 | |
76 /* $Source: /cvs/libtom/libtomcrypt/testprof/store_test.c,v $ */ | |
77 /* $Revision: 1.6 $ */ | |
78 /* $Date: 2005/05/05 14:35:59 $ */ |