1
0
mirror of https://github.com/moparisthebest/curl synced 2025-01-08 12:28:06 -05:00

http: add hmac support for sha256

It seems current hmac implementation use md5 for the hash,
V4 signature require sha256, so I've added the needed struct in
this commit.

I've added the functions that do the hmac in v4 signature file
as a static function ,in the next patch of the serie,
because it's used only by this file.

Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
This commit is contained in:
Matthias Gatto 2020-07-03 15:12:57 +02:00 committed by Daniel Stenberg
parent d13179db3e
commit d52564bacb
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 23 additions and 0 deletions

View File

@ -24,6 +24,9 @@
***************************************************************************/
#ifndef CURL_DISABLE_CRYPTO_AUTH
#include "curl_hmac.h"
extern const struct HMAC_params Curl_HMAC_SHA256[1];
#define SHA256_DIGEST_LENGTH 32

View File

@ -27,6 +27,7 @@
#include "warnless.h"
#include "curl_sha256.h"
#include "curl_hmac.h"
#if defined(USE_OPENSSL)
@ -491,4 +492,23 @@ void Curl_sha256it(unsigned char *output, const unsigned char *input,
SHA256_Final(output, &ctx);
}
const struct HMAC_params Curl_HMAC_SHA256[] = {
{
/* Hash initialization function. */
CURLX_FUNCTION_CAST(HMAC_hinit_func, SHA256_Init),
/* Hash update function. */
CURLX_FUNCTION_CAST(HMAC_hupdate_func, SHA256_Update),
/* Hash computation end function. */
CURLX_FUNCTION_CAST(HMAC_hfinal_func, SHA256_Final),
/* Size of hash context structure. */
sizeof(SHA256_CTX),
/* Maximum key length. */
64,
/* Result size. */
32
}
};
#endif /* CURL_DISABLE_CRYPTO_AUTH */