58e3363841ff5461c33451143e9adb0b7dca6fa1
[dragonfly.git] / lib / libmd / shadriver.c
1 /* SHADRIVER.C - test driver for SHA-1 (and SHA-0)
2  * $FreeBSD: src/lib/libmd/shadriver.c,v 1.4 2005/03/09 19:23:04 cperciva Exp $
3  * $DragonFly: src/lib/libmd/shadriver.c,v 1.4 2008/09/11 20:25:34 swildner Exp $
4  */
5
6 /* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
7    rights reserved.
8
9    RSA Data Security, Inc. makes no representations concerning either
10    the merchantability of this software or the suitability of this
11    software for any particular purpose. It is provided "as is"
12    without express or implied warranty of any kind.
13
14    These notices must be retained in any copies of any part of this
15    documentation and/or software.
16  */
17
18 /* The following makes SHA default to SHA-1 if it has not already been
19      defined with C compiler flags.
20  */
21 #ifndef SHA
22 #define SHA 1
23 #endif
24
25 #include <sys/types.h>
26
27 #include <stdio.h>
28 #include <time.h>
29 #include <string.h>
30 #include "sha.h"
31 #include "sha256.h"
32 #include "sha512.h"
33 #if SHA == 1
34 #define SHA_Data SHA1_Data
35 #elif SHA == 256
36 #define SHA_Data SHA256_Data
37 #elif SHA == 512
38 #define SHA_Data SHA512_Data
39 #endif
40
41 /* Digests a string and prints the result.
42  */
43 static void SHAString (char *string)
44 {
45   char buf[2*64+1];
46
47   printf ("SHA-%d (\"%s\") = %s\n", 
48         SHA, string, SHA_Data(string,strlen(string),buf));
49 }
50
51 /* Digests a reference suite of strings and prints the results.
52  */
53 int main(void)
54 {
55   printf ("SHA-%d test suite:\n", SHA);
56
57   SHAString ("");
58   SHAString ("abc");
59   SHAString ("message digest");
60   SHAString ("abcdefghijklmnopqrstuvwxyz");
61   SHAString
62     ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
63   SHAString
64     ("1234567890123456789012345678901234567890\
65 1234567890123456789012345678901234567890");
66   return 0;
67 }