コード例 #1
0
ファイル: XmlKeyManager.cs プロジェクト: wserr/AspNetCore
        internal XmlKeyManager(
            IOptions <KeyManagementOptions> keyManagementOptions,
            IActivator activator,
            ILoggerFactory loggerFactory,
            IDefaultKeyStorageDirectories keyStorageDirectories)
        {
            _loggerFactory         = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
            _logger                = _loggerFactory.CreateLogger <XmlKeyManager>();
            _keyStorageDirectories = keyStorageDirectories ?? throw new ArgumentNullException(nameof(keyStorageDirectories));

            var keyRepository = keyManagementOptions.Value.XmlRepository;
            var keyEncryptor  = keyManagementOptions.Value.XmlEncryptor;

            if (keyRepository == null)
            {
                if (keyEncryptor != null)
                {
                    throw new InvalidOperationException(
                              Resources.FormatXmlKeyManager_IXmlRepositoryNotFound(nameof(IXmlRepository), nameof(IXmlEncryptor)));
                }
                else
                {
                    var keyRepositoryEncryptorPair = GetFallbackKeyRepositoryEncryptorPair();
                    keyRepository = keyRepositoryEncryptorPair.Key;
                    keyEncryptor  = keyRepositoryEncryptorPair.Value;
                }
            }

            KeyRepository = keyRepository;
            KeyEncryptor  = keyEncryptor;

            _authenticatedEncryptorConfiguration = keyManagementOptions.Value.AuthenticatedEncryptorConfiguration !;

            var escrowSinks = keyManagementOptions.Value.KeyEscrowSinks;

            _keyEscrowSink = escrowSinks.Count > 0 ? new AggregateKeyEscrowSink(escrowSinks) : null;
            _activator     = activator;
            TriggerAndResetCacheExpirationToken(suppressLogging: true);
            _internalKeyManager = _internalKeyManager ?? this;
            _encryptorFactories = keyManagementOptions.Value.AuthenticatedEncryptorFactories;
        }
コード例 #2
0
        internal XmlKeyManager(
            IOptions <KeyManagementOptions> keyManagementOptions,
            IActivator activator,
            ILoggerFactory loggerFactory,
            IDefaultKeyStorageDirectories keyStorageDirectories)
        {
            _loggerFactory         = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
            _logger                = _loggerFactory.CreateLogger <XmlKeyManager>();
            _keyStorageDirectories = keyStorageDirectories ?? throw new ArgumentNullException(nameof(keyStorageDirectories));

            KeyRepository = keyManagementOptions.Value.XmlRepository;
            KeyEncryptor  = keyManagementOptions.Value.XmlEncryptor;
            if (KeyRepository == null)
            {
                if (KeyEncryptor != null)
                {
                    throw new InvalidOperationException($"The '{nameof(IXmlRepository)}' instance could not be found. When an '{nameof(IXmlEncryptor)}' instance is set, a corresponding '{nameof(IXmlRepository)}' instance must also be set.");
                }
                else
                {
                    var keyRepositoryEncryptorPair = GetFallbackKeyRepositoryEncryptorPair();
                    KeyRepository = keyRepositoryEncryptorPair.Key;
                    KeyEncryptor  = keyRepositoryEncryptorPair.Value;
                }
            }

            _authenticatedEncryptorConfiguration = keyManagementOptions.Value.AuthenticatedEncryptorConfiguration;

            var escrowSinks = keyManagementOptions.Value.KeyEscrowSinks;

            _keyEscrowSink = escrowSinks.Count > 0 ? new AggregateKeyEscrowSink(escrowSinks) : null;
            _activator     = activator;
            TriggerAndResetCacheExpirationToken(suppressLogging: true);
            _internalKeyManager = _internalKeyManager ?? this;
            _encryptorFactories = keyManagementOptions.Value.AuthenticatedEncryptorFactories;
        }