Package jcifs.smb1.ntlmssp
Class Type3Message
- java.lang.Object
-
- jcifs.smb1.ntlmssp.NtlmMessage
-
- jcifs.smb1.ntlmssp.Type3Message
-
- All Implemented Interfaces:
NtlmFlags
public class Type3Message extends NtlmMessage
Represents an NTLMSSP Type-3 message.
-
-
Field Summary
-
Fields inherited from class jcifs.smb1.ntlmssp.NtlmMessage
NTLMSSP_SIGNATURE, UNI_ENCODING
-
Fields inherited from interface 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
Constructors Constructor Description Type3Message()
Creates 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static String
getDefaultDomain()
Returns the default domain from the current environment.static int
getDefaultFlags()
Returns the default flags for a generic Type-3 message in the current environment.static int
getDefaultFlags(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 String
getDefaultPassword()
Returns the default password from the current environment.static String
getDefaultUser()
Returns the default user from the current environment.static String
getDefaultWorkstation()
Returns the default workstation from the current environment.String
getDomain()
Returns the domain in which the user has an account.byte[]
getLMResponse()
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)
byte[]
getMasterKey()
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)
byte[]
getNTResponse()
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[]
getSessionKey()
Returns the session key.String
getUser()
Returns the username for the authenticating user.String
getWorkstation()
Returns the workstation from which authentication is being performed.void
setDomain(String domain)
Sets the domain for this message.void
setLMResponse(byte[] lmResponse)
Sets the LanManager/LMv2 response for this message.void
setNTResponse(byte[] ntResponse)
Sets the NT/NTLMv2 response for this message.void
setSessionKey(byte[] sessionKey)
Sets the session key.void
setUser(String user)
Sets the user for this message.void
setWorkstation(String workstation)
Sets the workstation for this message.byte[]
toByteArray()
Returns the raw byte representation of this message.String
toString()
-
Methods inherited from class jcifs.smb1.ntlmssp.NtlmMessage
getFlag, getFlags, setFlag, setFlags
-
-
-
-
Constructor Detail
-
Type3Message
public Type3Message()
Creates a Type-3 message using default values from the current environment.
-
Type3Message
public Type3Message(Type2Message type2)
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 which this represents a response to.password
- The password to use when constructing the 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
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
public Type3Message(byte[] material) throws IOException
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 Detail
-
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
public String getDomain()
Returns the domain in which the user has an account.- Returns:
- A
String
containing the domain for the user.
-
setDomain
public void setDomain(String domain)
Sets the domain for this message.- Parameters:
domain
- The domain.
-
getUser
public String getUser()
Returns the username for the authenticating user.- Returns:
- A
String
containing the user for this message.
-
setUser
public void setUser(String user)
Sets the user for this message.- Parameters:
user
- The user.
-
getWorkstation
public String getWorkstation()
Returns the workstation from which authentication is being performed.- Returns:
- A
String
containing the workstation.
-
setWorkstation
public void setWorkstation(String workstation)
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:NtlmMessage
Returns the raw byte representation of this message.- Specified by:
toByteArray
in classNtlmMessage
- Returns:
- A
byte[]
containing the raw message material.
-
getDefaultFlags
public static int getDefaultFlags()
Returns the default flags for a generic Type-3 message in the current environment.- Returns:
- An
int
containing the default flags.
-
getDefaultFlags
public static int getDefaultFlags(Type2Message type2)
Returns the default flags for a Type-3 message created in response to the given Type-2 message in the current environment.- Returns:
- An
int
containing the default flags.
-
getLMResponse
public static byte[] getLMResponse(Type2Message type2, String password)
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)
-
getNTLMv2Response
public static byte[] getNTLMv2Response(Type2Message type2, byte[] responseKeyNT, byte[] clientChallenge)
-
getNTResponse
public static byte[] getNTResponse(Type2Message type2, String password)
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
public static String getDefaultDomain()
Returns the default domain from the current environment.- Returns:
- The default domain.
-
getDefaultUser
public static String getDefaultUser()
Returns the default user from the current environment.- Returns:
- The default user.
-
getDefaultPassword
public static String getDefaultPassword()
Returns the default password from the current environment.- Returns:
- The default password.
-
getDefaultWorkstation
public static String getDefaultWorkstation()
Returns the default workstation from the current environment.- Returns:
- The default workstation.
-
-