예제 #1
0
        /// <summary>
        /// Reads the key container from an input stream
        /// </summary>
        ///
        /// <param name="KeyStream">An input stream containing an encoded key container</param>
        public AsymmetricContainer(MemoryStream KeyStream)
        {
            BinaryReader reader = new BinaryReader(KeyStream);

            byte[] data;
            int    len;

            m_idTag     = null;
            m_publicKey = null;
            m_publicKey = null;

            // tag
            len = reader.ReadInt32();
            if (len > 0)
            {
                m_idTag = reader.ReadBytes(len);
            }

            // family
            m_asmEngine = (AsymmetricEngines)reader.ReadByte();

            // parameters
            len             = reader.ReadInt32();
            data            = reader.ReadBytes(len);
            m_asmParameters = ParamsFromBytes(data);

            // public key
            len = reader.ReadInt32();
            if (len > 0)
            {
                data        = reader.ReadBytes(len);
                m_publicKey = PublicKeyFromBytes(data);
            }

            // private key
            len = reader.ReadInt32();
            if (len > 0)
            {
                data         = reader.ReadBytes(len);
                m_privateKey = PrivateKeyFromBytes(data);
            }
        }
예제 #2
0
        /// <summary>
        /// Reads the key container from an input stream
        /// </summary>
        /// 
        /// <param name="KeyStream">An input stream containing an encoded key container</param>
        public AsymmetricContainer(MemoryStream KeyStream)
        {
            BinaryReader reader = new BinaryReader(KeyStream);
            byte[] data;
            int len;

            _idTag = null;
            _publicKey = null;
            _publicKey = null;

            // tag
            len = reader.ReadInt32();
            if (len > 0)
                _idTag = reader.ReadBytes(len);

            // family
            _asmEngine = (AsymmetricEngines)reader.ReadByte();

            // parameters
            len = reader.ReadInt32();
            data = reader.ReadBytes(len);
            _asmParameters = ParamsFromBytes(data);

            // public key
            len = reader.ReadInt32();
            if (len > 0)
            {
                data = reader.ReadBytes(len);
                _publicKey = PublicKeyFromBytes(data);
            }

            // private key
            len = reader.ReadInt32();
            if (len > 0)
            {
                data = reader.ReadBytes(len);
                _privateKey = PrivateKeyFromBytes(data);
            }
        }