summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/md2/md2_dgst.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/md2/md2_dgst.c')
-rw-r--r--src/lib/libcrypto/md2/md2_dgst.c39
1 files changed, 15 insertions, 24 deletions
diff --git a/src/lib/libcrypto/md2/md2_dgst.c b/src/lib/libcrypto/md2/md2_dgst.c
index 5cbd36f3fe..e25dd00e02 100644
--- a/src/lib/libcrypto/md2/md2_dgst.c
+++ b/src/lib/libcrypto/md2/md2_dgst.c
@@ -59,23 +59,19 @@
59#include <stdio.h> 59#include <stdio.h>
60#include <stdlib.h> 60#include <stdlib.h>
61#include <string.h> 61#include <string.h>
62#include "md2.h" 62#include <openssl/md2.h>
63#include <openssl/opensslv.h>
63 64
64char *MD2_version="MD2 part of SSLeay 0.9.0b 29-Jun-1998"; 65const char *MD2_version="MD2" OPENSSL_VERSION_PTEXT;
65 66
66/* Implemented from RFC1319 The MD2 Message-Digest Algorithm 67/* Implemented from RFC1319 The MD2 Message-Digest Algorithm
67 */ 68 */
68 69
69#define UCHAR unsigned char 70#define UCHAR unsigned char
70 71
71#ifndef NOPROTO 72static void md2_block(MD2_CTX *c, const unsigned char *d);
72static void md2_block(MD2_CTX *c, unsigned char *d);
73#else
74static void md2_block();
75#endif
76
77/* The magic S table - I have converted it to hex since it is 73/* The magic S table - I have converted it to hex since it is
78 * basicaly just a random byte string. */ 74 * basically just a random byte string. */
79static MD2_INT S[256]={ 75static MD2_INT S[256]={
80 0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 76 0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01,
81 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 77 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13,
@@ -111,7 +107,7 @@ static MD2_INT S[256]={
111 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14, 107 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14,
112 }; 108 };
113 109
114char *MD2_options() 110const char *MD2_options(void)
115 { 111 {
116 if (sizeof(MD2_INT) == 1) 112 if (sizeof(MD2_INT) == 1)
117 return("md2(char)"); 113 return("md2(char)");
@@ -119,23 +115,20 @@ char *MD2_options()
119 return("md2(int)"); 115 return("md2(int)");
120 } 116 }
121 117
122void MD2_Init(c) 118int MD2_Init(MD2_CTX *c)
123MD2_CTX *c;
124 { 119 {
125 c->num=0; 120 c->num=0;
126 memset(c->state,0,MD2_BLOCK*sizeof(MD2_INT)); 121 memset(c->state,0,MD2_BLOCK*sizeof(MD2_INT));
127 memset(c->cksm,0,MD2_BLOCK*sizeof(MD2_INT)); 122 memset(c->cksm,0,MD2_BLOCK*sizeof(MD2_INT));
128 memset(c->data,0,MD2_BLOCK); 123 memset(c->data,0,MD2_BLOCK);
124 return 1;
129 } 125 }
130 126
131void MD2_Update(c, data, len) 127int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len)
132MD2_CTX *c;
133register unsigned char *data;
134unsigned long len;
135 { 128 {
136 register UCHAR *p; 129 register UCHAR *p;
137 130
138 if (len == 0) return; 131 if (len == 0) return 1;
139 132
140 p=c->data; 133 p=c->data;
141 if (c->num != 0) 134 if (c->num != 0)
@@ -154,7 +147,7 @@ unsigned long len;
154 memcpy(&(p[c->num]),data,(int)len); 147 memcpy(&(p[c->num]),data,(int)len);
155 /* data+=len; */ 148 /* data+=len; */
156 c->num+=(int)len; 149 c->num+=(int)len;
157 return; 150 return 1;
158 } 151 }
159 } 152 }
160 /* we now can process the input data in blocks of MD2_BLOCK 153 /* we now can process the input data in blocks of MD2_BLOCK
@@ -167,11 +160,10 @@ unsigned long len;
167 } 160 }
168 memcpy(p,data,(int)len); 161 memcpy(p,data,(int)len);
169 c->num=(int)len; 162 c->num=(int)len;
163 return 1;
170 } 164 }
171 165
172static void md2_block(c, d) 166static void md2_block(MD2_CTX *c, const unsigned char *d)
173MD2_CTX *c;
174unsigned char *d;
175 { 167 {
176 register MD2_INT t,*sp1,*sp2; 168 register MD2_INT t,*sp1,*sp2;
177 register int i,j; 169 register int i,j;
@@ -207,9 +199,7 @@ unsigned char *d;
207 memset(state,0,48*sizeof(MD2_INT)); 199 memset(state,0,48*sizeof(MD2_INT));
208 } 200 }
209 201
210void MD2_Final(md, c) 202int MD2_Final(unsigned char *md, MD2_CTX *c)
211unsigned char *md;
212MD2_CTX *c;
213 { 203 {
214 int i,v; 204 int i,v;
215 register UCHAR *cp; 205 register UCHAR *cp;
@@ -231,5 +221,6 @@ MD2_CTX *c;
231 for (i=0; i<16; i++) 221 for (i=0; i<16; i++)
232 md[i]=(UCHAR)(p1[i]&0xff); 222 md[i]=(UCHAR)(p1[i]&0xff);
233 memset((char *)&c,0,sizeof(c)); 223 memset((char *)&c,0,sizeof(c));
224 return 1;
234 } 225 }
235 226