summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/crypto_internal.h12
-rw-r--r--src/lib/libcrypto/md5/md5.c12
-rw-r--r--src/lib/libcrypto/md5/md5.h13
3 files changed, 18 insertions, 19 deletions
diff --git a/src/lib/libcrypto/crypto_internal.h b/src/lib/libcrypto/crypto_internal.h
index c5de5b7b51..09ae7fa466 100644
--- a/src/lib/libcrypto/crypto_internal.h
+++ b/src/lib/libcrypto/crypto_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: crypto_internal.h,v 1.14 2024/11/08 14:05:43 jsing Exp $ */ 1/* $OpenBSD: crypto_internal.h,v 1.15 2025/01/19 07:51:41 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -256,6 +256,16 @@ crypto_store_htole32(uint8_t *dst, uint32_t v)
256} 256}
257#endif 257#endif
258 258
259#ifndef HAVE_CRYPTO_ADD_U32DW_U64
260static inline void
261crypto_add_u32dw_u64(uint32_t *h, uint32_t *l, uint64_t v)
262{
263 v += ((uint64_t)*h << 32) | *l;
264 *h = v >> 32;
265 *l = v;
266}
267#endif
268
259#ifndef HAVE_CRYPTO_ROL_U32 269#ifndef HAVE_CRYPTO_ROL_U32
260static inline uint32_t 270static inline uint32_t
261crypto_rol_u32(uint32_t v, size_t shift) 271crypto_rol_u32(uint32_t v, size_t shift)
diff --git a/src/lib/libcrypto/md5/md5.c b/src/lib/libcrypto/md5/md5.c
index 744c66f005..3bc558f0f2 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.23 2024/06/01 07:36:16 tb Exp $ */ 1/* $OpenBSD: md5.c,v 1.24 2025/01/19 07:51:41 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 *
@@ -278,19 +278,13 @@ MD5_Update(MD5_CTX *c, const void *data_, size_t len)
278{ 278{
279 const unsigned char *data = data_; 279 const unsigned char *data = data_;
280 unsigned char *p; 280 unsigned char *p;
281 MD5_LONG l;
282 size_t n; 281 size_t n;
283 282
284 if (len == 0) 283 if (len == 0)
285 return 1; 284 return 1;
286 285
287 l = (c->Nl + (((MD5_LONG)len) << 3))&0xffffffffUL; 286 /* Update message bit counter. */
288 /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to 287 crypto_add_u32dw_u64(&c->Nh, &c->Nl, (uint64_t)len << 3);
289 * Wei Dai <weidai@eskimo.com> for pointing it out. */
290 if (l < c->Nl) /* overflow */
291 c->Nh++;
292 c->Nh+=(MD5_LONG)(len>>29); /* might cause compiler warning on 16-bit */
293 c->Nl = l;
294 288
295 n = c->num; 289 n = c->num;
296 if (n != 0) { 290 if (n != 0) {
diff --git a/src/lib/libcrypto/md5/md5.h b/src/lib/libcrypto/md5/md5.h
index a3529f486d..99e71783b9 100644
--- a/src/lib/libcrypto/md5/md5.h
+++ b/src/lib/libcrypto/md5/md5.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: md5.h,v 1.23 2024/06/01 07:44:11 tb Exp $ */ 1/* $OpenBSD: md5.h,v 1.24 2025/01/19 07:51:41 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 *
@@ -60,12 +60,13 @@
60 60
61#ifndef HEADER_MD5_H 61#ifndef HEADER_MD5_H
62#define HEADER_MD5_H 62#define HEADER_MD5_H
63
64#include <openssl/opensslconf.h>
65
63#if !defined(HAVE_ATTRIBUTE__BOUNDED__) && !defined(__OpenBSD__) 66#if !defined(HAVE_ATTRIBUTE__BOUNDED__) && !defined(__OpenBSD__)
64#define __bounded__(x, y, z) 67#define __bounded__(x, y, z)
65#endif 68#endif
66 69
67#include <openssl/opensslconf.h>
68
69#ifdef __cplusplus 70#ifdef __cplusplus
70extern "C" { 71extern "C" {
71#endif 72#endif
@@ -74,12 +75,6 @@ extern "C" {
74#error MD5 is disabled. 75#error MD5 is disabled.
75#endif 76#endif
76 77
77/*
78 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
79 * ! MD5_LONG has to be at least 32 bits wide. !
80 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
81 */
82
83#define MD5_LONG unsigned int 78#define MD5_LONG unsigned int
84 79
85#define MD5_CBLOCK 64 80#define MD5_CBLOCK 64