The structure used to describe a public key in a Proprietary Certificate.
file:///C:/ts_dev/TestSuites/MS-RDPBCGR/TestSuite/Src/TD/latest_XMLS_16may/RDPBCGR/ _rfc_ms-rdpbcgr2_1_1_4_3_1_1.xml
        /// <summary>
        /// Parse RSA_PUBLIC_KEY
        /// (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>RSA_PUBLIC_KEY</returns>
        private RSA_PUBLIC_KEY ParseRsaPublicKey(byte[] data, ref int currentIndex)
        {
            RSA_PUBLIC_KEY key = new RSA_PUBLIC_KEY();

            // RSA_PUBLIC_KEY: magic
            key.magic = (magic_Values)ParseUInt32(data, ref currentIndex, false);

            // RSA_PUBLIC_KEY: keylen
            key.keylen = ParseUInt32(data, ref currentIndex, false);

            // RSA_PUBLIC_KEY: keylen
            key.bitlen = ParseUInt32(data, ref currentIndex, false);

            // RSA_PUBLIC_KEY: datalen
            key.datalen = ParseUInt32(data, ref currentIndex, false);

            // RSA_PUBLIC_KEY: pubExp
            key.pubExp = ParseUInt32(data, ref currentIndex, false);

            // RSA_PUBLIC_KEY: modulus
            key.modulus = GetBytes(data, ref currentIndex, (int)key.keylen);

            return key;
        }