← Commit list

988b352f91

Viktor Szakats
Viktor Szakats
2026-03-24
SUCCESS Duration: 249s

Subject

sha256: support delegating to wolfSSL API

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/sha256.c+32 -4
@@ -40,32 +40,51 @@
/* Please keep the SSL backend-specific #if branches in this order:
*
* 1. USE_OPENSSL
- * 2. USE_GNUTLS
- * 3. USE_MBEDTLS
- * 4. USE_COMMON_CRYPTO
- * 5. USE_WIN32_CRYPTO
+ * 2. USE_WOLFSSL
+ * 3. USE_GNUTLS
+ * 4. USE_MBEDTLS
+ * 5. USE_COMMON_CRYPTO
+ * 6. USE_WIN32_CRYPTO
*
* This ensures that the same SSL branch gets activated throughout this source
* file even if multiple backends are enabled at the same time.
*/
+#if defined(USE_OPENSSL) || defined(USE_WOLFSSL)
#ifdef USE_OPENSSL
#include <openssl/evp.h>
+#else
+#include <wolfssl/options.h>
+#include <wolfssl/openssl/evp.h>
+#endif
struct ossl_sha256_ctx {
+#ifdef USE_OPENSSL
EVP_MD_CTX *openssl_ctx;
+#else
+ WOLFSSL_EVP_MD_CTX *openssl_ctx;
+#endif
};
typedef struct ossl_sha256_ctx my_sha256_ctx;
static CURLcode my_sha256_init(void *in)
{
my_sha256_ctx *ctx = (my_sha256_ctx *)in;
+#ifdef USE_OPENSSL
ctx->openssl_ctx = EVP_MD_CTX_create();
+#else
+ ctx->openssl_ctx = wolfSSL_EVP_MD_CTX_new();
+#endif
if(!ctx->openssl_ctx)
return CURLE_OUT_OF_MEMORY;
+#ifdef USE_OPENSSL
if(!EVP_DigestInit_ex(ctx->openssl_ctx, EVP_sha256(), NULL)) {
EVP_MD_CTX_destroy(ctx->openssl_ctx);
+#else
+ if(!wolfSSL_EVP_DigestInit_ex(ctx->openssl_ctx, EVP_sha256(), NULL)) {
+ wolfSSL_EVP_MD_CTX_free(ctx->openssl_ctx);
+#endif
return CURLE_FAILED_INIT;
}
return CURLE_OK;
@@ -76,14 +95,23 @@ static void my_sha256_update(void *in,
unsigned int length)
{
my_sha256_ctx *ctx = (my_sha256_ctx *)in;
+#ifdef USE_OPENSSL
EVP_DigestUpdate(ctx->openssl_ctx, data, length);
+#else
+ wolfSSL_EVP_DigestUpdate(ctx->openssl_ctx, data, length);
+#endif
}
static void my_sha256_final(unsigned char *digest, void *in)
{
my_sha256_ctx *ctx = (my_sha256_ctx *)in;
+#ifdef USE_OPENSSL
EVP_DigestFinal_ex(ctx->openssl_ctx, digest, NULL);
EVP_MD_CTX_destroy(ctx->openssl_ctx);
+#else
+ wolfSSL_EVP_DigestFinal_ex(ctx->openssl_ctx, digest, NULL);
+ wolfSSL_EVP_MD_CTX_free(ctx->openssl_ctx);
+#endif
}
#elif defined(USE_GNUTLS)