diff options
Diffstat (limited to 'sha1/testsuite.c')
| -rw-r--r-- | sha1/testsuite.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/sha1/testsuite.c b/sha1/testsuite.c new file mode 100644 index 0000000..4de568e --- /dev/null +++ b/sha1/testsuite.c @@ -0,0 +1,96 @@ +/* +** Copyright 2001-2005 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#include "config.h" +#include "sha1.h" +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + + +static char foo[1000001]; + +static void sha1() +{ +SHA1_DIGEST digest; +unsigned i, n; + +static char *testcases[]={"abc", +"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", foo}; + + for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) + { + i=strlen(testcases[n]); + sha1_digest(testcases[n], i, digest); + printf( (i < 200 ? "SHA1(%s)=": + "SHA1(%-1.20s...)="), testcases[n]); + + for (i=0; i<20; i++) + { + if (i && (i & 3) == 0) putchar(' '); + printf("%02X", digest[i]); + } + printf("\n"); + } +} + +static void sha256() +{ + SHA256_DIGEST digest; + unsigned i, n; + + static char *testcases[]={"abc", + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + foo}; + + for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) + { + i=strlen(testcases[n]); + sha256_digest(testcases[n], i, digest); + printf( (i < 200 ? "SHA256(%s)=": + "SHA256(%-1.20s...)="), testcases[n]); + + for (i=0; i<sizeof(digest); i++) + { + if (i && (i & 3) == 0) putchar(' '); + printf("%02X", digest[i]); + } + printf("\n"); + } +} + +static void sha512() +{ + SHA512_DIGEST digest; + unsigned i, n; + + static char *testcases[]={"abc", + "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", + foo}; + + for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) + { + i=strlen(testcases[n]); + sha512_digest(testcases[n], i, digest); + printf( (i < 200 ? "SHA512(%s)=": + "SHA512(%-1.20s...)="), testcases[n]); + + for (i=0; i<sizeof(digest); i++) + { + if (i && (i & 7) == 0) putchar(' '); + printf("%02X", digest[i]); + } + printf("\n"); + } +} +int main() +{ + memset(foo, 'a', 1000000); + sha1(); + sha256(); + sha512(); + exit (0); + return (0); +} |
