AaltoTLS.RecordLayer.RecordHandler.GetAdditionalBytes C# (CSharp) Method

GetAdditionalBytes() private static method

private static GetAdditionalBytes ( System.UInt64 seqNum, byte type, ProtocolVersion version, int length ) : byte[]
seqNum System.UInt64
type byte
version AaltoTLS.PluginInterface.ProtocolVersion
length int
return byte[]
        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;
        }