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) | |
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, | 
