Skip to content

Commit

Permalink
wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity
Browse files Browse the repository at this point in the history
Prior to this commit, OpenSSL could be used for all these functions, but
not wolfSSL. This commit makes it so wolfSSL will be used if USE_WOLFSSL
is defined.

Closes #7806
  • Loading branch information
haydenroche5 authored and bagder committed Oct 2, 2021
1 parent 8bb5f4d commit e12dc2d
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 7 deletions.
4 changes: 2 additions & 2 deletions lib/curl_des.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 2015 - 2020, Steve Holme, <steve_holme@hotmail.com>.
* Copyright (C) 2015 - 2021, Steve Holme, <steve_holme@hotmail.com>.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
Expand All @@ -22,7 +22,7 @@

#include "curl_setup.h"

#if defined(USE_NTLM) && !defined(USE_OPENSSL)
#if defined(USE_NTLM) && !defined(USE_OPENSSL) && !defined(USE_WOLFSSL)

#include "curl_des.h"

Expand Down
9 changes: 8 additions & 1 deletion lib/curl_sha256.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* \___|\___/|_| \_\_____|
*
* Copyright (C) 2017, Florin Petriuc, <petriuc.florin@gmail.com>
* Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 2018 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
Expand All @@ -28,7 +28,14 @@

extern const struct HMAC_params Curl_HMAC_SHA256[1];

#ifdef USE_WOLFSSL
/* SHA256_DIGEST_LENGTH is an enum value in wolfSSL. Need to import it from
* sha.h*/
#include <wolfssl/options.h>
#include <openssl/sha.h>
#else
#define SHA256_DIGEST_LENGTH 32
#endif

void Curl_sha256it(unsigned char *outbuffer, const unsigned char *input,
const size_t len);
Expand Down
13 changes: 11 additions & 2 deletions lib/md4.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include "curl_md4.h"
#include "warnless.h"


#ifdef USE_OPENSSL
#include <openssl/opensslconf.h>
#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
Expand All @@ -35,6 +36,13 @@
#endif
#endif /* USE_OPENSSL */

#ifdef USE_WOLFSSL
#include <wolfssl/options.h>
#ifdef NO_MD4
#define OPENSSL_NO_MD4
#endif
#endif

#ifdef USE_MBEDTLS
#include <mbedtls/version.h>
#if MBEDTLS_VERSION_NUMBER >= 0x03000000
Expand Down Expand Up @@ -74,8 +82,9 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
md4_digest(ctx, MD4_DIGEST_SIZE, result);
}

#elif defined(USE_OPENSSL) && !defined(OPENSSL_NO_MD4)
/* When OpenSSL is available we use the MD4-functions from OpenSSL */
#elif (defined(USE_OPENSSL) || defined(USE_WOLFSSL)) && \
!defined(OPENSSL_NO_MD4)
/* When OpenSSL or wolfSSL is available, we use their MD4 functions. */
#include <openssl/md4.h>

#elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \
Expand Down
11 changes: 9 additions & 2 deletions lib/md5.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,19 @@ static void MD5_Final(unsigned char *digest, MD5_CTX *ctx)
md5_digest(ctx, 16, digest);
}

#elif defined(USE_OPENSSL) && !defined(USE_AMISSL)
/* When OpenSSL is available we use the MD5-function from OpenSSL */
#elif (defined(USE_OPENSSL) && !defined(USE_AMISSL)) || defined(USE_WOLFSSL)

#ifdef USE_WOLFSSL
#include <wolfssl/options.h>
#endif

#if defined(USE_OPENSSL) || (defined(USE_WOLFSSL) && !defined(NO_MD5))
/* When OpenSSL or wolfSSL is available, we use their MD5 functions. */
#include <openssl/md5.h>
#include "curl_memory.h"
/* The last #include file should be: */
#include "memdebug.h"
#endif

#elif defined(USE_MBEDTLS)

Expand Down
7 changes: 7 additions & 0 deletions lib/sha256.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@
#include "curl_sha256.h"
#include "curl_hmac.h"

#ifdef USE_WOLFSSL
#include <wolfssl/options.h>
#ifndef NO_SHA256
#define USE_OPENSSL_SHA256
#endif
#endif

#if defined(USE_OPENSSL)

#include <openssl/opensslv.h>
Expand Down

0 comments on commit e12dc2d

Please sign in to comment.