public class NtlmFunctions
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.nio.charset.Charset |
UNICODE |
Constructor and Description |
---|
NtlmFunctions(java.util.Random random,
SecurityProvider securityProvider) |
Modifier and Type | Method and Description |
---|---|
byte[] |
encryptRc4(byte[] key,
byte[] val) |
byte[] |
getNTLMv2ClientChallenge(byte[] targetInformation)
[MS-NLMP].pdf 2.2.2.7 NTLM v2: NTLMv2_CLIENT_CHALLENGE
|
byte[] |
getNTLMv2Response(byte[] responseKeyNT,
byte[] serverChallenge,
byte[] ntlmv2ClientChallenge)
3.3.2 NTLM v2 Authentication
|
byte[] |
hmac_md5(byte[] key,
byte[]... message)
[MS-NLMP].pdf 6 Appendix A: Cryptographic Operations Reference (HMAC_MD5(K, M)).
|
byte[] |
LMOWFv1(java.lang.String password,
java.lang.String username,
java.lang.String userDomain)
[MS-NLMP].pdf 3.3.1 NTLM v1 authentication (LMOWF v1).
|
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[] |
NTOWFv1(java.lang.String password,
java.lang.String username,
java.lang.String userDomain)
[MS-NLMP].pdf 3.3.1 NTLM v1 authentication (NTOWF v1).
|
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).
|
static byte[] |
unicode(java.lang.String string)
[MS-NLMP].pdf 6 Appendix A: Cryptographic Operations Reference (UNICODE(string)).
|
public NtlmFunctions(java.util.Random random, SecurityProvider securityProvider)
public byte[] NTOWFv2(java.lang.String password, java.lang.String username, java.lang.String userDomain)
Define NTOWFv2(Passwd, User, UserDom) as HMAC_MD5( MD4(UNICODE(Passwd)), UNICODE(ConcatenationOf( Uppercase(User), UserDom ) ) )
EndDefine
public byte[] LMOWFv2(java.lang.String password, java.lang.String username, java.lang.String userDomain)
Define LMOWFv2(Passwd, User, UserDom) as NTOWFv2(Passwd, User, UserDom)
EndDefine
public byte[] NTOWFv1(java.lang.String password, java.lang.String username, java.lang.String userDomain)
Define NTOWFv1(Passwd, User, UserDom) as MD4(UNICODE(Passwd))
EndDefine
public static byte[] unicode(java.lang.String string)
string
- The string to get the bytes of.public byte[] hmac_md5(byte[] key, byte[]... message)
key
- The bytes of key Kmessage
- The bytes of message Mpublic byte[] LMOWFv1(java.lang.String password, java.lang.String username, java.lang.String userDomain)
Define LMOWFv1(Passwd, User, UserDom) as
ConcatenationOf(
DES(UpperCase(Passwd)[0..6], "KGS!@#$%"),
DES(UpperCase(Passwd)[7..13], "KGS!@#$%"))
EndDefine
password
- username
- userDomain
- public byte[] getNTLMv2ClientChallenge(byte[] targetInformation)
3.3.2 NTLM v2 Authentication Set temp to ConcatenationOf(Responserversion, HiResponserversion, Z(6), Time, ClientChallenge, Z(4), ServerName, Z(4))
targetInformation
- public byte[] getNTLMv2Response(byte[] responseKeyNT, byte[] serverChallenge, byte[] ntlmv2ClientChallenge)
Set NTProofStr to HMAC_MD5(ResponseKeyNT, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge,temp)) Set NtChallengeResponse to ConcatenationOf(NTProofStr, temp)
responseKeyNT
- serverChallenge
- ntlmv2ClientChallenge
- (temp from above)public byte[] encryptRc4(byte[] key, byte[] val) throws NtlmException
NtlmException