public final class NtlmPasswordAuthentication
extends java.lang.Object
implements java.security.Principal, java.io.Serializable
Read jCIFS Exceptions and NtlmAuthenticator for related information.
Modifier and Type | Field and Description |
---|---|
static NtlmPasswordAuthentication |
ANONYMOUS |
Constructor and Description |
---|
NtlmPasswordAuthentication(java.lang.String userInfo)
Create an NtlmPasswordAuthentication object from the userinfo
component of an SMB URL like "domain;user:pass".
|
NtlmPasswordAuthentication(java.lang.String domain,
java.lang.String username,
byte[] challenge,
byte[] ansiHash,
byte[] unicodeHash)
Create an NtlmPasswordAuthentication object with raw password
hashes.
|
NtlmPasswordAuthentication(java.lang.String domain,
java.lang.String username,
java.lang.String password)
Create an NtlmPasswordAuthentication object from a
domain, username, and password.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj)
Compares two NtlmPasswordAuthentication objects for
equality.
|
byte[] |
getAnsiHash(byte[] challenge)
Computes the 24 byte ANSI password hash given the 8 byte server challenge.
|
java.lang.String |
getDomain()
Returns the domain.
|
static byte[] |
getLMv2Response(byte[] responseKeyLM,
byte[] serverChallenge,
byte[] clientChallenge) |
static byte[] |
getLMv2Response(java.lang.String domain,
java.lang.String user,
java.lang.String password,
byte[] challenge,
byte[] clientChallenge)
Creates the LMv2 response for the supplied information.
|
java.lang.String |
getName()
Return the domain and username in the format:
domain\\username.
|
static byte[] |
getNTLM2Response(byte[] nTOWFv1,
byte[] serverChallenge,
byte[] clientChallenge) |
static byte[] |
getNTLMResponse(java.lang.String password,
byte[] challenge)
Generate the Unicode MD4 hash for the password associated with these credentials.
|
static byte[] |
getNTLMv2Response(byte[] responseKeyNT,
byte[] serverChallenge,
byte[] clientChallenge,
long nanos1601,
byte[] targetInfo) |
java.lang.String |
getPassword()
Returns the password in plain text or null if the raw password
hashes were used to construct this NtlmPasswordAuthentication
object which will be the case when NTLM HTTP Authentication is
used.
|
static byte[] |
getPreNTLMResponse(java.lang.String password,
byte[] challenge)
Generate the ANSI DES hash for the password associated with these credentials.
|
byte[] |
getSigningKey(byte[] challenge) |
byte[] |
getUnicodeHash(byte[] challenge)
Computes the 24 byte Unicode password hash given the 8 byte server challenge.
|
java.lang.String |
getUsername()
Returns the username.
|
byte[] |
getUserSessionKey(byte[] challenge)
Returns the effective user session key.
|
int |
hashCode()
Return the upcased username hash code.
|
static byte[] |
nTOWFv1(java.lang.String password) |
static byte[] |
nTOWFv2(java.lang.String domain,
java.lang.String username,
java.lang.String password) |
java.lang.String |
toString()
Return the domain and username in the format:
domain\\username.
|
public static final NtlmPasswordAuthentication ANONYMOUS
public NtlmPasswordAuthentication(java.lang.String userInfo)
public NtlmPasswordAuthentication(java.lang.String domain, java.lang.String username, java.lang.String password)
public NtlmPasswordAuthentication(java.lang.String domain, java.lang.String username, byte[] challenge, byte[] ansiHash, byte[] unicodeHash)
public static byte[] getPreNTLMResponse(java.lang.String password, byte[] challenge)
public static byte[] getNTLMResponse(java.lang.String password, byte[] challenge)
public static byte[] getLMv2Response(java.lang.String domain, java.lang.String user, java.lang.String password, byte[] challenge, byte[] clientChallenge)
domain
- The domain in which the username exists.user
- The username.password
- The user's password.challenge
- The server challenge.clientChallenge
- The client challenge (nonce).public static byte[] getNTLM2Response(byte[] nTOWFv1, byte[] serverChallenge, byte[] clientChallenge)
public static byte[] nTOWFv1(java.lang.String password)
public static byte[] nTOWFv2(java.lang.String domain, java.lang.String username, java.lang.String password)
public static byte[] getLMv2Response(byte[] responseKeyLM, byte[] serverChallenge, byte[] clientChallenge)
public static byte[] getNTLMv2Response(byte[] responseKeyNT, byte[] serverChallenge, byte[] clientChallenge, long nanos1601, byte[] targetInfo)
public java.lang.String getDomain()
public java.lang.String getUsername()
public java.lang.String getPassword()
public java.lang.String getName()
getName
in interface java.security.Principal
public byte[] getAnsiHash(byte[] challenge)
public byte[] getUnicodeHash(byte[] challenge)
public byte[] getSigningKey(byte[] challenge) throws SmbException
SmbException
public byte[] getUserSessionKey(byte[] challenge)
challenge
- The server challenge.byte[]
containing the effective user session key,
used in SMB MAC signing and NTLMSSP signing and sealing.public boolean equals(java.lang.Object obj)
equals
in interface java.security.Principal
equals
in class java.lang.Object
public int hashCode()
hashCode
in interface java.security.Principal
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in interface java.security.Principal
toString
in class java.lang.Object