Esempio n. 1
0
        /// <summary>
        /// 初始化一个<see cref="HostHttpCrypto"/>类型的新实例
        /// </summary>
        public HostHttpCrypto(IServiceProvider provider)
        {
            _logger = provider.GetLogger(typeof(ClientHttpCrypto));
            OsharpOptions options = provider.GetOSharpOptions();

            if (options?.HttpEncrypt?.Enabled == true)
            {
                HttpEncryptOptions httpEncrypt = options.HttpEncrypt;
                _privateKey = httpEncrypt.HostPrivateKey;
                if (string.IsNullOrEmpty(_privateKey))
                {
                    throw new OsharpException("配置文件中HttpEncrypt节点的HostPrivateKey不能为空");
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 初始化一个<see cref="ClientHttpCrypto"/>类型的新实例
        /// </summary>
        public ClientHttpCrypto(IServiceProvider provider)
        {
            _logger = provider.GetLogger(typeof(ClientHttpCrypto));
            OsharpOptions options = provider.GetOSharpOptions();

            if (options.HttpEncrypt?.Enabled == true)
            {
                HttpEncryptOptions httpEncrypt     = options.HttpEncrypt;
                string             clientPublicKey = httpEncrypt.ClientPublicKey;
                if (string.IsNullOrEmpty(clientPublicKey))
                {
                    throw new OsharpException("配置文件中HttpEncrypt节点的ClientPublicKey不能为空");
                }
                RsaHelper rsa = new RsaHelper();
                _encryptor = new TransmissionEncryptor(rsa.PrivateKey, httpEncrypt.ClientPublicKey);
                _publicKey = rsa.PublicKey;
            }
        }