netrServerReqChallenge.getServerChallenge());
byte[] clientCredential = computeNetlogonCredential(
clientChallenge, sessionKey);
NetrServerAuthenticate3 netrServerAuthenticate3 =
new NetrServerAuthenticate3(
domainControllerName, ntlmServiceAccount.getAccountName(), 2,
ntlmServiceAccount.getComputerName(), clientCredential,
new byte[8], _negotiateFlags);
dcerpcHandle.sendrecv(netrServerAuthenticate3);
byte[] serverCredential = computeNetlogonCredential(
netrServerReqChallenge.getServerChallenge(), sessionKey);
if (!Arrays.equals(
serverCredential,
netrServerAuthenticate3.getServerCredential())) {
throw new NtlmLogonException("Session key negotiation failed");
}
_clientCredential = clientCredential;