public override SymmetricCryptoProviderData GetSymmetricCryptoProviderData(string instanceName)
 {
     DpapiSymmetricCryptoProviderData data = new DpapiSymmetricCryptoProviderData();
     data.Name = "name";
     DpapiSettingsData settingsData = new DpapiSettingsData();
     settingsData.Mode = DpapiStorageMode.Machine;
     settingsData.Entropy = this.entropy;
     data.DataProtectionMode = settingsData;
     return data;
 }
            public EncryptUsingDPAPIProviderNamedBuilder(IConfigureCryptography context, string dpapiProviderName)
                : base(context)
            {
                providerData = new DpapiSymmetricCryptoProviderData
                {
                    Name = dpapiProviderName
                };

                base.CryptographySettings.SymmetricCryptoProviders.Add(providerData);
            }
        /// <summary>
        /// This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code.
        /// Builds a <see cref="DpapiSymmetricCryptoProvider"/> based on an instance of <see cref="DpapiSymmetricCryptoProviderData"/>.
        /// </summary>
        /// <seealso cref="SymmetricCryptoProviderCustomFactory"/>
        /// <param name="context">The <see cref="IBuilderContext"/> that represents the current building process.</param>
        /// <param name="objectConfiguration">The configuration object that describes the object to build. Must be an instance of <see cref="DpapiSymmetricCryptoProviderData"/>.</param>
        /// <param name="configurationSource">The source for configuration objects.</param>
        /// <param name="reflectionCache">The cache to use retrieving reflection information.</param>
        /// <returns>A fully initialized instance of <see cref="DpapiSymmetricCryptoProvider"/>.</returns>
        public ISymmetricCryptoProvider Assemble(IBuilderContext context, SymmetricProviderData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache)
        {
            DpapiSymmetricCryptoProviderData castedObjectConfiguration
                = (DpapiSymmetricCryptoProviderData)objectConfiguration;

            ISymmetricCryptoProvider createdObject
                = new DpapiSymmetricCryptoProvider(
                      castedObjectConfiguration.Scope);

            return(createdObject);
        }