Package com.hierynomus.ntlm.functions
Class NtlmV2Functions
- java.lang.Object
-
- com.hierynomus.ntlm.functions.NtlmV2Functions
-
public class NtlmV2Functions extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description NtlmV2Functions(java.util.Random random, SecurityProvider securityProvider)
-
Method Summary
Modifier and Type Method Description ComputedNtlmV2Response
computeResponse(java.lang.String username, java.lang.String domain, char[] password, NtlmChallenge serverNtlmChallenge, long time, TargetInfo clientTargetInfo)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication.byte[]
getLmV2Response(byte[] responseKeyLM, byte[] serverChallenge, byte[] clientChallenge)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication.byte[]
getNtV2Response(byte[] responseKeyNT, byte[] serverChallenge, byte[] clientChallenge, long time, TargetInfo targetInfo)
3.3.2 NTLM v2 Authenticationbyte[]
getSessionBaseKey(byte[] responseKeyNT, byte[] ntProofStr)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication.byte[]
kxKey(byte[] sessionBaseKey, byte[] lmResponse, byte[] serverChallenge)
[MS-NLMP].pdf 3.4.5.1 KXKEY If NTLM v2 is used, KeyExchangeKey MUST be set to the given 128-bit SessionBaseKey value.byte[]
LMOWFv2(java.lang.String password, java.lang.String username, java.lang.String userDomain)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication (NTOWF v2).byte[]
NTOWFv2(java.lang.String password, java.lang.String username, java.lang.String userDomain)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication (NTOWF v2).
-
-
-
Constructor Detail
-
NtlmV2Functions
public NtlmV2Functions(java.util.Random random, SecurityProvider securityProvider)
-
-
Method Detail
-
computeResponse
public ComputedNtlmV2Response computeResponse(java.lang.String username, java.lang.String domain, char[] password, NtlmChallenge serverNtlmChallenge, long time, TargetInfo clientTargetInfo)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication.Define ComputeResponse(NegFlg, ResponseKeyNT, ResponseKeyLM, CHALLENGE_MESSAGE.ServerChallenge, ClientChallenge, Time, ServerName) As If (User is set to "" && Passwd is set to "") -- Special case for anonymous authentication Set NtChallengeResponseLen to 0 Set NtChallengeResponseMaxLen to 0 Set NtChallengeResponseBufferOffset to 0 Set LmChallengeResponse to Z(1) Else Set temp to ConcatenationOf(Responserversion, HiResponserversion, Z(6), Time, ClientChallenge, Z(4), ServerName, Z(4)) Set NTProofStr to HMAC_MD5(ResponseKeyNT, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge,temp)) Set NtChallengeResponse to ConcatenationOf(NTProofStr, temp) Set LmChallengeResponse to ConcatenationOf(HMAC_MD5(ResponseKeyLM, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge, ClientChallenge)), ClientChallenge ) EndIf Set SessionBaseKey to HMAC_MD5(ResponseKeyNT, NTProofStr) EndDefine
-
NTOWFv2
public byte[] NTOWFv2(java.lang.String password, java.lang.String username, java.lang.String userDomain)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication (NTOWF v2).Define NTOWFv2(Passwd, User, UserDom) as HMAC_MD5( MD4(UNICODE(Passwd)), UNICODE(ConcatenationOf( Uppercase(User), UserDom ) ) ) EndDefine
-
LMOWFv2
public byte[] LMOWFv2(java.lang.String password, java.lang.String username, java.lang.String userDomain)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication (NTOWF v2).Define LMOWFv2(Passwd, User, UserDom) as NTOWFv2(Passwd, User, UserDom) EndDefine
-
getLmV2Response
public byte[] getLmV2Response(byte[] responseKeyLM, byte[] serverChallenge, byte[] clientChallenge)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication.Set LmChallengeResponse to ConcatenationOf(HMAC_MD5(ResponseKeyLM, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge, ClientChallenge)), ClientChallenge)
-
getNtV2Response
public byte[] getNtV2Response(byte[] responseKeyNT, byte[] serverChallenge, byte[] clientChallenge, long time, TargetInfo targetInfo)
3.3.2 NTLM v2 AuthenticationSet temp to ntResponseTemp(ClientChallenge, TargetInfo) // See below Set NTProofStr to HMAC_MD5(ResponseKeyNT, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge,temp)) Set NtChallengeResponse to ConcatenationOf(NTProofStr, temp)
-
getSessionBaseKey
public byte[] getSessionBaseKey(byte[] responseKeyNT, byte[] ntProofStr)
[MS-NLMP].pdf 3.3.2 NTLM v2 authentication.Set SessionBaseKey to HMAC_MD5(ResponseKeyNT, NTProofStr)
-
kxKey
public byte[] kxKey(byte[] sessionBaseKey, byte[] lmResponse, byte[] serverChallenge)
[MS-NLMP].pdf 3.4.5.1 KXKEY If NTLM v2 is used, KeyExchangeKey MUST be set to the given 128-bit SessionBaseKey value.
-
-