public class NTLMResponses
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static byte[] |
LM_HASH_MAGIC_CONSTANT |
| Constructor and Description |
|---|
NTLMResponses() |
| Modifier and Type | Method and Description |
|---|---|
private static byte[] |
createBlob(byte[] targetInformation,
byte[] clientNonce,
long time)
Creates the NTLMv2 blob from the given target information block and
client nonce.
|
private static java.security.Key |
createDESKey(byte[] bytes,
int offset)
Creates a DES encryption key from the given key material.
|
static byte[] |
getLMResponse(java.lang.String password,
byte[] challenge)
Calculates the LM Response for the given challenge, using the specified
password.
|
static byte[] |
getLMv2Response(java.lang.String target,
java.lang.String user,
java.lang.String password,
byte[] challenge,
byte[] clientNonce)
Calculates the LMv2 Response for the given challenge, using the
specified authentication target, username, password, and client
challenge.
|
static byte[] |
getNTLM2SessionResponse(java.lang.String password,
byte[] challenge,
byte[] clientNonce)
Calculates the NTLM2 Session Response for the given challenge, using the
specified password and client nonce.
|
static byte[] |
getNTLMResponse(java.lang.String password,
byte[] challenge)
Calculates the NTLM Response for the given challenge, using the
specified password.
|
static byte[] |
getNTLMv2Response(java.lang.String target,
java.lang.String user,
java.lang.String password,
byte[] targetInformation,
byte[] challenge,
byte[] clientNonce)
Calculates the NTLMv2 Response for the given challenge, using the
specified authentication target, username, password, target information
block, and client nonce.
|
static byte[] |
getNTLMv2Response(java.lang.String target,
java.lang.String user,
java.lang.String password,
byte[] targetInformation,
byte[] challenge,
byte[] clientNonce,
long time)
Calculates the NTLMv2 Response for the given challenge, using the
specified authentication target, username, password, target information
block, and client nonce.
|
static byte[] |
hmacMD5(byte[] data,
byte[] key)
Calculates the HMAC-MD5 hash of the given data using the specified
hashing key.
|
private static byte[] |
lmHash(java.lang.String password)
Creates the LM Hash of the user's password.
|
private static byte[] |
lmResponse(byte[] hash,
byte[] challenge)
Creates the LM Response from the given hash and Type 2 challenge.
|
private static byte[] |
lmv2Response(byte[] hash,
byte[] clientData,
byte[] challenge)
Creates the LMv2 Response from the given hash, client data, and
Type 2 challenge.
|
private static byte[] |
ntlmHash(java.lang.String password)
Creates the NTLM Hash of the user's password.
|
private static byte[] |
ntlmv2Hash(java.lang.String target,
java.lang.String user,
java.lang.String password)
Creates the NTLMv2 Hash of the user's password.
|
private static void |
oddParity(byte[] bytes)
Applies odd parity to the given byte array.
|
public static byte[] getLMResponse(java.lang.String password,
byte[] challenge)
throws java.lang.Exception
password - The user's password.challenge - The Type 2 challenge from the server.java.lang.Exceptionpublic static byte[] getNTLMResponse(java.lang.String password,
byte[] challenge)
throws java.lang.Exception
password - The user's password.challenge - The Type 2 challenge from the server.java.lang.Exceptionpublic static byte[] getNTLMv2Response(java.lang.String target,
java.lang.String user,
java.lang.String password,
byte[] targetInformation,
byte[] challenge,
byte[] clientNonce)
throws java.lang.Exception
target - The authentication target (i.e., domain).user - The username.password - The user's password.targetInformation - The target information block from the Type 2
message.challenge - The Type 2 challenge from the server.clientNonce - The random 8-byte client nonce.java.lang.Exceptionpublic static byte[] getNTLMv2Response(java.lang.String target,
java.lang.String user,
java.lang.String password,
byte[] targetInformation,
byte[] challenge,
byte[] clientNonce,
long time)
throws java.lang.Exception
target - The authentication target (i.e., domain).user - The username.password - The user's password.targetInformation - The target information block from the Type 2
message.challenge - The Type 2 challenge from the server.clientNonce - The random 8-byte client nonce.time - The time stamp.java.lang.Exceptionpublic static byte[] getLMv2Response(java.lang.String target,
java.lang.String user,
java.lang.String password,
byte[] challenge,
byte[] clientNonce)
throws java.lang.Exception
target - The authentication target (i.e., domain).user - The username.password - The user's password.challenge - The Type 2 challenge from the server.clientNonce - The random 8-byte client nonce.java.lang.Exceptionpublic static byte[] getNTLM2SessionResponse(java.lang.String password,
byte[] challenge,
byte[] clientNonce)
throws java.lang.Exception
password - The user's password.challenge - The Type 2 challenge from the server.clientNonce - The random 8-byte client nonce.java.lang.Exceptionprivate static byte[] lmHash(java.lang.String password)
throws java.lang.Exception
password - The password.java.lang.Exceptionprivate static byte[] ntlmHash(java.lang.String password)
throws java.lang.Exception
password - The password.java.lang.Exceptionprivate static byte[] ntlmv2Hash(java.lang.String target,
java.lang.String user,
java.lang.String password)
throws java.lang.Exception
target - The authentication target (i.e., domain).user - The username.password - The password.java.lang.Exceptionprivate static byte[] lmResponse(byte[] hash,
byte[] challenge)
throws java.lang.Exception
hash - The LM or NTLM Hash.challenge - The server challenge from the Type 2 message.java.lang.Exceptionprivate static byte[] lmv2Response(byte[] hash,
byte[] clientData,
byte[] challenge)
throws java.lang.Exception
hash - The NTLMv2 Hash.clientData - The client data (blob or client nonce).challenge - The server challenge from the Type 2 message.java.lang.Exceptionprivate static byte[] createBlob(byte[] targetInformation,
byte[] clientNonce,
long time)
targetInformation - The target information block from the Type 2
message.clientNonce - The random 8-byte client nonce.time - the time stamp.public static byte[] hmacMD5(byte[] data,
byte[] key)
throws java.lang.Exception
data - The data for which the hash will be calculated.key - The hashing key.java.lang.Exceptionprivate static java.security.Key createDESKey(byte[] bytes,
int offset)
bytes - A byte array containing the DES key material.offset - The offset in the given byte array at which
the 7-byte key material starts.private static void oddParity(byte[] bytes)
bytes - The data whose parity bits are to be adjusted for
odd parity.