Exemple #1
0
        // constructors
        /// <summary>
        /// Initializes a new instance of the <see cref="ClientEncryptionOptions"/> class.
        /// </summary>
        /// <param name="keyVaultClient">The key vault client.</param>
        /// <param name="keyVaultNamespace">The key vault namespace.</param>
        /// <param name="kmsProviders">The KMS providers.</param>
        /// <param name="tlsOptions">The tls options.</param>
        public ClientEncryptionOptions(
            IMongoClient keyVaultClient,
            CollectionNamespace keyVaultNamespace,
            IReadOnlyDictionary <string, IReadOnlyDictionary <string, object> > kmsProviders,
            Optional <IReadOnlyDictionary <string, SslSettings> > tlsOptions = default)
        {
            _keyVaultClient    = Ensure.IsNotNull(keyVaultClient, nameof(keyVaultClient));
            _keyVaultNamespace = Ensure.IsNotNull(keyVaultNamespace, nameof(keyVaultNamespace));
            _kmsProviders      = Ensure.IsNotNull(kmsProviders, nameof(kmsProviders));
            _tlsOptions        = tlsOptions.WithDefault(new Dictionary <string, SslSettings>());

            KmsProvidersHelper.EnsureKmsProvidersAreValid(_kmsProviders);
            KmsProvidersHelper.EnsureKmsProvidersTlsSettingsAreValid(_tlsOptions);
        }
Exemple #2
0
        // constructors
        /// <summary>
        /// Initializes a new instance of the <see cref="AutoEncryptionOptions"/> class.
        /// </summary>
        /// <param name="keyVaultNamespace">The keyVault namespace.</param>
        /// <param name="kmsProviders">The kms providers.</param>
        /// <param name="bypassAutoEncryption">The bypass auto encryption flag.</param>
        /// <param name="extraOptions">The extra options.</param>
        /// <param name="keyVaultClient">The keyVault client.</param>
        /// <param name="schemaMap">The schema map.</param>
        /// <param name="tlsOptions">The tls options.</param>
        public AutoEncryptionOptions(
            CollectionNamespace keyVaultNamespace,
            IReadOnlyDictionary <string, IReadOnlyDictionary <string, object> > kmsProviders,
            Optional <bool> bypassAutoEncryption = default,
            Optional <IReadOnlyDictionary <string, object> > extraOptions = default,
            Optional <IMongoClient> keyVaultClient = default,
            Optional <IReadOnlyDictionary <string, BsonDocument> > schemaMap = default,
            Optional <IReadOnlyDictionary <string, SslSettings> > tlsOptions = default)
        {
            _keyVaultNamespace    = Ensure.IsNotNull(keyVaultNamespace, nameof(keyVaultNamespace));
            _kmsProviders         = Ensure.IsNotNull(kmsProviders, nameof(kmsProviders));
            _bypassAutoEncryption = bypassAutoEncryption.WithDefault(false);
            _extraOptions         = extraOptions.WithDefault(null);
            _keyVaultClient       = keyVaultClient.WithDefault(null);
            _schemaMap            = schemaMap.WithDefault(null);
            _tlsOptions           = tlsOptions.WithDefault(new Dictionary <string, SslSettings>());

            EncryptionExtraOptionsValidator.EnsureThatExtraOptionsAreValid(_extraOptions);
            KmsProvidersHelper.EnsureKmsProvidersAreValid(_kmsProviders);
            KmsProvidersHelper.EnsureKmsProvidersTlsSettingsAreValid(_tlsOptions);
        }