public class NtlmFunctions
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.nio.charset.Charset |
UNICODE |
| Constructor and Description |
|---|
NtlmFunctions() |
| Modifier and Type | Method and Description |
|---|---|
static byte[] |
encryptRc4(byte[] key,
byte[] val) |
static byte[] |
getNTLMv2ClientChallenge(byte[] targetInformation)
[MS-NLMP].pdf 2.2.2.7 NTLM v2: NTLMv2_CLIENT_CHALLENGE
3.3.2 NTLM v2 Authentication
Set temp to ConcatenationOf(Responserversion, HiResponserversion, Z(6), Time, ClientChallenge, Z(4), ServerName, Z(4))
|
static byte[] |
getNTLMv2Response(byte[] responseKeyNT,
byte[] serverChallenge,
byte[] ntlmv2ClientChallenge)
3.3.2 NTLM v2 Authentication
Set NTProofStr to HMAC_MD5(ResponseKeyNT, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge,temp))
Set NtChallengeResponse to ConcatenationOf(NTProofStr, temp)
|
static java.security.SecureRandom |
getRandom() |
static byte[] |
hmac_md5(byte[] key,
byte[]... message)
[MS-NLMP].pdf 6 Appendix A: Cryptographic Operations Reference (HMAC_MD5(K, M)).
|
static 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).
|
static 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).
|
static 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).
|
static 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 void |
setRandom(java.security.SecureRandom sRandom) |
static byte[] |
unicode(java.lang.String string)
[MS-NLMP].pdf 6 Appendix A: Cryptographic Operations Reference (UNICODE(string)).
|
public static 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 static 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 static 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 static byte[] hmac_md5(byte[] key,
byte[]... message)
key - The bytes of key Kmessage - The bytes of message Mpublic static 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 static byte[] getNTLMv2ClientChallenge(byte[] targetInformation)
targetInformation - public static byte[] getNTLMv2Response(byte[] responseKeyNT,
byte[] serverChallenge,
byte[] ntlmv2ClientChallenge)
responseKeyNT - serverChallenge - ntlmv2ClientChallenge - (temp from above)public static byte[] encryptRc4(byte[] key,
byte[] val)
throws NtlmException
NtlmExceptionpublic static java.security.SecureRandom getRandom()
public static void setRandom(java.security.SecureRandom sRandom)