/// <summary>
        /// Initializes a new instance of the <see cref="AzureKeyVaultCosmosEncryptor"/> class.
        /// Creates an Encryption Key Provider for wrap and unwrapping Data Encryption key via a Key Vault.
        /// </summary>
        /// <param name="keyVaultTokenCredentialFactory"> Factory Instance which represents a method to acquire TokenCredentials for accessing Key Vault Services. </param>
        public AzureKeyVaultCosmosEncryptor(KeyVaultTokenCredentialFactory keyVaultTokenCredentialFactory)
        {
            EncryptionKeyWrapProvider wrapProvider = new AzureKeyVaultKeyWrapProvider(keyVaultTokenCredentialFactory);

            this.cosmosDekProvider = new CosmosDataEncryptionKeyProvider(wrapProvider);
            this.cosmosEncryptor   = new CosmosEncryptor(this.cosmosDekProvider);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AzureKeyVaultCosmosEncryptor"/> class.
        /// Creates an Encryption Key Provider for wrap and unwrapping Data Encryption key via a Key Vault.
        /// </summary>
        /// <param name="tokenCredential"> User provided TokenCredential for accessing Key Vault services. </param>
        public AzureKeyVaultCosmosEncryptor(TokenCredential tokenCredential)
        {
            EncryptionKeyWrapProvider wrapProvider = new AzureKeyVaultKeyWrapProvider(new UserProvidedTokenCredentialFactory(tokenCredential));

            this.cosmosDekProvider = new CosmosDataEncryptionKeyProvider(wrapProvider);
            this.cosmosEncryptor   = new CosmosEncryptor(this.cosmosDekProvider);
        }
        public AzureKeyVaultCosmosEncryptor(
            string clientId,
            string certificateThumbprint)
        {
            EncryptionKeyWrapProvider wrapProvider = new AzureKeyVaultKeyWrapProvider(
                clientId,
                certificateThumbprint);

            this.cosmosDekProvider = new CosmosDataEncryptionKeyProvider(wrapProvider);
            this.cosmosEncryptor   = new CosmosEncryptor(this.cosmosDekProvider);
        }
 public DataEncryptionKeyContainerCore(CosmosDataEncryptionKeyProvider dekProvider)
 {
     this.DekProvider = dekProvider;
 }