diff options
Diffstat (limited to 'lib/md4.c')
-rw-r--r-- | lib/md4.c | 53 |
1 files changed, 46 insertions, 7 deletions
@@ -180,6 +180,48 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx) CryptReleaseContext(ctx->hCryptProv, 0); } +#elif(defined(USE_MBEDTLS) && defined(MBEDTLS_MD4_C)) + +#include <mbedtls/md4.h> + +#include "curl_md4.h" +#include "warnless.h" +#include "curl_memory.h" +/* The last #include file should be: */ +#include "memdebug.h" + +typedef struct { + void *data; + unsigned long size; +} MD4_CTX; + +static void MD4_Init(MD4_CTX *ctx) +{ + ctx->data = NULL; + ctx->size = 0; +} + +static void MD4_Update(MD4_CTX *ctx, const void *data, unsigned long size) +{ + if(ctx->data == NULL) { + ctx->data = malloc(size); + if(ctx->data != NULL) { + memcpy(ctx->data, data, size); + ctx->size = size; + } + } +} + +static void MD4_Final(unsigned char *result, MD4_CTX *ctx) +{ + if(ctx->data != NULL) { + mbedtls_md4(ctx->data, ctx->size, result); + + Curl_safefree(ctx->data); + ctx->size = 0; + } +} + #elif defined(USE_NSS) || defined(USE_OS400CRYPTO) || \ (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \ (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C)) @@ -479,9 +521,7 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx) #if defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) || \ defined(USE_OPENSSL) || defined(USE_SECTRANSP) || \ defined(USE_WIN32_CRYPTO) || defined(USE_NSS) || \ - defined(USE_OS400CRYPTO) || \ - (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \ - (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C)) + defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS) void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len) { @@ -492,7 +532,6 @@ void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len) } #endif /* defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) || - defined(USE_OPENSSL) || defined(USE_SECTRANSP) || \ - defined(USE_WIN32_CRYPTO) || defined(USE_NSS) || \ - defined(USE_OS400CRYPTO) || \ - (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C)) */ + defined(USE_OPENSSL) || defined(USE_SECTRANSP) || + defined(USE_WIN32_CRYPTO) || defined(USE_NSS) || + defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS) */ |