Class Type3Message

  • All Implemented Interfaces:
    NtlmFlags

    public class Type3Message
    extends NtlmMessage
    Represents an NTLMSSP Type-3 message.
    • 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 class NtlmMessage
        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.