/// <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不能为空"); } } }
/// <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; } }