summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2024-03-28 05:00:27 +0000
committerjsing <>2024-03-28 05:00:27 +0000
commit5d5b82cf37015d06ebf07d32a2abb0b7202b7808 (patch)
tree47cf8aac748d5b77532ba383ba53eb721921cbb5 /src
parent959a6ea7c646a47bdf3ca1f46fc0b331458c0d16 (diff)
downloadopenbsd-5d5b82cf37015d06ebf07d32a2abb0b7202b7808.tar.gz
openbsd-5d5b82cf37015d06ebf07d32a2abb0b7202b7808.tar.bz2
openbsd-5d5b82cf37015d06ebf07d32a2abb0b7202b7808.zip
Reorder functions.
No functional change.
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/ripemd/ripemd.c218
1 files changed, 109 insertions, 109 deletions
diff --git a/src/lib/libcrypto/ripemd/ripemd.c b/src/lib/libcrypto/ripemd/ripemd.c
index 229b712e6b..36073d8b4d 100644
--- a/src/lib/libcrypto/ripemd/ripemd.c
+++ b/src/lib/libcrypto/ripemd/ripemd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ripemd.c,v 1.8 2024/03/28 04:56:47 jsing Exp $ */ 1/* $OpenBSD: ripemd.c,v 1.9 2024/03/28 05:00:27 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 *
@@ -106,102 +106,6 @@ __END_HIDDEN_DECLS
106 106
107#include "md32_common.h" 107#include "md32_common.h"
108 108
109int
110HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
111{
112 const unsigned char *data = data_;
113 unsigned char *p;
114 HASH_LONG l;
115 size_t n;
116
117 if (len == 0)
118 return 1;
119
120 l = (c->Nl + (((HASH_LONG)len) << 3))&0xffffffffUL;
121 /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
122 * Wei Dai <weidai@eskimo.com> for pointing it out. */
123 if (l < c->Nl) /* overflow */
124 c->Nh++;
125 c->Nh+=(HASH_LONG)(len>>29); /* might cause compiler warning on 16-bit */
126 c->Nl = l;
127
128 n = c->num;
129 if (n != 0) {
130 p = (unsigned char *)c->data;
131
132 if (len >= HASH_CBLOCK || len + n >= HASH_CBLOCK) {
133 memcpy (p + n, data, HASH_CBLOCK - n);
134 HASH_BLOCK_DATA_ORDER (c, p, 1);
135 n = HASH_CBLOCK - n;
136 data += n;
137 len -= n;
138 c->num = 0;
139 memset (p,0,HASH_CBLOCK); /* keep it zeroed */
140 } else {
141 memcpy (p + n, data, len);
142 c->num += (unsigned int)len;
143 return 1;
144 }
145 }
146
147 n = len/HASH_CBLOCK;
148 if (n > 0) {
149 HASH_BLOCK_DATA_ORDER (c, data, n);
150 n *= HASH_CBLOCK;
151 data += n;
152 len -= n;
153 }
154
155 if (len != 0) {
156 p = (unsigned char *)c->data;
157 c->num = (unsigned int)len;
158 memcpy (p, data, len);
159 }
160 return 1;
161}
162
163void HASH_TRANSFORM (HASH_CTX *c, const unsigned char *data)
164{
165 HASH_BLOCK_DATA_ORDER (c, data, 1);
166}
167
168int HASH_FINAL (unsigned char *md, HASH_CTX *c)
169{
170 unsigned char *p = (unsigned char *)c->data;
171 size_t n = c->num;
172
173 p[n] = 0x80; /* there is always room for one */
174 n++;
175
176 if (n > (HASH_CBLOCK - 8)) {
177 memset (p + n, 0, HASH_CBLOCK - n);
178 n = 0;
179 HASH_BLOCK_DATA_ORDER (c, p, 1);
180 }
181 memset (p + n, 0, HASH_CBLOCK - 8 - n);
182
183 p += HASH_CBLOCK - 8;
184#if defined(DATA_ORDER_IS_BIG_ENDIAN)
185 HOST_l2c(c->Nh, p);
186 HOST_l2c(c->Nl, p);
187#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
188 HOST_l2c(c->Nl, p);
189 HOST_l2c(c->Nh, p);
190#endif
191 p -= HASH_CBLOCK;
192 HASH_BLOCK_DATA_ORDER (c, p, 1);
193 c->num = 0;
194 memset (p, 0, HASH_CBLOCK);
195
196#ifndef HASH_MAKE_STRING
197#error "HASH_MAKE_STRING must be defined!"
198#else
199 HASH_MAKE_STRING(c, md);
200#endif
201
202 return 1;
203}
204
205#if 0 109#if 0
206#define F1(x,y,z) ((x)^(y)^(z)) 110#define F1(x,y,z) ((x)^(y)^(z))
207#define F2(x,y,z) (((x)&(y))|((~x)&z)) 111#define F2(x,y,z) (((x)&(y))|((~x)&z))
@@ -269,18 +173,6 @@ void ripemd160_block_x86(RIPEMD160_CTX *c, unsigned long *p, size_t num);
269void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p, size_t num); 173void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p, size_t num);
270# endif 174# endif
271 175
272int
273RIPEMD160_Init(RIPEMD160_CTX *c)
274{
275 memset (c, 0, sizeof(*c));
276 c->A = RIPEMD160_A;
277 c->B = RIPEMD160_B;
278 c->C = RIPEMD160_C;
279 c->D = RIPEMD160_D;
280 c->E = RIPEMD160_E;
281 return 1;
282}
283
284#ifndef ripemd160_block_data_order 176#ifndef ripemd160_block_data_order
285void 177void
286ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p, size_t num) 178ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p, size_t num)
@@ -524,6 +416,114 @@ ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p, size_t num)
524} 416}
525#endif 417#endif
526 418
419int
420RIPEMD160_Init(RIPEMD160_CTX *c)
421{
422 memset (c, 0, sizeof(*c));
423 c->A = RIPEMD160_A;
424 c->B = RIPEMD160_B;
425 c->C = RIPEMD160_C;
426 c->D = RIPEMD160_D;
427 c->E = RIPEMD160_E;
428 return 1;
429}
430
431int
432HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
433{
434 const unsigned char *data = data_;
435 unsigned char *p;
436 HASH_LONG l;
437 size_t n;
438
439 if (len == 0)
440 return 1;
441
442 l = (c->Nl + (((HASH_LONG)len) << 3))&0xffffffffUL;
443 /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
444 * Wei Dai <weidai@eskimo.com> for pointing it out. */
445 if (l < c->Nl) /* overflow */
446 c->Nh++;
447 c->Nh+=(HASH_LONG)(len>>29); /* might cause compiler warning on 16-bit */
448 c->Nl = l;
449
450 n = c->num;
451 if (n != 0) {
452 p = (unsigned char *)c->data;
453
454 if (len >= HASH_CBLOCK || len + n >= HASH_CBLOCK) {
455 memcpy (p + n, data, HASH_CBLOCK - n);
456 HASH_BLOCK_DATA_ORDER (c, p, 1);
457 n = HASH_CBLOCK - n;
458 data += n;
459 len -= n;
460 c->num = 0;
461 memset (p,0,HASH_CBLOCK); /* keep it zeroed */
462 } else {
463 memcpy (p + n, data, len);
464 c->num += (unsigned int)len;
465 return 1;
466 }
467 }
468
469 n = len/HASH_CBLOCK;
470 if (n > 0) {
471 HASH_BLOCK_DATA_ORDER (c, data, n);
472 n *= HASH_CBLOCK;
473 data += n;
474 len -= n;
475 }
476
477 if (len != 0) {
478 p = (unsigned char *)c->data;
479 c->num = (unsigned int)len;
480 memcpy (p, data, len);
481 }
482 return 1;
483}
484
485void HASH_TRANSFORM (HASH_CTX *c, const unsigned char *data)
486{
487 HASH_BLOCK_DATA_ORDER (c, data, 1);
488}
489
490int HASH_FINAL (unsigned char *md, HASH_CTX *c)
491{
492 unsigned char *p = (unsigned char *)c->data;
493 size_t n = c->num;
494
495 p[n] = 0x80; /* there is always room for one */
496 n++;
497
498 if (n > (HASH_CBLOCK - 8)) {
499 memset (p + n, 0, HASH_CBLOCK - n);
500 n = 0;
501 HASH_BLOCK_DATA_ORDER (c, p, 1);
502 }
503 memset (p + n, 0, HASH_CBLOCK - 8 - n);
504
505 p += HASH_CBLOCK - 8;
506#if defined(DATA_ORDER_IS_BIG_ENDIAN)
507 HOST_l2c(c->Nh, p);
508 HOST_l2c(c->Nl, p);
509#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
510 HOST_l2c(c->Nl, p);
511 HOST_l2c(c->Nh, p);
512#endif
513 p -= HASH_CBLOCK;
514 HASH_BLOCK_DATA_ORDER (c, p, 1);
515 c->num = 0;
516 memset (p, 0, HASH_CBLOCK);
517
518#ifndef HASH_MAKE_STRING
519#error "HASH_MAKE_STRING must be defined!"
520#else
521 HASH_MAKE_STRING(c, md);
522#endif
523
524 return 1;
525}
526
527unsigned char * 527unsigned char *
528RIPEMD160(const unsigned char *d, size_t n, 528RIPEMD160(const unsigned char *d, size_t n,
529 unsigned char *md) 529 unsigned char *md)