← Commit list

bf6a34d8eb

Viktor Szakats
Viktor Szakats
2026-03-25
SUCCESS Duration: 278s

Subject

md4, md5: switch to wolfCrypt API in wolfSSL builds

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/md4.c+58 -38
@@ -44,19 +44,41 @@
/* When OpenSSL or wolfSSL is available, we use their MD4 functions. */
-#if defined(USE_WOLFSSL) && !defined(NO_MD4)
-#include <wolfssl/openssl/md4.h>
-#define VOID_MD4_INIT
-
-#ifdef OPENSSL_COEXIST
-# define MD4_CTX WOLFSSL_MD4_CTX
-# define MD4_Init wolfSSL_MD4_Init
-# define MD4_Update wolfSSL_MD4_Update
-# define MD4_Final wolfSSL_MD4_Final
+#if defined(USE_OPENSSL) && !defined(OPENSSL_NO_MD4)
+#include <openssl/md4.h>
+
+/* Map directly to OpenSSL implementation */
+#define my_md4_ctx MD4_CTX
+#define my_md4_init MD4_Init
+#define my_md4_update MD4_Update
+#define my_md4_final MD4_Final
+
+#elif defined(USE_WOLFSSL) && !defined(NO_MD4)
+#include <wolfssl/wolfcrypt/md4.h>
+#include <wolfssl/version.h>
+
+#if LIBWOLFSSL_VERSION_HEX >= 0x05007006
+typedef wc_Md4 my_md4_ctx;
+#else
+typedef Md4 my_md4_ctx;
#endif
-#elif defined(USE_OPENSSL) && !defined(OPENSSL_NO_MD4)
-#include <openssl/md4.h>
+static int my_md4_init(my_md4_ctx *ctx)
+{
+ wc_InitMd4(ctx);
+ return 1;
+}
+
+static void my_md4_update(my_md4_ctx *ctx,
+ const void *input, unsigned long len)
+{
+ wc_Md4Update(ctx, input, (word32)len);
+}
+
+static void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
+{
+ wc_Md4Final(ctx, digest);
+}
#elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \
(__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040) && \
@@ -68,19 +90,20 @@
(__IPHONE_OS_VERSION_MIN_REQUIRED < 130000))
#include <CommonCrypto/CommonDigest.h>
-typedef CC_MD4_CTX MD4_CTX;
+typedef CC_MD4_CTX my_md4_ctx;
-static int MD4_Init(MD4_CTX *ctx)
+static int my_md4_init(my_md4_ctx *ctx)
{
return CC_MD4_Init(ctx);
}
-static void MD4_Update(MD4_CTX *ctx, const void *input, unsigned long len)
+static void my_md4_update(my_md4_ctx *ctx,
+ const void *input, unsigned long len)
{
(void)CC_MD4_Update(ctx, input, (CC_LONG)len);
}
-static void MD4_Final(unsigned char *digest, MD4_CTX *ctx)
+static void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
{
(void)CC_MD4_Final(digest, ctx);
}
@@ -92,9 +115,9 @@ struct md4_ctx {
HCRYPTPROV hCryptProv;
HCRYPTHASH hHash;
};
-typedef struct md4_ctx MD4_CTX;
+typedef struct md4_ctx my_md4_ctx;
-static int MD4_Init(MD4_CTX *ctx)
+static int my_md4_init(my_md4_ctx *ctx)
{
ctx->hCryptProv = 0;
ctx->hHash = 0;
@@ -112,12 +135,13 @@ static int MD4_Init(MD4_CTX *ctx)
return 1;
}
-static void MD4_Update(MD4_CTX *ctx, const void *input, unsigned long len)
+static void my_md4_update(my_md4_ctx *ctx,
+ const void *input, unsigned long len)
{
CryptHashData(ctx->hHash, (const BYTE *)input, (unsigned int)len, 0);
}
-static void MD4_Final(unsigned char *digest, MD4_CTX *ctx)
+static void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
{
unsigned long length = 0;
@@ -135,20 +159,21 @@ static void MD4_Final(unsigned char *digest, MD4_CTX *ctx)
#elif defined(USE_GNUTLS)
#include <nettle/md4.h>
-typedef struct md4_ctx MD4_CTX;
+typedef struct md4_ctx my_md4_ctx;
-static int MD4_Init(MD4_CTX *ctx)
+static int my_md4_init(my_md4_ctx *ctx)
{
md4_init(ctx);
return 1;
}
-static void MD4_Update(MD4_CTX *ctx, const void *input, unsigned long len)
+static void my_md4_update(my_md4_ctx *ctx,
+ const void *input, unsigned long len)
{
md4_update(ctx, len, input);
}
-static void MD4_Final(unsigned char *digest, MD4_CTX *ctx)
+static void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
{
md4_digest(ctx, MD4_DIGEST_SIZE, digest);
}
@@ -187,7 +212,7 @@ struct md4_ctx {
unsigned char buffer[64];
uint32_t block[16];
};
-typedef struct md4_ctx MD4_CTX;
+typedef struct md4_ctx my_md4_ctx;
/*
* The basic MD4 functions.
@@ -229,7 +254,7 @@ typedef struct md4_ctx MD4_CTX;
* This processes one or more 64-byte data blocks, but does NOT update
* the bit counters. There are no alignment requirements.
*/
-static const void *my_md4_body(MD4_CTX *ctx,
+static const void *my_md4_body(my_md4_ctx *ctx,
const void *input, unsigned long size)
{
const unsigned char *ptr;
@@ -320,7 +345,7 @@ static const void *my_md4_body(MD4_CTX *ctx,
return ptr;
}
-static int MD4_Init(MD4_CTX *ctx)
+static int my_md4_init(my_md4_ctx *ctx)
{
ctx->a = 0x67452301;
ctx->b = 0xefcdab89;
@@ -333,7 +358,8 @@ static int MD4_Init(MD4_CTX *ctx)
return 1;
}
-static void MD4_Update(MD4_CTX *ctx, const void *input, unsigned long len)
+static void my_md4_update(my_md4_ctx *ctx,
+ const void *input, unsigned long len)
{
uint32_t saved_lo;
unsigned long used;
@@ -368,7 +394,7 @@ static void MD4_Update(MD4_CTX *ctx, const void *input, unsigned long len)
memcpy(ctx->buffer, input, len);
}
-static void MD4_Final(unsigned char *digest, MD4_CTX *ctx)
+static void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
{
unsigned long used, available;
@@ -424,17 +450,11 @@ static void MD4_Final(unsigned char *digest, MD4_CTX *ctx)
CURLcode Curl_md4it(unsigned char *output,
const unsigned char *input, const size_t len)
{
- MD4_CTX ctx;
-
-#ifdef VOID_MD4_INIT
- MD4_Init(&ctx);
-#else
- if(!MD4_Init(&ctx))
+ my_md4_ctx ctx;
+ if(!my_md4_init(&ctx))
return CURLE_FAILED_INIT;
-#endif
-
- MD4_Update(&ctx, input, curlx_uztoui(len));
- MD4_Final(output, &ctx);
+ my_md4_update(&ctx, input, curlx_uztoui(len));
+ my_md4_final(output, &ctx);
return CURLE_OK;
}
lib/md5.c+7 -13
@@ -67,14 +67,9 @@ static void my_md5_final(unsigned char *digest, void *ctx)
md5_digest(ctx, 16, digest);
}
-#elif (defined(USE_OPENSSL) && \
- !defined(OPENSSL_NO_MD5) && !defined(OPENSSL_NO_DEPRECATED_3_0)) || \
- (defined(USE_WOLFSSL) && !defined(NO_MD5) && !defined(OPENSSL_COEXIST))
-#ifdef USE_OPENSSL
+#elif defined(USE_OPENSSL) && \
+ !defined(OPENSSL_NO_MD5) && !defined(OPENSSL_NO_DEPRECATED_3_0)
#include <openssl/md5.h>
-#else
-#include <wolfssl/openssl/md5.h>
-#endif
typedef MD5_CTX my_md5_ctx;
@@ -98,27 +93,26 @@ static void my_md5_final(unsigned char *digest, void *ctx)
}
#elif defined(USE_WOLFSSL) && !defined(NO_MD5)
-#include <wolfssl/openssl/md5.h>
+#include <wolfssl/wolfcrypt/md5.h>
-typedef WOLFSSL_MD5_CTX my_md5_ctx;
+typedef wc_Md5 my_md5_ctx;
static CURLcode my_md5_init(void *ctx)
{
- if(!wolfSSL_MD5_Init(ctx))
+ if(wc_InitMd5(ctx))
return CURLE_OUT_OF_MEMORY;
-
return CURLE_OK;
}
static void my_md5_update(void *ctx,
const unsigned char *input, unsigned int len)
{
- (void)wolfSSL_MD5_Update(ctx, input, len);
+ (void)wc_Md5Update(ctx, input, (word32)len);
}
static void my_md5_final(unsigned char *digest, void *ctx)
{
- (void)wolfSSL_MD5_Final(digest, ctx);
+ (void)wc_Md5Final(ctx, digest);
}
#elif defined(USE_MBEDTLS) && \