diff options
author | jsing <> | 2023-08-10 13:58:34 +0000 |
---|---|---|
committer | jsing <> | 2023-08-10 13:58:34 +0000 |
commit | 324c91260e3a226d05870831fe690b0a591711e6 (patch) | |
tree | 04d0b8617945e88793130da138102b8e1dc7d339 | |
parent | 45bab25145ddfb098cb68f6a2e32aa04a34f6590 (diff) | |
download | openbsd-324c91260e3a226d05870831fe690b0a591711e6.tar.gz openbsd-324c91260e3a226d05870831fe690b0a591711e6.tar.bz2 openbsd-324c91260e3a226d05870831fe690b0a591711e6.zip |
Reorder functions.
No functional change.
-rw-r--r-- | src/lib/libcrypto/md5/md5.c | 238 |
1 files changed, 119 insertions, 119 deletions
diff --git a/src/lib/libcrypto/md5/md5.c b/src/lib/libcrypto/md5/md5.c index 5169627c02..89adab40a5 100644 --- a/src/lib/libcrypto/md5/md5.c +++ b/src/lib/libcrypto/md5/md5.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: md5.c,v 1.9 2023/08/10 13:54:21 jsing Exp $ */ | 1 | /* $OpenBSD: md5.c,v 1.10 2023/08/10 13:58:34 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -102,107 +102,6 @@ __END_HIDDEN_DECLS | |||
102 | 102 | ||
103 | #include "md32_common.h" | 103 | #include "md32_common.h" |
104 | 104 | ||
105 | int | ||
106 | MD5_Update(MD5_CTX *c, const void *data_, size_t len) | ||
107 | { | ||
108 | const unsigned char *data = data_; | ||
109 | unsigned char *p; | ||
110 | MD5_LONG l; | ||
111 | size_t n; | ||
112 | |||
113 | if (len == 0) | ||
114 | return 1; | ||
115 | |||
116 | l = (c->Nl + (((MD5_LONG)len) << 3))&0xffffffffUL; | ||
117 | /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to | ||
118 | * Wei Dai <weidai@eskimo.com> for pointing it out. */ | ||
119 | if (l < c->Nl) /* overflow */ | ||
120 | c->Nh++; | ||
121 | c->Nh+=(MD5_LONG)(len>>29); /* might cause compiler warning on 16-bit */ | ||
122 | c->Nl = l; | ||
123 | |||
124 | n = c->num; | ||
125 | if (n != 0) { | ||
126 | p = (unsigned char *)c->data; | ||
127 | |||
128 | if (len >= MD5_CBLOCK || len + n >= MD5_CBLOCK) { | ||
129 | memcpy(p + n, data, MD5_CBLOCK - n); | ||
130 | md5_block_data_order(c, p, 1); | ||
131 | n = MD5_CBLOCK - n; | ||
132 | data += n; | ||
133 | len -= n; | ||
134 | c->num = 0; | ||
135 | memset(p, 0, MD5_CBLOCK); /* keep it zeroed */ | ||
136 | } else { | ||
137 | memcpy(p + n, data, len); | ||
138 | c->num += (unsigned int)len; | ||
139 | return 1; | ||
140 | } | ||
141 | } | ||
142 | |||
143 | n = len/MD5_CBLOCK; | ||
144 | if (n > 0) { | ||
145 | md5_block_data_order (c, data, n); | ||
146 | n *= MD5_CBLOCK; | ||
147 | data += n; | ||
148 | len -= n; | ||
149 | } | ||
150 | |||
151 | if (len != 0) { | ||
152 | p = (unsigned char *)c->data; | ||
153 | c->num = (unsigned int)len; | ||
154 | memcpy (p, data, len); | ||
155 | } | ||
156 | return 1; | ||
157 | } | ||
158 | |||
159 | void | ||
160 | MD5_Transform(MD5_CTX *c, const unsigned char *data) | ||
161 | { | ||
162 | md5_block_data_order(c, data, 1); | ||
163 | } | ||
164 | |||
165 | int | ||
166 | MD5_Final(unsigned char *md, MD5_CTX *c) | ||
167 | { | ||
168 | unsigned char *p = (unsigned char *)c->data; | ||
169 | size_t n = c->num; | ||
170 | |||
171 | p[n] = 0x80; /* there is always room for one */ | ||
172 | n++; | ||
173 | |||
174 | if (n > (MD5_CBLOCK - 8)) { | ||
175 | memset(p + n, 0, MD5_CBLOCK - n); | ||
176 | n = 0; | ||
177 | md5_block_data_order(c, p, 1); | ||
178 | } | ||
179 | memset(p + n, 0, MD5_CBLOCK - 8 - n); | ||
180 | |||
181 | p += MD5_CBLOCK - 8; | ||
182 | #if defined(DATA_ORDER_IS_BIG_ENDIAN) | ||
183 | HOST_l2c(c->Nh, p); | ||
184 | HOST_l2c(c->Nl, p); | ||
185 | #elif defined(DATA_ORDER_IS_LITTLE_ENDIAN) | ||
186 | HOST_l2c(c->Nl, p); | ||
187 | HOST_l2c(c->Nh, p); | ||
188 | #endif | ||
189 | p -= MD5_CBLOCK; | ||
190 | md5_block_data_order(c, p, 1); | ||
191 | c->num = 0; | ||
192 | memset(p, 0, MD5_CBLOCK); | ||
193 | |||
194 | #ifndef HASH_MAKE_STRING | ||
195 | #error "HASH_MAKE_STRING must be defined!" | ||
196 | #else | ||
197 | HASH_MAKE_STRING(c, md); | ||
198 | #endif | ||
199 | |||
200 | return 1; | ||
201 | } | ||
202 | LCRYPTO_ALIAS(MD5_Update); | ||
203 | LCRYPTO_ALIAS(MD5_Transform); | ||
204 | LCRYPTO_ALIAS(MD5_Final); | ||
205 | |||
206 | /* | 105 | /* |
207 | #define F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) | 106 | #define F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) |
208 | #define G(x,y,z) (((x) & (z)) | ((y) & (~(z)))) | 107 | #define G(x,y,z) (((x) & (z)) | ((y) & (~(z)))) |
@@ -240,23 +139,6 @@ LCRYPTO_ALIAS(MD5_Final); | |||
240 | /* Implemented from RFC1321 The MD5 Message-Digest Algorithm | 139 | /* Implemented from RFC1321 The MD5 Message-Digest Algorithm |
241 | */ | 140 | */ |
242 | 141 | ||
243 | #define INIT_DATA_A (unsigned long)0x67452301L | ||
244 | #define INIT_DATA_B (unsigned long)0xefcdab89L | ||
245 | #define INIT_DATA_C (unsigned long)0x98badcfeL | ||
246 | #define INIT_DATA_D (unsigned long)0x10325476L | ||
247 | |||
248 | int | ||
249 | MD5_Init(MD5_CTX *c) | ||
250 | { | ||
251 | memset (c, 0, sizeof(*c)); | ||
252 | c->A = INIT_DATA_A; | ||
253 | c->B = INIT_DATA_B; | ||
254 | c->C = INIT_DATA_C; | ||
255 | c->D = INIT_DATA_D; | ||
256 | return 1; | ||
257 | } | ||
258 | LCRYPTO_ALIAS(MD5_Init); | ||
259 | |||
260 | #ifndef md5_block_data_order | 142 | #ifndef md5_block_data_order |
261 | #ifdef X | 143 | #ifdef X |
262 | #undef X | 144 | #undef X |
@@ -384,6 +266,124 @@ md5_block_data_order(MD5_CTX *c, const void *data_, size_t num) | |||
384 | } | 266 | } |
385 | #endif | 267 | #endif |
386 | 268 | ||
269 | #define INIT_DATA_A (unsigned long)0x67452301L | ||
270 | #define INIT_DATA_B (unsigned long)0xefcdab89L | ||
271 | #define INIT_DATA_C (unsigned long)0x98badcfeL | ||
272 | #define INIT_DATA_D (unsigned long)0x10325476L | ||
273 | |||
274 | int | ||
275 | MD5_Init(MD5_CTX *c) | ||
276 | { | ||
277 | memset (c, 0, sizeof(*c)); | ||
278 | c->A = INIT_DATA_A; | ||
279 | c->B = INIT_DATA_B; | ||
280 | c->C = INIT_DATA_C; | ||
281 | c->D = INIT_DATA_D; | ||
282 | return 1; | ||
283 | } | ||
284 | LCRYPTO_ALIAS(MD5_Init); | ||
285 | |||
286 | int | ||
287 | MD5_Update(MD5_CTX *c, const void *data_, size_t len) | ||
288 | { | ||
289 | const unsigned char *data = data_; | ||
290 | unsigned char *p; | ||
291 | MD5_LONG l; | ||
292 | size_t n; | ||
293 | |||
294 | if (len == 0) | ||
295 | return 1; | ||
296 | |||
297 | l = (c->Nl + (((MD5_LONG)len) << 3))&0xffffffffUL; | ||
298 | /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to | ||
299 | * Wei Dai <weidai@eskimo.com> for pointing it out. */ | ||
300 | if (l < c->Nl) /* overflow */ | ||
301 | c->Nh++; | ||
302 | c->Nh+=(MD5_LONG)(len>>29); /* might cause compiler warning on 16-bit */ | ||
303 | c->Nl = l; | ||
304 | |||
305 | n = c->num; | ||
306 | if (n != 0) { | ||
307 | p = (unsigned char *)c->data; | ||
308 | |||
309 | if (len >= MD5_CBLOCK || len + n >= MD5_CBLOCK) { | ||
310 | memcpy(p + n, data, MD5_CBLOCK - n); | ||
311 | md5_block_data_order(c, p, 1); | ||
312 | n = MD5_CBLOCK - n; | ||
313 | data += n; | ||
314 | len -= n; | ||
315 | c->num = 0; | ||
316 | memset(p, 0, MD5_CBLOCK); /* keep it zeroed */ | ||
317 | } else { | ||
318 | memcpy(p + n, data, len); | ||
319 | c->num += (unsigned int)len; | ||
320 | return 1; | ||
321 | } | ||
322 | } | ||
323 | |||
324 | n = len/MD5_CBLOCK; | ||
325 | if (n > 0) { | ||
326 | md5_block_data_order (c, data, n); | ||
327 | n *= MD5_CBLOCK; | ||
328 | data += n; | ||
329 | len -= n; | ||
330 | } | ||
331 | |||
332 | if (len != 0) { | ||
333 | p = (unsigned char *)c->data; | ||
334 | c->num = (unsigned int)len; | ||
335 | memcpy (p, data, len); | ||
336 | } | ||
337 | return 1; | ||
338 | } | ||
339 | LCRYPTO_ALIAS(MD5_Update); | ||
340 | |||
341 | void | ||
342 | MD5_Transform(MD5_CTX *c, const unsigned char *data) | ||
343 | { | ||
344 | md5_block_data_order(c, data, 1); | ||
345 | } | ||
346 | LCRYPTO_ALIAS(MD5_Transform); | ||
347 | |||
348 | int | ||
349 | MD5_Final(unsigned char *md, MD5_CTX *c) | ||
350 | { | ||
351 | unsigned char *p = (unsigned char *)c->data; | ||
352 | size_t n = c->num; | ||
353 | |||
354 | p[n] = 0x80; /* there is always room for one */ | ||
355 | n++; | ||
356 | |||
357 | if (n > (MD5_CBLOCK - 8)) { | ||
358 | memset(p + n, 0, MD5_CBLOCK - n); | ||
359 | n = 0; | ||
360 | md5_block_data_order(c, p, 1); | ||
361 | } | ||
362 | memset(p + n, 0, MD5_CBLOCK - 8 - n); | ||
363 | |||
364 | p += MD5_CBLOCK - 8; | ||
365 | #if defined(DATA_ORDER_IS_BIG_ENDIAN) | ||
366 | HOST_l2c(c->Nh, p); | ||
367 | HOST_l2c(c->Nl, p); | ||
368 | #elif defined(DATA_ORDER_IS_LITTLE_ENDIAN) | ||
369 | HOST_l2c(c->Nl, p); | ||
370 | HOST_l2c(c->Nh, p); | ||
371 | #endif | ||
372 | p -= MD5_CBLOCK; | ||
373 | md5_block_data_order(c, p, 1); | ||
374 | c->num = 0; | ||
375 | memset(p, 0, MD5_CBLOCK); | ||
376 | |||
377 | #ifndef HASH_MAKE_STRING | ||
378 | #error "HASH_MAKE_STRING must be defined!" | ||
379 | #else | ||
380 | HASH_MAKE_STRING(c, md); | ||
381 | #endif | ||
382 | |||
383 | return 1; | ||
384 | } | ||
385 | LCRYPTO_ALIAS(MD5_Final); | ||
386 | |||
387 | unsigned char * | 387 | unsigned char * |
388 | MD5(const unsigned char *d, size_t n, unsigned char *md) | 388 | MD5(const unsigned char *d, size_t n, unsigned char *md) |
389 | { | 389 | { |