The TS_SECURITY_HEADER2 structure is attached to all traffic when the Encryption Level selected by the server (see sections and ) is ENCRYPTION_LEVEL_FIPS (4).
file:///C:/ts_dev/TestSuites/MS-RDPBCGR/TestSuite/Src/TD/latest_XMLS_16may/RDPBCGR/ _rfc_ms-rdpbcgr2_1_7_1_1_2_3.xml
Наследование: TS_SECURITY_HEADER
        /// <summary>
        /// Parse TS_SECURITY_HEADER (FIPS)
        /// (parser index is updated according to parsed length)
        /// </summary>
        /// <param name="data">data to be parsed</param>
        /// <param name="currentIndex">current parser index</param>
        /// <returns>TS_SECURITY_HEADER</returns>
        private TS_SECURITY_HEADER ParseTsSecurityHeaderFips(byte[] data, ref int currentIndex)
        {
            TS_SECURITY_HEADER2 header = new TS_SECURITY_HEADER2();

            // TS_SECURITY_HEADER2: flags
            header.flags = (TS_SECURITY_HEADER_flags_Values)ParseUInt16(data, ref currentIndex, false);

            // TS_SECURITY_HEADER2: flagsHi
            header.flagsHi = ParseUInt16(data, ref currentIndex, false);

            // TS_SECURITY_HEADER2: length
            header.length = (TS_SECURITY_HEADER2_length_Values)ParseUInt16(data, ref currentIndex, false);

            // TS_SECURITY_HEADER2: version
            header.version = ParseByte(data, ref currentIndex);

            // TS_SECURITY_HEADER2: padlen
            header.padlen = ParseByte(data, ref currentIndex);

            // TS_SECURITY_HEADER2: dataSignature
            header.dataSignature = GetBytes(data, ref currentIndex,
                ConstValue.TS_SECURITY_HEADER_DATA_SIGNATURE_LENGTH);

            return header;
        }
Пример #2
0
        /// <summary>
        /// Create an instance of the class that is identical to the current PDU. 
        /// </summary>
        /// <returns>The new instance.</returns>
        public override TS_SECURITY_HEADER Clone()
        {
            TS_SECURITY_HEADER2 cloneHeader = new TS_SECURITY_HEADER2();
            cloneHeader.flags = flags;
            cloneHeader.flagsHi = flagsHi;
            cloneHeader.length = length;
            cloneHeader.version = version;
            cloneHeader.padlen = padlen;
            cloneHeader.dataSignature = RdpbcgrUtility.CloneByteArray(dataSignature);

            return cloneHeader;
        }