Package com.hierynomus.ntlm.functions
Class NtlmFunctions
- java.lang.Object
-
- com.hierynomus.ntlm.functions.NtlmFunctions
-
public class NtlmFunctions extends java.lang.Object
NTLM Helper functions
-
-
Field Summary
Fields Modifier and Type Field Description static java.nio.charset.Charset
UNICODE
-
Constructor Summary
Constructors Constructor Description NtlmFunctions(java.util.Random random, SecurityProvider securityProvider)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
encryptRc4(byte[] key, byte[] val)
byte[]
getNTLMv2ClientChallenge(TargetInfo targetInfo)
[MS-NLMP].pdf 2.2.2.7 NTLM v2: NTLMv2_CLIENT_CHALLENGEbyte[]
getNTLMv2Response(byte[] responseKeyNT, byte[] serverChallenge, byte[] ntlmv2ClientChallenge)
3.3.2 NTLM v2 Authenticationbyte[]
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)).
-
-
-
Constructor Detail
-
NtlmFunctions
public NtlmFunctions(java.util.Random random, SecurityProvider securityProvider)
-
-
Method Detail
-
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
-
NTOWFv1
public 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).Define NTOWFv1(Passwd, User, UserDom) as MD4(UNICODE(Passwd)) EndDefine
-
unicode
public static byte[] unicode(java.lang.String string)
[MS-NLMP].pdf 6 Appendix A: Cryptographic Operations Reference (UNICODE(string)).- Parameters:
string
- The string to get the bytes of.- Returns:
- The 2-byte little endian byte order encoding of the Unicode UTF-16 representation of the string.
-
hmac_md5
public byte[] hmac_md5(byte[] key, byte[]... message)
[MS-NLMP].pdf 6 Appendix A: Cryptographic Operations Reference (HMAC_MD5(K, M)).- Parameters:
key
- The bytes of key Kmessage
- The bytes of message M- Returns:
- The 16-byte HMAC-keyed MD5 message digest of the byte string M using the key K
-
LMOWFv1
public 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).Define LMOWFv1(Passwd, User, UserDom) as ConcatenationOf( DES(UpperCase(Passwd)[0..6], "KGS!@#$%"), DES(UpperCase(Passwd)[7..13], "KGS!@#$%")) EndDefine
- Parameters:
password
-username
-userDomain
-- Returns:
-
getNTLMv2ClientChallenge
public byte[] getNTLMv2ClientChallenge(TargetInfo targetInfo)
[MS-NLMP].pdf 2.2.2.7 NTLM v2: NTLMv2_CLIENT_CHALLENGE3.3.2 NTLM v2 Authentication Set temp to ConcatenationOf(Responserversion, HiResponserversion, Z(6), Time, ClientChallenge, Z(4), ServerName, Z(4))
- Parameters:
targetInformation
-- Returns:
-
getNTLMv2Response
public byte[] getNTLMv2Response(byte[] responseKeyNT, byte[] serverChallenge, byte[] ntlmv2ClientChallenge)
3.3.2 NTLM v2 AuthenticationSet NTProofStr to HMAC_MD5(ResponseKeyNT, ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge,temp)) Set NtChallengeResponse to ConcatenationOf(NTProofStr, temp)
- Parameters:
responseKeyNT
-serverChallenge
-ntlmv2ClientChallenge
- (temp from above)- Returns:
-
encryptRc4
public byte[] encryptRc4(byte[] key, byte[] val) throws NtlmException
- Throws:
NtlmException
-
-