public class Type3Message extends NtlmMessage
NTLMSSP_SIGNATURE
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 and 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,
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,
int flags)
Creates a Type-3 message in response to the given Type-2 message.
|
Modifier and Type | Method and Description |
---|---|
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[] |
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,
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() |
getFlag, getFlags, setFlag, setFlags
public Type3Message()
public Type3Message(Type2Message type2)
type2
- The Type-2 message which this represents a response to.public Type3Message(Type2Message type2, java.lang.String password, java.lang.String domain, java.lang.String user, java.lang.String workstation, int flags)
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.public Type3Message(int flags, byte[] lmResponse, byte[] ntResponse, java.lang.String domain, java.lang.String user, java.lang.String workstation)
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.public Type3Message(byte[] material) throws java.io.IOException
material
- The raw Type-3 material used to construct this message.java.io.IOException
- If an error occurs while parsing the material.public byte[] getLMResponse()
byte[]
containing the LanManager response.public void setLMResponse(byte[] lmResponse)
lmResponse
- The LanManager response.public byte[] getNTResponse()
byte[]
containing the NT/NTLMv2 response.public void setNTResponse(byte[] ntResponse)
ntResponse
- The NT/NTLMv2 response.public java.lang.String getDomain()
String
containing the domain for the user.public void setDomain(java.lang.String domain)
domain
- The domain.public java.lang.String getUser()
String
containing the user for this message.public void setUser(java.lang.String user)
user
- The user.public java.lang.String getWorkstation()
String
containing the workstation.public void setWorkstation(java.lang.String workstation)
workstation
- The workstation.public byte[] getMasterKey()
byte[]
containing the session key.public byte[] getSessionKey()
byte[]
containing the session key.public void setSessionKey(byte[] sessionKey)
sessionKey
- The session key.public byte[] toByteArray()
NtlmMessage
toByteArray
in class NtlmMessage
byte[]
containing the raw message material.public java.lang.String toString()
toString
in class java.lang.Object
public static int getDefaultFlags()
int
containing the default flags.public static int getDefaultFlags(Type2Message type2)
int
containing the default flags.public static byte[] getLMResponse(Type2Message type2, java.lang.String password)
type2
- The Type-2 message.password
- The password.byte[]
containing the LanManager response.public static byte[] getLMv2Response(Type2Message type2, java.lang.String domain, java.lang.String user, java.lang.String password, byte[] clientChallenge)
public static byte[] getNTLMv2Response(Type2Message type2, byte[] responseKeyNT, byte[] clientChallenge)
public static byte[] getNTResponse(Type2Message type2, java.lang.String password)
type2
- The Type-2 message.password
- The password.byte[]
containing the NT response.public static java.lang.String getDefaultDomain()
public static java.lang.String getDefaultUser()
public static java.lang.String getDefaultPassword()
public static java.lang.String getDefaultWorkstation()