Module jcifs

Class Type3Message

java.lang.Object
org.codelibs.jcifs.smb1.ntlmssp.NtlmMessage
org.codelibs.jcifs.smb1.ntlmssp.Type3Message
All Implemented Interfaces:
NtlmFlags

public class Type3Message extends NtlmMessage
Represents an NTLMSSP Type-3 message.
  • Constructor Details

    • 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 to respond to
      password - the user's password
      domain - the domain name
      user - the username
      workstation - the workstation name
      flags - 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

      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 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

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

      public String toString()
      Overrides:
      toString in class Object
    • 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.
      Parameters:
      type2 - the Type-2 message to respond to
      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)
      Calculates the LMv2 response for NTLM authentication.
      Parameters:
      type2 - the Type-2 message containing the server challenge
      domain - the domain name
      user - the username
      password - the user's password
      clientChallenge - 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 challenge
      responseKeyNT - the NT response key
      clientChallenge - the client challenge bytes
      Returns:
      the calculated NTLMv2 response
    • 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.