Test heim_ntlm_calculate_ntlm2_sess_resp from Puneet Mehra.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21190 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1089,3 +1089,37 @@ out:
|
||||
krb5_storage_free(sp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Calculate the NTLM2 Session Response as per pg 24 of Davenport NTLM
|
||||
* document http://davenport.sourceforge.net/ntlm.html
|
||||
*/
|
||||
int
|
||||
heim_ntlm_calculate_ntlm2_sess_resp(const unsigned char clnt_nonce[8],
|
||||
const unsigned char svr_chal[8],
|
||||
const unsigned char ntlm_hash[16],
|
||||
unsigned char lm_resp[24],
|
||||
unsigned char ntlm2_sess_resp[24])
|
||||
{
|
||||
unsigned char ntlm2_sess_hash[MD5_DIGEST_LENGTH];
|
||||
unsigned char res[21];
|
||||
MD5_CTX md5;
|
||||
|
||||
/* first setup the lm resp */
|
||||
memset(lm_resp, 0, 24);
|
||||
memcpy(lm_resp, clnt_nonce, 8);
|
||||
|
||||
MD5_Init(&md5);
|
||||
MD5_Update(&md5, svr_chal, 8); /* session nonce part 1 */
|
||||
MD5_Update(&md5, clnt_nonce, 8); /* session nonce part 2 */
|
||||
MD5_Final(ntlm2_sess_hash, &md5); /* will only use first 8 bytes */
|
||||
|
||||
memset(res, 0, sizeof(res));
|
||||
memcpy(res, ntlm_hash, 16);
|
||||
|
||||
splitandenc(&res[0], ntlm2_sess_hash, ntlm2_sess_resp + 0);
|
||||
splitandenc(&res[7], ntlm2_sess_hash, ntlm2_sess_resp + 8);
|
||||
splitandenc(&res[14], ntlm2_sess_hash, ntlm2_sess_resp + 16);
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user