mirror of
https://github.com/curl/curl.git
synced 2026-08-26 11:43:32 +03:00
ntlm: Moved the HMAC MD5 function into the HMAC module as a generic function
This commit is contained in:
parent
fa009cc798
commit
7def168a4f
3 changed files with 56 additions and 31 deletions
39
lib/hmac.c
39
lib/hmac.c
|
|
@ -5,7 +5,7 @@
|
|||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "curl_hmac.h"
|
||||
#include "curl_memory.h"
|
||||
#include "warnless.h"
|
||||
|
||||
/* The last #include file should be: */
|
||||
#include "memdebug.h"
|
||||
|
|
@ -129,4 +130,40 @@ int Curl_HMAC_final(HMAC_context *ctxt, unsigned char *result)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Curl_hmacit()
|
||||
*
|
||||
* This is used to generate a HMAC hash, for the specified input data, given
|
||||
* the specified hash function and key.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* hashparams [in] - The hash function (Curl_HMAC_MD5).
|
||||
* key [in] - The key to use.
|
||||
* keylen [in] - The length of the key.
|
||||
* data [in] - The data to encrypt.
|
||||
* datalen [in] - The length of the data.
|
||||
* output [in/out] - The output buffer.
|
||||
*
|
||||
* Returns CURLE_OK on success.
|
||||
*/
|
||||
CURLcode Curl_hmacit(const HMAC_params *hashparams,
|
||||
const unsigned char *key, const size_t keylen,
|
||||
const unsigned char *data, const size_t datalen,
|
||||
unsigned char *output)
|
||||
{
|
||||
HMAC_context *ctxt = Curl_HMAC_init(hashparams, key, curlx_uztoui(keylen));
|
||||
|
||||
if(!ctxt)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
/* Update the digest with the given challenge */
|
||||
Curl_HMAC_update(ctxt, data, curlx_uztoui(datalen));
|
||||
|
||||
/* Finalise the digest */
|
||||
Curl_HMAC_final(ctxt, output);
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
#endif /* CURL_DISABLE_CRYPTO_AUTH */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue