public bool Decode(byte[] rawData, int payloadLength, ref int index)
        {
            try
            {
                this.type = (RDP_Connect_Payload_Type)BitConverter.ToUInt32(Utility.GetNumericBytes(rawData, index, 4), 0);
                index    += 4;

                if (type == RDP_Connect_Payload_Type.RDP_FILE)
                {
                    this.rdpFileConfig = Encoding.UTF8.GetString(rawData, index, payloadLength - 4);
                    index += (payloadLength - 4);
                }
                else
                {
                    this.configureParameters = new RDP_Connection_Configure_Parameters();
                    if (!this.configureParameters.Decode(rawData, ref index))
                    {
                        return(false);
                    }
                }
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
Example #2
0
        /// <summary>
        /// Initialize this adapter
        /// </summary>
        /// <param name="testSite"></param>
        public override void Initialize(ITestSite testSite)
        {
            base.Initialize(testSite);

            controlHandler = SUTControlProtocolHandler.GetInstance(testSite);
            // Initiate local IP
            string proxyIP = testSite.Properties["RDP.ProxyIP"];

            if (string.IsNullOrEmpty(proxyIP))
            {
                rdpServerIP = GetLocalIP();
            }
            else
            {
                rdpServerIP = proxyIP;
            }

            // Initiate local port
            try
            {
                localPort = ushort.Parse(testSite.Properties["RDP.ServerPort"]);
            }
            catch
            {
                localPort = 0;
            }

            // Initiate Connect payload type
            bool clientSupportRDPFile = false;

            try
            {
                clientSupportRDPFile = bool.Parse(testSite.Properties["SUTControl.ClientSupportRDPFile"]);
            }
            catch
            {
            }
            if (clientSupportRDPFile)
            {
                connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE;
            }
            else
            {
                connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT;
            }

            string strIsClientSupportCompression = Site.Properties["RDP.Client.SupportCompression"];

            if (strIsClientSupportCompression != null)
            {
                isClientSupportCompression = Boolean.Parse(strIsClientSupportCompression);
            }
        }
Example #3
0
        /// <summary>
        /// Create a payload for start RDP connection command
        /// </summary>
        /// <param name="payloadType">Type of payload: Content of .rdp file or Parameter structure</param>
        /// <param name="localAddress">Local address</param>
        /// <param name="RDPPort">Port test suite listening</param>
        /// <param name="DirectApproach">true for 'Direct', false for 'Negotiate'</param>
        /// <param name="fullScreen">true for full screen, otherwise false</param>
        /// <returns>Return encoded binary of the payload</returns>
        private byte[] CreateRDPConncectPayload(RDP_Connect_Payload_Type payloadType, string localAddress, uint RDPPort, bool DirectApproach, bool fullScreen)
        {
            RDP_Connection_Payload payLoad = new RDP_Connection_Payload();

            payLoad.type = payloadType;

            if (payloadType == RDP_Connect_Payload_Type.RDP_FILE)
            {
                payLoad.rdpFileConfig = GenerateRDPFileString(localAddress, RDPPort, DirectApproach, fullScreen);
            }
            else
            {
                payLoad.configureParameters = GenerateRDPConnectionConfigParameters(localAddress, RDPPort, DirectApproach, fullScreen);
            }

            return(payLoad.Encode());
        }
Example #4
0
        /// <summary>
        /// Initialize this adapter
        /// </summary>
        /// <param name="testSite"></param>
        public override void Initialize(ITestSite testSite)
        {
            base.Initialize(testSite);

            controlHandler = SUTControlProtocolHandler.GetInstance(testSite);
            // Initiate local IP
            string proxyIP;

            PtfPropUtility.GetPtfPropertyValue(testSite, "ProxyIP", out proxyIP);
            if (string.IsNullOrEmpty(proxyIP))
            {
                rdpServerIP = GetLocalIP();
            }
            else
            {
                rdpServerIP = proxyIP;
            }

            // Initiate local port
            try
            {
                string localPortString;
                PtfPropUtility.GetPtfPropertyValue(testSite, "ServerPort", out localPortString);
                localPort = ushort.Parse(localPortString);
            }
            catch
            {
                localPort = 0;
            }

            // Initiate Connect payload type
            bool clientSupportRDPFile;

            PtfPropUtility.GetPtfPropertyValue(testSite, "ClientSupportRDPFile", out clientSupportRDPFile, new string[] { RdpPtfGroupNames.SUTControl });

            if (clientSupportRDPFile)
            {
                connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE;
            }
            else
            {
                connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT;
            }

            PtfPropUtility.GetPtfPropertyValue(testSite, "SupportCompression", out isClientSupportCompression);
        }
        /// <summary>
        /// Initialize this adapter
        /// </summary>
        /// <param name="testSite"></param>
        public override void Initialize(ITestSite testSite)
        {
            base.Initialize(testSite);

            controlHandler = SUTControlProtocolHandler.GetInstance(testSite);
            // Initiate local IP
            localIP = GetLocalIP();

            // Initiate local port
            try
            {
                localPort = ushort.Parse(testSite.Properties["RDP.ServerPort"]);
            }
            catch
            {
                localPort = 0;
            }

            // Initiate Connect payload type
            bool clientSupportRDPFile = false;

            try
            {
                clientSupportRDPFile = bool.Parse(testSite.Properties["SUTControl.ClientSupportRDPFile"]);
            }
            catch
            {
            }
            if (clientSupportRDPFile)
            {
                connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE;
            }
            else
            {
                connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT;
            }
        }
        /// <summary>
        /// Initialize this adapter
        /// </summary>
        /// <param name="testSite"></param>
        public override void Initialize(ITestSite testSite)
        {
            base.Initialize(testSite);

            controlHandler = SUTControlProtocolHandler.GetInstance(testSite);
            // Initiate local IP
            localIP = GetLocalIP();

            // Initiate local port
            try
            {
                localPort = ushort.Parse(testSite.Properties["RDP.ServerPort"]);
            }
            catch
            {
                localPort = 0;
            }

            // Initiate Connect payload type
            bool clientSupportRDPFile = false;
            try
            {
                clientSupportRDPFile = bool.Parse(testSite.Properties["SUTControl.ClientSupportRDPFile"]);
            }
            catch
            {
            }
            if (clientSupportRDPFile)
            {
                connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE;
            }
            else
            {
                connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT;
            }
        }
        /// <summary>
        /// Create a payload for start RDP connection command
        /// </summary>
        /// <param name="payloadType">Type of payload: Content of .rdp file or Parameter structure</param>
        /// <param name="localAddress">Local address</param>
        /// <param name="RDPPort">Port test suite listening</param>
        /// <param name="DirectApproach">true for 'Direct', false for 'Negotiate'</param>
        /// <param name="fullScreen">true for full screen, otherwise false</param>
        /// <returns>Return encoded binary of the payload</returns>
        private byte[] CreateRDPConncectPayload(RDP_Connect_Payload_Type payloadType, string localAddress, uint RDPPort, bool DirectApproach, bool fullScreen)
        {
            RDP_Connection_Payload payLoad = new RDP_Connection_Payload();
            payLoad.type = payloadType;

            if (payloadType == RDP_Connect_Payload_Type.RDP_FILE)
            {
                payLoad.rdpFileConfig = GenerateRDPFileString(localAddress, RDPPort, DirectApproach, fullScreen);
            }
            else
            {
                payLoad.configureParameters = GenerateRDPConnectionConfigParameters(localAddress, RDPPort, DirectApproach, fullScreen);
            }

            return payLoad.Encode();
        }