mirror of
https://github.com/curl/curl.git
synced 2025-01-18 14:04:30 +08:00
md5: Added implementation for mbedTLS
Reviewed-by: Jay Satiro Closes #4980
This commit is contained in:
parent
5aea558dc8
commit
1d421de9a1
50
lib/md5.c
50
lib/md5.c
@ -30,6 +30,14 @@
|
||||
#include "curl_hmac.h"
|
||||
#include "warnless.h"
|
||||
|
||||
#ifdef USE_MBEDTLS
|
||||
#include <mbedtls/version.h>
|
||||
|
||||
#if(MBEDTLS_VERSION_NUMBER >= 0x02070000)
|
||||
#define HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS
|
||||
#endif
|
||||
#endif /* USE_MBEDTLS */
|
||||
|
||||
#if defined(USE_GNUTLS_NETTLE)
|
||||
|
||||
#include <nettle/md5.h>
|
||||
@ -90,6 +98,46 @@ static void MD5_Final(unsigned char *digest, MD5_CTX *ctx)
|
||||
/* The last #include file should be: */
|
||||
#include "memdebug.h"
|
||||
|
||||
#elif defined(USE_MBEDTLS)
|
||||
|
||||
#include <mbedtls/md5.h>
|
||||
|
||||
#include "curl_memory.h"
|
||||
|
||||
/* The last #include file should be: */
|
||||
#include "memdebug.h"
|
||||
|
||||
typedef mbedtls_md5_context MD5_CTX;
|
||||
|
||||
static void MD5_Init(MD5_CTX *ctx)
|
||||
{
|
||||
#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
|
||||
mbedtls_md5_starts(ctx);
|
||||
#else
|
||||
(void) mbedtls_md5_starts_ret(ctx);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void MD5_Update(MD5_CTX *ctx,
|
||||
const unsigned char *data,
|
||||
unsigned int length)
|
||||
{
|
||||
#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
|
||||
mbedtls_md5_update(ctx, data, length);
|
||||
#else
|
||||
(void) mbedtls_md5_update_ret(ctx, data, length);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void MD5_Final(unsigned char *digest, MD5_CTX *ctx)
|
||||
{
|
||||
#if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS)
|
||||
mbedtls_md5_finish(ctx, digest);
|
||||
#else
|
||||
(void) mbedtls_md5_finish_ret(ctx, digest);
|
||||
#endif
|
||||
}
|
||||
|
||||
#elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \
|
||||
(__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \
|
||||
(defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \
|
||||
@ -164,7 +212,9 @@ static void MD5_Final(unsigned char *digest, MD5_CTX *ctx)
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* When no other crypto library is available we use this code segment */
|
||||
|
||||
/*
|
||||
* This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
|
||||
* MD5 Message-Digest Algorithm (RFC 1321).
|
||||
|
Loading…
Reference in New Issue
Block a user