summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/sha/sha512.c
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/sha/sha512.c
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/sha/sha512.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/lib/libcrypto/sha/sha512.c b/src/lib/libcrypto/sha/sha512.c
index 360a5c29fb..7a2a40d3df 100644
--- a/src/lib/libcrypto/sha/sha512.c
+++ b/src/lib/libcrypto/sha/sha512.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sha512.c,v 1.41 2023/07/08 12:24:10 beck Exp $ */ 1/* $OpenBSD: sha512.c,v 1.42 2024/06/01 07:36:16 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -345,10 +345,6 @@ unsigned char *
345SHA384(const unsigned char *d, size_t n, unsigned char *md) 345SHA384(const unsigned char *d, size_t n, unsigned char *md)
346{ 346{
347 SHA512_CTX c; 347 SHA512_CTX c;
348 static unsigned char m[SHA384_DIGEST_LENGTH];
349
350 if (md == NULL)
351 md = m;
352 348
353 SHA384_Init(&c); 349 SHA384_Init(&c);
354 SHA512_Update(&c, d, n); 350 SHA512_Update(&c, d, n);
@@ -498,10 +494,6 @@ unsigned char *
498SHA512(const unsigned char *d, size_t n, unsigned char *md) 494SHA512(const unsigned char *d, size_t n, unsigned char *md)
499{ 495{
500 SHA512_CTX c; 496 SHA512_CTX c;
501 static unsigned char m[SHA512_DIGEST_LENGTH];
502
503 if (md == NULL)
504 md = m;
505 497
506 SHA512_Init(&c); 498 SHA512_Init(&c);
507 SHA512_Update(&c, d, n); 499 SHA512_Update(&c, d, n);