java.lang.Object
org.codelibs.jcifs.smb1.ntlmssp.NtlmMessage
org.codelibs.jcifs.smb1.ntlmssp.Type3Message
- All Implemented Interfaces:
NtlmFlags
Represents an NTLMSSP Type-3 message.
-
Field Summary
Fields inherited from class org.codelibs.jcifs.smb1.ntlmssp.NtlmMessage
NTLMSSP_SIGNATURE, UNI_ENCODINGFields inherited from interface org.codelibs.jcifs.smb1.ntlmssp.NtlmFlags
NTLMSSP_NEGOTIATE_128, NTLMSSP_NEGOTIATE_56, NTLMSSP_NEGOTIATE_ALWAYS_SIGN, NTLMSSP_NEGOTIATE_DATAGRAM_STYLE, NTLMSSP_NEGOTIATE_KEY_EXCH, NTLMSSP_NEGOTIATE_LM_KEY, NTLMSSP_NEGOTIATE_LOCAL_CALL, NTLMSSP_NEGOTIATE_NETWARE, NTLMSSP_NEGOTIATE_NTLM, NTLMSSP_NEGOTIATE_NTLM2, NTLMSSP_NEGOTIATE_OEM, NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED, NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED, NTLMSSP_NEGOTIATE_SEAL, NTLMSSP_NEGOTIATE_SIGN, NTLMSSP_NEGOTIATE_TARGET_INFO, NTLMSSP_NEGOTIATE_UNICODE, NTLMSSP_REQUEST_ACCEPT_RESPONSE, NTLMSSP_REQUEST_INIT_RESPONSE, NTLMSSP_REQUEST_NON_NT_SESSION_KEY, NTLMSSP_REQUEST_TARGET, NTLMSSP_TARGET_TYPE_DOMAIN, NTLMSSP_TARGET_TYPE_SERVER, NTLMSSP_TARGET_TYPE_SHARE -
Constructor Summary
ConstructorsConstructorDescriptionCreates a Type-3 message using default values from the current environment.Type3Message(byte[] material) Creates a Type-3 message using the given raw Type-3 material.Type3Message(int flags, byte[] lmResponse, byte[] ntResponse, String domain, String user, String workstation) Creates a Type-3 message with the specified parameters.Type3Message(Type2Message type2) Creates a Type-3 message in response to the given Type-2 message using default values from the current environment.Type3Message(Type2Message type2, String password, String domain, String user, String workstation, int flags) Creates a Type-3 message in response to the given Type-2 message. -
Method Summary
Modifier and TypeMethodDescriptionstatic StringReturns the default domain from the current environment.static intReturns the default flags for a generic Type-3 message in the current environment.static intgetDefaultFlags(Type2Message type2) Returns the default flags for a Type-3 message created in response to the given Type-2 message in the current environment.static StringReturns the default password from the current environment.static StringReturns the default user from the current environment.static StringReturns the default workstation from the current environment.Returns the domain in which the user has an account.byte[]Returns the LanManager/LMv2 response.static byte[]getLMResponse(Type2Message type2, String password) Constructs the LanManager response to the given Type-2 message using the supplied password.static byte[]getLMv2Response(Type2Message type2, String domain, String user, String password, byte[] clientChallenge) Calculates the LMv2 response for NTLM authentication.byte[]The real session key if the regular session key is actually the encrypted version used for key exchange.static byte[]getNTLMv2Response(Type2Message type2, byte[] responseKeyNT, byte[] clientChallenge) Calculates the NTLMv2 response for authentication.byte[]Returns the NT/NTLMv2 response.static byte[]getNTResponse(Type2Message type2, String password) Constructs the NT response to the given Type-2 message using the supplied password.byte[]Returns the session key.getUser()Returns the username for the authenticating user.Returns the workstation from which authentication is being performed.voidSets the domain for this message.voidsetLMResponse(byte[] lmResponse) Sets the LanManager/LMv2 response for this message.voidsetNTResponse(byte[] ntResponse) Sets the NT/NTLMv2 response for this message.voidsetSessionKey(byte[] sessionKey) Sets the session key.voidSets the user for this message.voidsetWorkstation(String workstation) Sets the workstation for this message.byte[]Returns the raw byte representation of this message.toString()Methods inherited from class org.codelibs.jcifs.smb1.ntlmssp.NtlmMessage
getFlag, getFlags, setFlag, setFlags
-
Constructor Details
-
Type3Message
public Type3Message()Creates a Type-3 message using default values from the current environment. -
Type3Message
Creates a Type-3 message in response to the given Type-2 message using default values from the current environment.- Parameters:
type2- The Type-2 message which this represents a response to.
-
Type3Message
public Type3Message(Type2Message type2, String password, String domain, String user, String workstation, int flags) Creates a Type-3 message in response to the given Type-2 message.- Parameters:
type2- the Type-2 message to respond topassword- the user's passworddomain- the domain nameuser- the usernameworkstation- the workstation nameflags- the flags to use for the Type-3 message
-
Type3Message
public Type3Message(int flags, byte[] lmResponse, byte[] ntResponse, String domain, String user, String workstation) Creates a Type-3 message with the specified parameters.- Parameters:
flags- The flags to apply to this message.lmResponse- The LanManager/LMv2 response.ntResponse- The NT/NTLMv2 response.domain- The domain in which the user has an account.user- The username for the authenticating user.workstation- The workstation from which authentication is taking place.
-
Type3Message
Creates a Type-3 message using the given raw Type-3 material.- Parameters:
material- The raw Type-3 material used to construct this message.- Throws:
IOException- If an error occurs while parsing the material.
-
-
Method Details
-
getLMResponse
public byte[] getLMResponse()Returns the LanManager/LMv2 response.- Returns:
- A
byte[]containing the LanManager response.
-
setLMResponse
public void setLMResponse(byte[] lmResponse) Sets the LanManager/LMv2 response for this message.- Parameters:
lmResponse- The LanManager response.
-
getNTResponse
public byte[] getNTResponse()Returns the NT/NTLMv2 response.- Returns:
- A
byte[]containing the NT/NTLMv2 response.
-
setNTResponse
public void setNTResponse(byte[] ntResponse) Sets the NT/NTLMv2 response for this message.- Parameters:
ntResponse- The NT/NTLMv2 response.
-
getDomain
Returns the domain in which the user has an account.- Returns:
- A
Stringcontaining the domain for the user.
-
setDomain
Sets the domain for this message.- Parameters:
domain- The domain.
-
getUser
Returns the username for the authenticating user.- Returns:
- A
Stringcontaining the user for this message.
-
setUser
Sets the user for this message.- Parameters:
user- The user.
-
getWorkstation
Returns the workstation from which authentication is being performed.- Returns:
- A
Stringcontaining the workstation.
-
setWorkstation
Sets the workstation for this message.- Parameters:
workstation- The workstation.
-
getMasterKey
public byte[] getMasterKey()The real session key if the regular session key is actually the encrypted version used for key exchange.- Returns:
- A
byte[]containing the session key.
-
getSessionKey
public byte[] getSessionKey()Returns the session key.- Returns:
- A
byte[]containing the session key.
-
setSessionKey
public void setSessionKey(byte[] sessionKey) Sets the session key.- Parameters:
sessionKey- The session key.
-
toByteArray
public byte[] toByteArray()Description copied from class:NtlmMessageReturns the raw byte representation of this message.- Specified by:
toByteArrayin classNtlmMessage- Returns:
- A
byte[]containing the raw message material.
-
toString
-
getDefaultFlags
public static int getDefaultFlags()Returns the default flags for a generic Type-3 message in the current environment.- Returns:
- An
intcontaining the default flags.
-
getDefaultFlags
Returns the default flags for a Type-3 message created in response to the given Type-2 message in the current environment.- Parameters:
type2- the Type-2 message to respond to- Returns:
- An
intcontaining the default flags.
-
getLMResponse
Constructs the LanManager response to the given Type-2 message using the supplied password.- Parameters:
type2- The Type-2 message.password- The password.- Returns:
- A
byte[]containing the LanManager response.
-
getLMv2Response
public static byte[] getLMv2Response(Type2Message type2, String domain, String user, String password, byte[] clientChallenge) Calculates the LMv2 response for NTLM authentication.- Parameters:
type2- the Type-2 message containing the server challengedomain- the domain nameuser- the usernamepassword- the user's passwordclientChallenge- the client challenge bytes- Returns:
- the calculated LMv2 response
-
getNTLMv2Response
public static byte[] getNTLMv2Response(Type2Message type2, byte[] responseKeyNT, byte[] clientChallenge) Calculates the NTLMv2 response for authentication.- Parameters:
type2- the Type-2 message containing the server challengeresponseKeyNT- the NT response keyclientChallenge- the client challenge bytes- Returns:
- the calculated NTLMv2 response
-
getNTResponse
Constructs the NT response to the given Type-2 message using the supplied password.- Parameters:
type2- The Type-2 message.password- The password.- Returns:
- A
byte[]containing the NT response.
-
getDefaultDomain
Returns the default domain from the current environment.- Returns:
- The default domain.
-
getDefaultUser
Returns the default user from the current environment.- Returns:
- The default user.
-
getDefaultPassword
Returns the default password from the current environment.- Returns:
- The default password.
-
getDefaultWorkstation
Returns the default workstation from the current environment.- Returns:
- The default workstation.
-