jcifs.ntlmssp
Class Type3Message

java.lang.Object
  extended byjcifs.ntlmssp.NtlmMessage
      extended byjcifs.ntlmssp.Type3Message
All Implemented Interfaces:
NtlmFlags

public class Type3Message
extends NtlmMessage

Represents an NTLMSSP Type-3 message.


Field Summary
 
Fields inherited from class jcifs.ntlmssp.NtlmMessage
NTLMSSP_SIGNATURE
 
Fields inherited from interface jcifs.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
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, java.lang.String domain, java.lang.String user, java.lang.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, java.lang.String password, java.lang.String domain, java.lang.String user, java.lang.String workstation)
          Creates a Type-3 message in response to the given Type-2 message.
 
Method Summary
static java.lang.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 java.lang.String getDefaultPassword()
          Returns the default password from the current environment.
static java.lang.String getDefaultUser()
          Returns the default user from the current environment.
static java.lang.String getDefaultWorkstation()
          Returns the default workstation from the current environment.
 java.lang.String getDomain()
          Returns the domain in which the user has an account.
 byte[] getLMResponse()
          Returns the LanManager/LMv2 response.
static byte[] getLMResponse(Type2Message type2, java.lang.String password)
          Constructs the LanManager response to the given Type-2 message using the supplied password.
static byte[] getLMv2Response(Type2Message type2, java.lang.String domain, java.lang.String user, java.lang.String password, byte[] clientChallenge)
           
 byte[] getNTResponse()
          Returns the NT/NTLMv2 response.
static byte[] getNTResponse(Type2Message type2, java.lang.String password)
          Constructs the NT response to the given Type-2 message using the supplied password.
 byte[] getSessionKey()
          Returns the session key.
 java.lang.String getUser()
          Returns the username for the authenticating user.
 java.lang.String getWorkstation()
          Returns the workstation from which authentication is being performed.
 void setDomain(java.lang.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(java.lang.String user)
          Sets the user for this message.
 void setWorkstation(java.lang.String workstation)
          Sets the workstation for this message.
 byte[] toByteArray()
          Returns the raw byte representation of this message.
 java.lang.String toString()
           
 
Methods inherited from class jcifs.ntlmssp.NtlmMessage
getFlag, getFlags, setFlag, setFlags
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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,
                    java.lang.String password,
                    java.lang.String domain,
                    java.lang.String user,
                    java.lang.String workstation)
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,
                    java.lang.String domain,
                    java.lang.String user,
                    java.lang.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 java.io.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:
java.io.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 java.lang.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(java.lang.String domain)
Sets the domain for this message.

Parameters:
domain - The domain.

getUser

public java.lang.String getUser()
Returns the username for the authenticating user.

Returns:
A String containing the user for this message.

setUser

public void setUser(java.lang.String user)
Sets the user for this message.

Parameters:
user - The user.

getWorkstation

public java.lang.String getWorkstation()
Returns the workstation from which authentication is being performed.

Returns:
A String containing the workstation.

setWorkstation

public void setWorkstation(java.lang.String workstation)
Sets the workstation for this message.

Parameters:
workstation - The workstation.

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 class NtlmMessage
Returns:
A byte[] containing the raw message material.

toString

public java.lang.String toString()

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,
                                   java.lang.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,
                                     java.lang.String domain,
                                     java.lang.String user,
                                     java.lang.String password,
                                     byte[] clientChallenge)

getNTResponse

public static byte[] getNTResponse(Type2Message type2,
                                   java.lang.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 java.lang.String getDefaultDomain()
Returns the default domain from the current environment.

Returns:
The default domain.

getDefaultUser

public static java.lang.String getDefaultUser()
Returns the default user from the current environment.

Returns:
The default user.

getDefaultPassword

public static java.lang.String getDefaultPassword()
Returns the default password from the current environment.

Returns:
The default password.

getDefaultWorkstation

public static java.lang.String getDefaultWorkstation()
Returns the default workstation from the current environment.

Returns:
The default workstation.