check return value
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24146 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1041,15 +1041,18 @@ heim_ntlm_build_ntlm1_master(void *key, size_t len,
|
|||||||
* @param target the name of the target, assumed to be in UTF8.
|
* @param target the name of the target, assumed to be in UTF8.
|
||||||
* @param ntlmv2 the ntlmv2 session key
|
* @param ntlmv2 the ntlmv2 session key
|
||||||
*
|
*
|
||||||
|
* @return 0 on success, or an error code on failure.
|
||||||
|
*
|
||||||
* @ingroup ntlm_core
|
* @ingroup ntlm_core
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void
|
int
|
||||||
heim_ntlm_ntlmv2_key(const void *key, size_t len,
|
heim_ntlm_ntlmv2_key(const void *key, size_t len,
|
||||||
const char *username,
|
const char *username,
|
||||||
const char *target,
|
const char *target,
|
||||||
unsigned char ntlmv2[16])
|
unsigned char ntlmv2[16])
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
unsigned int hmaclen;
|
unsigned int hmaclen;
|
||||||
HMAC_CTX c;
|
HMAC_CTX c;
|
||||||
|
|
||||||
@@ -1058,17 +1061,23 @@ heim_ntlm_ntlmv2_key(const void *key, size_t len,
|
|||||||
{
|
{
|
||||||
struct ntlm_buf buf;
|
struct ntlm_buf buf;
|
||||||
/* uppercase username and turn it into ucs2-le */
|
/* uppercase username and turn it into ucs2-le */
|
||||||
ascii2ucs2le(username, 1, &buf);
|
ret = ascii2ucs2le(username, 1, &buf);
|
||||||
|
if (ret)
|
||||||
|
goto out;
|
||||||
HMAC_Update(&c, buf.data, buf.length);
|
HMAC_Update(&c, buf.data, buf.length);
|
||||||
free(buf.data);
|
free(buf.data);
|
||||||
/* uppercase target and turn into ucs2-le */
|
/* uppercase target and turn into ucs2-le */
|
||||||
ascii2ucs2le(target, 1, &buf);
|
ret = ascii2ucs2le(target, 1, &buf);
|
||||||
|
if (ret)
|
||||||
|
goto out;
|
||||||
HMAC_Update(&c, buf.data, buf.length);
|
HMAC_Update(&c, buf.data, buf.length);
|
||||||
free(buf.data);
|
free(buf.data);
|
||||||
}
|
}
|
||||||
HMAC_Final(&c, ntlmv2, &hmaclen);
|
HMAC_Final(&c, ntlmv2, &hmaclen);
|
||||||
|
out:
|
||||||
HMAC_CTX_cleanup(&c);
|
HMAC_CTX_cleanup(&c);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user