buf.writeShort(0); // reserved
buf.writeInt(0); // reserved
buf.writeBytes(clientChallengeTimestamp); // Timestamp, 8 bytes
buf.writeBytes(clientChallenge); // Client nonce, 8 bytes
buf.writeInt(0); // reserved
buf.writeBytes(authenticateTargetInfo); // Target Info block
buf.trimAtCursor();
byte[] bufBytes = buf.toByteArray();
buf.unref();
nt_proof_str = computeNtProofStr(ntlm_v2_hash, CryptoAlgos.concatenationOf(serverChallenge, bufBytes));