]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
sha256: Added GNU TLS Nettle implementation
authorSteve Holme <steve_holme@hotmail.com>
Thu, 20 Feb 2020 01:25:27 +0000 (01:25 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Tue, 3 Mar 2020 00:37:17 +0000 (00:37 +0000)
lib/sha256.c

index 656f9894a1c125304809eaafb13b2879d503c1db..aa227411720b7d71ffd3c4c6126aaa03fbb4b368 100644 (file)
 
 #endif
 
-#ifdef USE_OPENSSL_SHA256
+#if defined(USE_OPENSSL_SHA256)
+
 /* When OpenSSL is available we use the SHA256-function from OpenSSL */
 #include <openssl/sha.h>
+
+#elif defined(USE_GNUTLS_NETTLE)
+
+#include <nettle/sha.h>
+
+#include "curl_memory.h"
+
+/* The last #include file should be: */
+#include "memdebug.h"
+
+typedef struct sha256_ctx SHA256_CTX;
+
+static void SHA256_Init(SHA256_CTX *ctx)
+{
+  sha256_init(ctx);
+}
+
+static void SHA256_Update(SHA256_CTX *ctx,
+                          const unsigned char *data,
+                          unsigned int length)
+{
+  sha256_update(ctx, length, data);
+}
+
+static void SHA256_Final(unsigned char *digest, SHA256_CTX *ctx)
+{
+  sha256_digest(ctx, SHA256_DIGEST_SIZE, digest);
+}
+
 #else
 
 /* When no other crypto library is available we use this code segment */