summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/md4/md4.h
diff options
context:
space:
mode:
authortb <>2024-06-01 07:36:17 +0000
committertb <>2024-06-01 07:36:17 +0000
commitf3bc6c83f92ef9b23bfc523ef1b24bfa27e1f6e4 (patch)
treed92a9fa364845580193b9ab3f5f391408342fa26 /src/lib/libcrypto/md4/md4.h
parentaee2754cfbb89d3dff4c3a521fb027d0c6967bc9 (diff)
downloadopenbsd-f3bc6c83f92ef9b23bfc523ef1b24bfa27e1f6e4.tar.gz
openbsd-f3bc6c83f92ef9b23bfc523ef1b24bfa27e1f6e4.tar.bz2
openbsd-f3bc6c83f92ef9b23bfc523ef1b24bfa27e1f6e4.zip
Remove support for static buffers in HMAC/digests
HMAC() and the one-step digests used to support passing a NULL buffer and would return the digest in a static buffer. This design is firmly from the nineties, not thread safe and it saves callers a single line. The few ports that used to rely this were fixed with patches sent to non-hostile (and non-dead) upstreams. It's early enough in the release cycle that remaining uses hidden from the compiler should be caught, at least the ones that matter. There won't be that many since BoringSSL removed this feature in 2017. https://boringssl-review.googlesource.com/14528 Add non-null attributes to the headers and add a few missing bounded attributes. ok beck jsing
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/md4/md4.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/libcrypto/md4/md4.h b/src/lib/libcrypto/md4/md4.h
index cb4f3cb6e9..bf4313b345 100644
--- a/src/lib/libcrypto/md4/md4.h
+++ b/src/lib/libcrypto/md4/md4.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: md4.h,v 1.17 2023/07/08 06:47:26 jsing Exp $ */ 1/* $OpenBSD: md4.h,v 1.18 2024/06/01 07:36:16 tb 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 *
@@ -92,8 +92,11 @@ typedef struct MD4state_st {
92 92
93int MD4_Init(MD4_CTX *c); 93int MD4_Init(MD4_CTX *c);
94int MD4_Update(MD4_CTX *c, const void *data, size_t len); 94int MD4_Update(MD4_CTX *c, const void *data, size_t len);
95 __attribute__ ((__bounded__(__buffer__, 2, 3)));
95int MD4_Final(unsigned char *md, MD4_CTX *c); 96int MD4_Final(unsigned char *md, MD4_CTX *c);
96unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); 97unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md);
98 __attribute__ ((__nonnull__(3)))
99 __attribute__ ((__bounded__(__buffer__, 1, 2)));
97void MD4_Transform(MD4_CTX *c, const unsigned char *b); 100void MD4_Transform(MD4_CTX *c, const unsigned char *b);
98#ifdef __cplusplus 101#ifdef __cplusplus
99} 102}