[openssh-commits] [openssh] branch master updated: upstream: move crypto_hash_sha512() to be inline in crypto_api.h, saves
git+noreply at mindrot.org
git+noreply at mindrot.org
Fri Oct 31 10:29:14 AEDT 2025
This is an automated email from the git hooks/post-receive script.
djm pushed a commit to branch master
in repository openssh.
The following commit(s) were added to refs/heads/master by this push:
new 94a78254a upstream: move crypto_hash_sha512() to be inline in crypto_api.h, saves
94a78254a is described below
commit 94a78254a1c953c2a55eb54f65a5d99873b54bdf
Author: djm at openbsd.org <djm at openbsd.org>
AuthorDate: Thu Oct 30 23:19:33 2025 +0000
upstream: move crypto_hash_sha512() to be inline in crypto_api.h, saves
about 0.5kb per binary and makes life easier for portable; with/ok dtucker@
OpenBSD-Commit-ID: 672d7390f78bb6581c12661d7f5adc8a9c6be564
---
.depend | 1 -
Makefile.in | 2 +-
crypto_api.h | 32 +++++++++++++++++++++++++++++---
hash.c | 43 -------------------------------------------
4 files changed, 30 insertions(+), 48 deletions(-)
diff --git a/.depend b/.depend
index cb8c28eac..1d1ec5212 100644
--- a/.depend
+++ b/.depend
@@ -59,7 +59,6 @@ groupaccess.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-c
gss-genr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpi [...]
gss-serv-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-w [...]
gss-serv.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpi [...]
-hash.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h [...]
hmac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h [...]
hostfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpi [...]
kex-names.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitp [...]
diff --git a/Makefile.in b/Makefile.in
index 35a6fb15e..a61d4f023 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -102,7 +102,7 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \
smult_curve25519_ref.o \
poly1305.o chacha.o cipher-chachapoly.o cipher-chachapoly-libcrypto.o \
ssh-ed25519.o digest-openssl.o digest-libc.o \
- hmac.o ed25519.o ed25519-openssl.o hash.o \
+ hmac.o ed25519.o ed25519-openssl.o \
kex.o kex-names.o kexdh.o kexgex.o kexecdh.o kexc25519.o \
kexgexc.o kexgexs.o \
kexsntrup761x25519.o kexmlkem768x25519.o sntrup761.o kexgen.o \
diff --git a/crypto_api.h b/crypto_api.h
index 693b67bbc..f5e38b547 100644
--- a/crypto_api.h
+++ b/crypto_api.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: crypto_api.h,v 1.9 2024/09/02 12:13:56 djm Exp $ */
+/* $OpenBSD: crypto_api.h,v 1.10 2025/10/30 23:19:33 djm Exp $ */
/*
* Assembled from generated headers and source files by Markus Friedl.
@@ -27,8 +27,34 @@ typedef uint64_t crypto_uint64;
#define crypto_hash_sha512_BYTES 64U
-int crypto_hash_sha512(unsigned char *, const unsigned char *,
- unsigned long long);
+#ifdef WITH_OPENSSL
+#include <openssl/evp.h>
+static inline int
+crypto_hash_sha512(unsigned char *out, const unsigned char *in,
+ unsigned long long inlen)
+{
+
+ if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL))
+ return -1;
+ return 0;
+}
+#else /* WITH_OPENSSL */
+# ifdef HAVE_SHA2_H
+# include <sha2.h>
+# endif
+static inline int
+crypto_hash_sha512(unsigned char *out, const unsigned char *in,
+ unsigned long long inlen)
+{
+
+ SHA2_CTX ctx;
+
+ SHA512Init(&ctx);
+ SHA512Update(&ctx, in, inlen);
+ SHA512Final(out, &ctx);
+ return 0;
+}
+#endif /* WITH_OPENSSL */
#define crypto_sign_ed25519_SECRETKEYBYTES 64U
#define crypto_sign_ed25519_PUBLICKEYBYTES 32U
diff --git a/hash.c b/hash.c
deleted file mode 100644
index b4f8f6c50..000000000
--- a/hash.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* $OpenBSD: hash.c,v 1.6 2019/11/29 00:11:21 djm Exp $ */
-/*
- * Public domain. Author: Christian Weisgerber <naddy at openbsd.org>
- * API compatible reimplementation of function from nacl
- */
-
-#include "includes.h"
-
-#include "crypto_api.h"
-
-#include <stdarg.h>
-
-#ifdef WITH_OPENSSL
-#include <openssl/evp.h>
-
-int
-crypto_hash_sha512(unsigned char *out, const unsigned char *in,
- unsigned long long inlen)
-{
-
- if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL))
- return -1;
- return 0;
-}
-
-#else
-# ifdef HAVE_SHA2_H
-# include <sha2.h>
-# endif
-
-int
-crypto_hash_sha512(unsigned char *out, const unsigned char *in,
- unsigned long long inlen)
-{
-
- SHA2_CTX ctx;
-
- SHA512Init(&ctx);
- SHA512Update(&ctx, in, inlen);
- SHA512Final(out, &ctx);
- return 0;
-}
-#endif /* WITH_OPENSSL */
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list