diff options
author | Michał Górny <mgorny@gentoo.org> | 2014-06-15 17:35:49 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-06-17 00:42:53 +0200 |
commit | c3c4fd267137a666606562c9e34a26cbc3b9a56a (patch) | |
tree | 620c2ab1b473dd1caefa05ccd61e210842ad06cd /src | |
parent | b56dff79add04a1de2e07a3cf58114cd4e76cc4c (diff) | |
download | curl-c3c4fd267137a666606562c9e34a26cbc3b9a56a.tar.gz |
tool_metalink: Support polarssl as digest provider
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_metalink.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/tool_metalink.c b/src/tool_metalink.c index cd8df41f9..3573b058b 100644 --- a/src/tool_metalink.c +++ b/src/tool_metalink.c @@ -55,6 +55,13 @@ # define SHA_CTX void * # define SHA256_CTX void * static NSSInitContext *nss_context; +#elif defined(USE_POLARSSL) +# include <polarssl/md5.h> +# include <polarssl/sha1.h> +# include <polarssl/sha256.h> +# define MD5_CTX md5_context +# define SHA_CTX sha1_context +# define SHA256_CTX sha256_context #elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \ (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \ (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \ @@ -318,6 +325,62 @@ static void SHA256_Final(unsigned char digest[32], SHA256_CTX *pctx) nss_hash_final(pctx, digest, 32); } +#elif defined(USE_POLARSSL) + +static int MD5_Init(MD5_CTX *ctx) +{ + md5_starts(ctx); + return 1; +} + +static void MD5_Update(MD5_CTX *ctx, + const unsigned char *input, + unsigned int inputLen) +{ + md5_update(ctx, input, inputLen); +} + +static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx) +{ + md5_finish(ctx, digest); +} + +static int SHA1_Init(SHA_CTX *ctx) +{ + sha1_starts(ctx); + return 1; +} + +static void SHA1_Update(SHA_CTX *ctx, + const unsigned char *input, + unsigned int inputLen) +{ + sha1_update(ctx, input, inputLen); +} + +static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx) +{ + sha1_finish(ctx, digest); +} + +static int SHA256_Init(SHA256_CTX *ctx) +{ + sha256_starts(ctx, 0); /* 0 = sha256 */ + return 1; +} + +static void SHA256_Update(SHA256_CTX *ctx, + const unsigned char *input, + unsigned int inputLen) +{ + sha256_update(ctx, input, inputLen); +} + +static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx) +{ + sha256_finish(ctx, digest); +} + #elif defined(_WIN32) && !defined(USE_SSLEAY) static void win32_crypto_final(struct win32_crypto_hash *ctx, |