diff options
Diffstat (limited to 'lib/vauth')
| -rw-r--r-- | lib/vauth/digest.c | 15 | ||||
| -rw-r--r-- | lib/vauth/ntlm.c | 12 | 
2 files changed, 16 insertions, 11 deletions
| diff --git a/lib/vauth/digest.c b/lib/vauth/digest.c index 0a11a308d..ca1d0c24a 100644 --- a/lib/vauth/digest.c +++ b/lib/vauth/digest.c @@ -40,6 +40,7 @@  #include "strcase.h"  #include "non-ascii.h" /* included for Curl_convert_... prototypes */  #include "curl_printf.h" +#include "rand.h"  /* The last #include files should be: */  #include "curl_memory.h" @@ -387,10 +388,9 @@ CURLcode Curl_auth_create_digest_md5_message(struct Curl_easy *data,      return CURLE_BAD_CONTENT_ENCODING;    /* Generate 16 bytes of random data */ -  entropy[0] = Curl_rand(data); -  entropy[1] = Curl_rand(data); -  entropy[2] = Curl_rand(data); -  entropy[3] = Curl_rand(data); +  result = Curl_rand(data, &entropy[0], 4); +  if(result) +    return result;    /* Convert the random data into a 32 byte hex string */    snprintf(cnonce, sizeof(cnonce), "%08x%08x%08x%08x", @@ -684,9 +684,12 @@ CURLcode Curl_auth_create_digest_http_message(struct Curl_easy *data,      digest->nc = 1;    if(!digest->cnonce) { +    unsigned int rnd[4]; +    result = Curl_rand(data, &rnd[0], 4); +    if(result) +      return result;      snprintf(cnoncebuf, sizeof(cnoncebuf), "%08x%08x%08x%08x", -             Curl_rand(data), Curl_rand(data), -             Curl_rand(data), Curl_rand(data)); +             rnd[0], rnd[1], rnd[2], rnd[3]);      result = Curl_base64_encode(data, cnoncebuf, strlen(cnoncebuf),                                  &cnonce, &cnonce_sz); diff --git a/lib/vauth/ntlm.c b/lib/vauth/ntlm.c index b484a011a..b4d345d63 100644 --- a/lib/vauth/ntlm.c +++ b/lib/vauth/ntlm.c @@ -41,7 +41,7 @@  #include "curl_gethostname.h"  #include "curl_multibyte.h"  #include "warnless.h" - +#include "rand.h"  #include "vtls/vtls.h"  #ifdef USE_NSS @@ -558,8 +558,9 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,      unsigned int entropy[2];      unsigned char ntlmv2hash[0x18]; -    entropy[0] = Curl_rand(data); -    entropy[1] = Curl_rand(data); +    result = Curl_rand(data, &entropy[0], 2); +    if(result) +      return result;      result = Curl_ntlm_core_mk_nt_hash(data, passwdp, ntbuffer);      if(result) @@ -598,8 +599,9 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,      unsigned int entropy[2];      /* Need to create 8 bytes random data */ -    entropy[0] = Curl_rand(data); -    entropy[1] = Curl_rand(data); +    result = Curl_rand(data, &entropy[0], 2); +    if(result) +      return result;      /* 8 bytes random data as challenge in lmresp */      memcpy(lmresp, entropy, 8); | 
