GPLization banner introduced to *.[hc] files
[sip-router] / md5utils.c
1 /* MDDRIVER.C - test driver for MD2, MD4 and MD5
2  *
3  */
4
5
6
7 /* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
8 rights reserved.
9
10 RSA Data Security, Inc. makes no representations concerning either
11 the merchantability of this software or the suitability of this
12 software for any particular purpose. It is provided "as is"
13 without express or implied warranty of any kind.
14
15 These notices must be retained in any copies of any part of this
16 documentation and/or software.
17  */
18
19 /*
20
21 jku: added support to deal with vectors
22
23 */
24
25 #define MD 5
26
27 #include <stdio.h>
28 #include <time.h>
29 #include <string.h>
30 #include "md5global.h"
31 #include "md5.h"
32 #include "md5utils.h"
33 #include "dprint.h"
34 #include "ut.h"
35
36
37 /*static void MDString PROTO_LIST ((char *));*/
38
39 #define MD_CTX MD5_CTX
40 #define MDInit MD5Init
41 #define MDUpdate MD5Update
42 #define MDFinal MD5Final
43
44
45 /* Digests a string array and store the result in dst; assumes
46   32 bytes in dst
47  */
48 void MDStringArray (char *dst, str src[], int size)
49 {
50         MD_CTX context;
51         unsigned char digest[16];
52         int i;
53         int len;
54         char *s;
55
56 /*
57 #       ifdef EXTRA_DEBUG
58         int j;
59         int sum;
60 #endif
61 */
62
63         MDInit (&context);
64         for (i=0; i<size; i++) {
65                 trim_len( len, s, src[i] );
66 /*
67 #               ifdef EXTRA_DEBUG
68                 fprintf(stderr, "EXTRA_DEBUG: %d. (%d) {", i+1, len);
69                 sum=0;
70                 for (j=0; j<len; j++) {
71                         fprintf( stderr, "%c ", *(s+j));
72                         sum+=*(s+j);
73                 }
74                 for (j=0; j<len; j++) {
75                         fprintf( stderr, "%d ", *(s+j));
76                         sum+=*(s+j);
77                 }
78                 fprintf(stderr, " [%d]\n", sum );       
79 #               endif
80 */
81                 MDUpdate (&context, s, len);
82   }
83   MDFinal (digest, &context);
84
85   string2hex(digest, 16, dst );
86   DBG("DEBUG: MD5 calculated: %.*s\n", MD5_LEN, dst );
87
88 }