pdbt: script for finish carrier IDs, from Mikko Lehto, mikko dot lehto at setera...
[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 /*!
26  * \file
27  * \brief SIP-router core :: 
28  * \ingroup core
29  * Module: \ref core
30  */
31
32 #define MD 5
33
34 #include <stdio.h>
35 #include <time.h>
36 #include <string.h>
37 #include "md5global.h"
38 #include "md5.h"
39 #include "md5utils.h"
40 #include "dprint.h"
41 #include "ut.h"
42
43
44 /*static void MDString PROTO_LIST ((char *));*/
45
46 #define MD_CTX MD5_CTX
47 #define MDInit MD5Init
48 #define MDUpdate MD5Update
49 #define MDFinal MD5Final
50
51
52 /* Digests a string array and store the result in dst; assumes
53   32 bytes in dst
54  */
55 void MD5StringArray (char *dst, str src[], int size)
56 {
57         MD_CTX context;
58         unsigned char digest[16];
59         int i;
60         int len;
61         char *s;
62
63 /*
64 #       ifdef EXTRA_DEBUG
65         int j;
66         int sum;
67 #endif
68 */
69
70         MDInit (&context);
71         for (i=0; i<size; i++) {
72                 trim_len( len, s, src[i] );
73 /*
74 #               ifdef EXTRA_DEBUG
75                 fprintf(stderr, "EXTRA_DEBUG: %d. (%d) {", i+1, len);
76                 sum=0;
77                 for (j=0; j<len; j++) {
78                         fprintf( stderr, "%c ", *(s+j));
79                         sum+=*(s+j);
80                 }
81                 for (j=0; j<len; j++) {
82                         fprintf( stderr, "%d ", *(s+j));
83                         sum+=*(s+j);
84                 }
85                 fprintf(stderr, " [%d]\n", sum );       
86 #               endif
87 */
88                 if (len > 0)
89                         MDUpdate (&context, s, len);
90   }
91   MDFinal (digest, &context);
92
93   string2hex(digest, 16, dst );
94   DBG("DEBUG: MD5 calculated: %.*s\n", MD5_LEN, dst );
95
96 }