diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/crypto_internal.h | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/md5/md5.c | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/md5/md5.h | 13 |
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 | ||
260 | static inline void | ||
261 | crypto_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 |
260 | static inline uint32_t | 270 | static inline uint32_t |
261 | crypto_rol_u32(uint32_t v, size_t shift) | 271 | crypto_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 |
70 | extern "C" { | 71 | extern "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 |