summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2024-03-28 05:16:11 +0000
committerjsing <>2024-03-28 05:16:11 +0000
commit3dffd5ed666ba5b5b89721fc6dd1dcfcf297eea1 (patch)
tree00d6ee7d118706678c7d6c1132714324083c7df0 /src
parent5d5b82cf37015d06ebf07d32a2abb0b7202b7808 (diff)
downloadopenbsd-3dffd5ed666ba5b5b89721fc6dd1dcfcf297eea1.tar.gz
openbsd-3dffd5ed666ba5b5b89721fc6dd1dcfcf297eea1.tar.bz2
openbsd-3dffd5ed666ba5b5b89721fc6dd1dcfcf297eea1.zip
Expand HASH_* defines.
No change to generated assembly.
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/ripemd/ripemd.c56
1 files changed, 29 insertions, 27 deletions
diff --git a/src/lib/libcrypto/ripemd/ripemd.c b/src/lib/libcrypto/ripemd/ripemd.c
index 36073d8b4d..6bf8b61893 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.9 2024/03/28 05:00:27 jsing Exp $ */ 1/* $OpenBSD: ripemd.c,v 1.10 2024/03/28 05:16:11 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 *
@@ -419,7 +419,7 @@ ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p, size_t num)
419int 419int
420RIPEMD160_Init(RIPEMD160_CTX *c) 420RIPEMD160_Init(RIPEMD160_CTX *c)
421{ 421{
422 memset (c, 0, sizeof(*c)); 422 memset(c, 0, sizeof(*c));
423 c->A = RIPEMD160_A; 423 c->A = RIPEMD160_A;
424 c->B = RIPEMD160_B; 424 c->B = RIPEMD160_B;
425 c->C = RIPEMD160_C; 425 c->C = RIPEMD160_C;
@@ -429,47 +429,47 @@ RIPEMD160_Init(RIPEMD160_CTX *c)
429} 429}
430 430
431int 431int
432HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len) 432RIPEMD160_Update(RIPEMD160_CTX *c, const void *data_, size_t len)
433{ 433{
434 const unsigned char *data = data_; 434 const unsigned char *data = data_;
435 unsigned char *p; 435 unsigned char *p;
436 HASH_LONG l; 436 RIPEMD160_LONG l;
437 size_t n; 437 size_t n;
438 438
439 if (len == 0) 439 if (len == 0)
440 return 1; 440 return 1;
441 441
442 l = (c->Nl + (((HASH_LONG)len) << 3))&0xffffffffUL; 442 l = (c->Nl + (((RIPEMD160_LONG)len) << 3))&0xffffffffUL;
443 /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to 443 /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
444 * Wei Dai <weidai@eskimo.com> for pointing it out. */ 444 * Wei Dai <weidai@eskimo.com> for pointing it out. */
445 if (l < c->Nl) /* overflow */ 445 if (l < c->Nl) /* overflow */
446 c->Nh++; 446 c->Nh++;
447 c->Nh+=(HASH_LONG)(len>>29); /* might cause compiler warning on 16-bit */ 447 c->Nh+=(RIPEMD160_LONG)(len>>29); /* might cause compiler warning on 16-bit */
448 c->Nl = l; 448 c->Nl = l;
449 449
450 n = c->num; 450 n = c->num;
451 if (n != 0) { 451 if (n != 0) {
452 p = (unsigned char *)c->data; 452 p = (unsigned char *)c->data;
453 453
454 if (len >= HASH_CBLOCK || len + n >= HASH_CBLOCK) { 454 if (len >= RIPEMD160_CBLOCK || len + n >= RIPEMD160_CBLOCK) {
455 memcpy (p + n, data, HASH_CBLOCK - n); 455 memcpy(p + n, data, RIPEMD160_CBLOCK - n);
456 HASH_BLOCK_DATA_ORDER (c, p, 1); 456 ripemd160_block_data_order(c, p, 1);
457 n = HASH_CBLOCK - n; 457 n = RIPEMD160_CBLOCK - n;
458 data += n; 458 data += n;
459 len -= n; 459 len -= n;
460 c->num = 0; 460 c->num = 0;
461 memset (p,0,HASH_CBLOCK); /* keep it zeroed */ 461 memset(p, 0, RIPEMD160_CBLOCK); /* keep it zeroed */
462 } else { 462 } else {
463 memcpy (p + n, data, len); 463 memcpy(p + n, data, len);
464 c->num += (unsigned int)len; 464 c->num += (unsigned int)len;
465 return 1; 465 return 1;
466 } 466 }
467 } 467 }
468 468
469 n = len/HASH_CBLOCK; 469 n = len/RIPEMD160_CBLOCK;
470 if (n > 0) { 470 if (n > 0) {
471 HASH_BLOCK_DATA_ORDER (c, data, n); 471 ripemd160_block_data_order(c, data, n);
472 n *= HASH_CBLOCK; 472 n *= RIPEMD160_CBLOCK;
473 data += n; 473 data += n;
474 len -= n; 474 len -= n;
475 } 475 }
@@ -477,17 +477,19 @@ HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
477 if (len != 0) { 477 if (len != 0) {
478 p = (unsigned char *)c->data; 478 p = (unsigned char *)c->data;
479 c->num = (unsigned int)len; 479 c->num = (unsigned int)len;
480 memcpy (p, data, len); 480 memcpy(p, data, len);
481 } 481 }
482 return 1; 482 return 1;
483} 483}
484 484
485void HASH_TRANSFORM (HASH_CTX *c, const unsigned char *data) 485void
486RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *data)
486{ 487{
487 HASH_BLOCK_DATA_ORDER (c, data, 1); 488 ripemd160_block_data_order(c, data, 1);
488} 489}
489 490
490int HASH_FINAL (unsigned char *md, HASH_CTX *c) 491int
492RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c)
491{ 493{
492 unsigned char *p = (unsigned char *)c->data; 494 unsigned char *p = (unsigned char *)c->data;
493 size_t n = c->num; 495 size_t n = c->num;
@@ -495,14 +497,14 @@ int HASH_FINAL (unsigned char *md, HASH_CTX *c)
495 p[n] = 0x80; /* there is always room for one */ 497 p[n] = 0x80; /* there is always room for one */
496 n++; 498 n++;
497 499
498 if (n > (HASH_CBLOCK - 8)) { 500 if (n > (RIPEMD160_CBLOCK - 8)) {
499 memset (p + n, 0, HASH_CBLOCK - n); 501 memset(p + n, 0, RIPEMD160_CBLOCK - n);
500 n = 0; 502 n = 0;
501 HASH_BLOCK_DATA_ORDER (c, p, 1); 503 ripemd160_block_data_order(c, p, 1);
502 } 504 }
503 memset (p + n, 0, HASH_CBLOCK - 8 - n); 505 memset(p + n, 0, RIPEMD160_CBLOCK - 8 - n);
504 506
505 p += HASH_CBLOCK - 8; 507 p += RIPEMD160_CBLOCK - 8;
506#if defined(DATA_ORDER_IS_BIG_ENDIAN) 508#if defined(DATA_ORDER_IS_BIG_ENDIAN)
507 HOST_l2c(c->Nh, p); 509 HOST_l2c(c->Nh, p);
508 HOST_l2c(c->Nl, p); 510 HOST_l2c(c->Nl, p);
@@ -510,10 +512,10 @@ int HASH_FINAL (unsigned char *md, HASH_CTX *c)
510 HOST_l2c(c->Nl, p); 512 HOST_l2c(c->Nl, p);
511 HOST_l2c(c->Nh, p); 513 HOST_l2c(c->Nh, p);
512#endif 514#endif
513 p -= HASH_CBLOCK; 515 p -= RIPEMD160_CBLOCK;
514 HASH_BLOCK_DATA_ORDER (c, p, 1); 516 ripemd160_block_data_order(c, p, 1);
515 c->num = 0; 517 c->num = 0;
516 memset (p, 0, HASH_CBLOCK); 518 memset(p, 0, RIPEMD160_CBLOCK);
517 519
518#ifndef HASH_MAKE_STRING 520#ifndef HASH_MAKE_STRING
519#error "HASH_MAKE_STRING must be defined!" 521#error "HASH_MAKE_STRING must be defined!"