From b6077f1a28e4087c661209654a7fc1deabd9067b Mon Sep 17 00:00:00 2001 From: jsing <> Date: Sat, 9 May 2026 07:08:43 +0000 Subject: Use crypto_add_u32dw_u64() to increment SHA-256 message bit counter. ok kenjiro@ tb@ --- src/lib/libcrypto/sha/sha256.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/lib/libcrypto') diff --git a/src/lib/libcrypto/sha/sha256.c b/src/lib/libcrypto/sha/sha256.c index f60073bf76..f03475e86d 100644 --- a/src/lib/libcrypto/sha/sha256.c +++ b/src/lib/libcrypto/sha/sha256.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sha256.c,v 1.34 2026/04/25 05:47:03 jsing Exp $ */ +/* $OpenBSD: sha256.c,v 1.35 2026/05/09 07:08:43 jsing Exp $ */ /* ==================================================================== * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. * @@ -365,19 +365,13 @@ SHA256_Update(SHA256_CTX *c, const void *data_, size_t len) { const unsigned char *data = data_; unsigned char *p; - SHA_LONG l; size_t n; if (len == 0) return 1; - l = (c->Nl + (((SHA_LONG)len) << 3)) & 0xffffffffUL; - /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to - * Wei Dai for pointing it out. */ - if (l < c->Nl) /* overflow */ - c->Nh++; - c->Nh += (SHA_LONG)(len >> 29); /* might cause compiler warning on 16-bit */ - c->Nl = l; + /* Update message bit counter. */ + crypto_add_u32dw_u64(&c->Nh, &c->Nl, (uint64_t)len << 3); n = c->num; if (n != 0) { -- cgit v1.2.3-55-g6feb