diff options
author | dartraiden <wowemuh@gmail.com> | 2022-01-05 22:24:16 +0300 |
---|---|---|
committer | dartraiden <wowemuh@gmail.com> | 2022-01-05 22:24:16 +0300 |
commit | 09d65829ae970930c6942a6c06058e584f24b770 (patch) | |
tree | ac0545093fdc6102dff42b565d05fd0a5ebc78bc /libs/libcurl/src/sha256.c | |
parent | f703fea6fe02ffa69766d4b0c3fb3a09a1de7c6e (diff) |
libcurl: update to 7.81.0
Diffstat (limited to 'libs/libcurl/src/sha256.c')
-rw-r--r-- | libs/libcurl/src/sha256.c | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/libs/libcurl/src/sha256.c b/libs/libcurl/src/sha256.c index 1391412ce5..cf7ea4f543 100644 --- a/libs/libcurl/src/sha256.c +++ b/libs/libcurl/src/sha256.c @@ -82,10 +82,14 @@ struct sha256_ctx { }; typedef struct sha256_ctx my_sha256_ctx; -static void my_sha256_init(my_sha256_ctx *ctx) +static CURLcode my_sha256_init(my_sha256_ctx *ctx) { ctx->openssl_ctx = EVP_MD_CTX_create(); + if(!ctx->openssl_ctx) + return CURLE_OUT_OF_MEMORY; + EVP_DigestInit_ex(ctx->openssl_ctx, EVP_sha256(), NULL); + return CURLE_OK; } static void my_sha256_update(my_sha256_ctx *ctx, @@ -112,9 +116,10 @@ static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx) typedef struct sha256_ctx my_sha256_ctx; -static void my_sha256_init(my_sha256_ctx *ctx) +static CURLcode my_sha256_init(my_sha256_ctx *ctx) { sha256_init(ctx); + return CURLE_OK; } static void my_sha256_update(my_sha256_ctx *ctx, @@ -140,13 +145,14 @@ static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx) typedef mbedtls_sha256_context my_sha256_ctx; -static void my_sha256_init(my_sha256_ctx *ctx) +static CURLcode my_sha256_init(my_sha256_ctx *ctx) { #if !defined(HAS_MBEDTLS_RESULT_CODE_BASED_FUNCTIONS) (void) mbedtls_sha256_starts(ctx, 0); #else (void) mbedtls_sha256_starts_ret(ctx, 0); #endif + return CURLE_OK; } static void my_sha256_update(my_sha256_ctx *ctx, @@ -183,9 +189,10 @@ static void my_sha256_final(unsigned char *digest, my_sha256_ctx *ctx) typedef CC_SHA256_CTX my_sha256_ctx; -static void my_sha256_init(my_sha256_ctx *ctx) +static CURLcode my_sha256_init(my_sha256_ctx *ctx) { (void) CC_SHA256_Init(ctx); + return CURLE_OK; } static void my_sha256_update(my_sha256_ctx *ctx, @@ -214,12 +221,14 @@ typedef struct sha256_ctx my_sha256_ctx; #define CALG_SHA_256 0x0000800c #endif -static void my_sha256_init(my_sha256_ctx *ctx) +static CURLcode my_sha256_init(my_sha256_ctx *ctx) { if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) { CryptCreateHash(ctx->hCryptProv, CALG_SHA_256, 0, 0, &ctx->hHash); } + + return CURLE_OK; } static void my_sha256_update(my_sha256_ctx *ctx, @@ -375,7 +384,7 @@ static int sha256_compress(struct sha256_state *md, } /* Initialize the hash state */ -static void my_sha256_init(struct sha256_state *md) +static CURLcode my_sha256_init(struct sha256_state *md) { md->curlen = 0; md->length = 0; @@ -387,6 +396,8 @@ static void my_sha256_init(struct sha256_state *md) md->state[5] = 0x9B05688CUL; md->state[6] = 0x1F83D9ABUL; md->state[7] = 0x5BE0CD19UL; + + return CURLE_OK; } /* @@ -394,7 +405,7 @@ static void my_sha256_init(struct sha256_state *md) @param md The hash state @param in The data to hash @param inlen The length of the data (octets) - @return CRYPT_OK if successful + @return 0 if successful */ static int my_sha256_update(struct sha256_state *md, const unsigned char *in, @@ -435,7 +446,7 @@ static int my_sha256_update(struct sha256_state *md, Terminate the hash to get the digest @param md The hash state @param out [out] The destination of the hash (32 bytes) - @return CRYPT_OK if successful + @return 0 if successful */ static int my_sha256_final(unsigned char *out, struct sha256_state *md) @@ -491,15 +502,21 @@ static int my_sha256_final(unsigned char *out, * output [in/out] - The output buffer. * input [in] - The input data. * length [in] - The input length. + * + * Returns CURLE_OK on success. */ -void Curl_sha256it(unsigned char *output, const unsigned char *input, +CURLcode Curl_sha256it(unsigned char *output, const unsigned char *input, const size_t length) { + CURLcode result; my_sha256_ctx ctx; - my_sha256_init(&ctx); - my_sha256_update(&ctx, input, curlx_uztoui(length)); - my_sha256_final(output, &ctx); + result = my_sha256_init(&ctx); + if(!result) { + my_sha256_update(&ctx, input, curlx_uztoui(length)); + my_sha256_final(output, &ctx); + } + return result; } |