git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC PATCH 11/12] hash: add an SHA-256 implementation using OpenSSL

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Aug 29, 2018, 00:58 UTC
Message-ID
<20180829005857.980820-12-sandals@crustytoothpaste.net>
In-Reply-To
<20180829005857.980820-1-sandals@crustytoothpaste.net>

We already have OpenSSL routines available for SHA-1, so add routines for SHA-256 as well.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 Makefile | 7 +++++++
 hash.h   | 2 ++
 2 files changed, 9 insertions(+)
diff --git a/Makefile b/Makefile
index 86867af083..8b7df4dfc5 100644
--- a/Makefile
+++ b/Makefile
@@ -183,6 +183,8 @@ all::
 #
 # Define GCRYPT_SHA256 to use the SHA-256 routines in libgcrypt.
 #
+# Define OPENSSL_SHA256 to use the SHA-256 routines in OpenSSL.
+#
 # Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin).
 #
 # Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
@@ -1628,6 +1630,10 @@ endif
 endif
 endif
 
+ifdef OPENSSL_SHA256
+	EXTLIBS += $(LIB_4_CRYPTO)
+	BASIC_CFLAGS += -DSHA256_OPENSSL
+else
 ifdef GCRYPT_SHA256
 	BASIC_CFLAGS += -DSHA256_GCRYPT
 	EXTLIBS += -lgcrypt
@@ -1635,6 +1641,7 @@ else
 	LIB_OBJS += sha256/block/sha256.o
 	BASIC_CFLAGS += -DSHA256_BLK
 endif
+endif
 
 ifdef SHA1_MAX_BLOCK_SIZE
 	LIB_OBJS += compat/sha1-chunked.o
diff --git a/hash.h b/hash.h
index 9df562f2f6..9df06d56b4 100644
--- a/hash.h
+++ b/hash.h
@@ -17,6 +17,8 @@
 
 #if defined(SHA256_GCRYPT)
 #include "sha256/gcrypt.h"
+#elif defined(SHA256_OPENSSL)
+#include <openssl/sha.h>
 #else
 #include "sha256/block/sha256.h"
 #endif
Previous: brian m. carlsonNext: brian m. carlson
Message 19 of 24 in “Base SHA-256 algorithm implementation”
  1. 00/12 Base SHA-256 algorithm implementationbrian m. carlson, Aug 29, 2018
  2. 01/12 sha1-file: rename algorithm to "sha1"brian m. carlson, Aug 29, 2018
  3. 03/12 hex: introduce functions to print arbitrary hashesbrian m. carlson, Aug 29, 2018
  4. 04/12 t: add basic tests for our SHA-1 implementationbrian m. carlson, Aug 29, 2018
  5. 05/12 t: make the sha1 test-tool helper genericbrian m. carlson, Aug 29, 2018
  6. 07/12 t/helper: add a test helper to compute hash speedbrian m. carlson, Aug 29, 2018
  7. 06/12 sha1-file: add a constant for hash block sizebrian m. carlson, Aug 29, 2018
  8. 08/12 commit-graph: convert to using the_hash_algobrian m. carlson, Aug 29, 2018
  9. Derrick StoleeAug 29, 2018
  10. brian m. carlsonAug 30, 2018
  11. brian m. carlsonSep 3, 2018
  12. 09/12 Add a base implementation of SHA-256 supportbrian m. carlson, Aug 29, 2018
  13. Ævar Arnfjörð BjarmasonAug 29, 2018
  14. brian m. carlsonAug 29, 2018
  15. Derrick StoleeAug 29, 2018
  16. 10/12 sha256: add an SHA-256 implementation using libgcryptbrian m. carlson, Aug 29, 2018
  17. Ævar Arnfjörð BjarmasonAug 29, 2018
  18. brian m. carlsonAug 29, 2018
  19. 11/12 hash: add an SHA-256 implementation using OpenSSLbrian m. carlson, Aug 29, 2018
  20. 12/12 commit-graph: specify OID version for SHA-256brian m. carlson, Aug 29, 2018
  21. 02/12 sha1-file: provide functions to look up hash algorithmsbrian m. carlson, Aug 29, 2018
  22. Ævar Arnfjörð BjarmasonAug 29, 2018
  23. brian m. carlsonAug 30, 2018
  24. brian m. carlsonAug 30, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.