writeAVPair(buf, avPairType, value.getBytes(RdpConstants.CHARSET_16));
}
}
public byte[] ntlm_construct_authenticate_target_info() {
ByteBuffer buf = new ByteBuffer(4096);
writeAVPair(buf, MSV_AV_NETBIOS_DOMAIN_NAME, serverNetbiosDomainName);
writeAVPair(buf, MSV_AV_NETBIOS_COMPUTER_NAME, serverNetbiosComputerName);
writeAVPair(buf, MSV_AV_DNS_DOMAIN_NAME, serverDnsDomainName);
writeAVPair(buf, MSV_AV_DNS_COMPUTER_NAME, serverDnsComputerName);
writeAVPair(buf, MSV_AV_DNS_TREE_NAME, serverDnsTreeName);
writeAVPair(buf, MSV_AV_TIMESTAMP, serverTimestamp);
byte[] flags = new byte[] {(byte)MSV_AV_FLAGS_MESSAGE_INTEGRITY_CHECK, 0, 0, 0};
writeAVPair(buf, MSV_AV_FLAGS, flags);
writeAVPair(buf, MSV_AV_CHANNEL_BINDINGS, channelBindingsHash);
writeAVPair(buf, MSV_AV_TARGET_NAME, servicePrincipalName);
writeAVPair(buf, MSV_AV_EOL, "");
// DEBUG: put EOL 4 times, for compatibility with FreeRDP output
//*DEBUG*/writeAVPair(buf, MSV_AV_EOL, "");
//*DEBUG*/writeAVPair(buf, MSV_AV_EOL, "");
//*DEBUG*/writeAVPair(buf, MSV_AV_EOL, "");
buf.trimAtCursor();
authenticateTargetInfo = buf.toByteArray();
buf.unref();
return authenticateTargetInfo;
}