private static byte[] GetAdditionalBytes(UInt64 seqNum, byte type, ProtocolVersion version, int length)
{
byte[] seqData = BitConverter.GetBytes(seqNum);
if (BitConverter.IsLittleEndian) {
Array.Reverse(seqData);
}
byte[] additional;
if (version == ProtocolVersion.SSL3_0) {
// With SSL3 should not include version information
additional = new byte[11];
Buffer.BlockCopy(seqData, 0, additional, 0, 8);
additional[8] = (byte) (type);
additional[9] = (byte) (length >> 8);
additional[10] = (byte) (length);
} else {
// Normal TLS additional bytes to be used
additional = new byte[13];
Buffer.BlockCopy(seqData, 0, additional, 0, 8);
additional[8] = (byte) (type);
additional[9] = version.Major;
additional[10] = version.Minor;
additional[11] = (byte) (length >> 8);
additional[12] = (byte) (length);
}
return additional;
}