public void HashProviderWithDisabledPolicyIsRemoved() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); HashAlgorithmProviderData hashProvider1Data = new HashAlgorithmProviderData("hashProvider1", typeof(Object), false); section.HashProviders.Add(hashProvider1Data); HashAlgorithmProviderData hashProvider2Data = new HashAlgorithmProviderData("hashProvider2", typeof(Object), false); section.HashProviders.Add(hashProvider2Data); MockRegistryKey machineHashProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.HashProvidersKeyName, machineHashProvidersKey); MockRegistryKey machineHashProvider2Key = new MockRegistryKey(false); machineHashProvidersKey.AddSubKey("hashProvider2", machineHashProvider2Key); machineHashProvider2Key.AddBooleanValue(CryptographySettingsManageabilityProvider.PolicyValueName, false); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.AreEqual(1, section.HashProviders.Count); Assert.IsNotNull(section.HashProviders.Get("hashProvider1")); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineHashProvidersKey, machineHashProvider2Key)); }
public void SymmetricCryptoProviderWithDisabledPolicyIsNotRemovedIfGroupPoliciesAreDisabled() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); SymmetricAlgorithmProviderData symmetricCryptoProvider1Data = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProvider1Data); SymmetricAlgorithmProviderData symmetricCryptoProvider2Data = new SymmetricAlgorithmProviderData("symmetricCryptoProvider2", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProvider2Data); MockRegistryKey machineSymmetricCryptoProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, machineSymmetricCryptoProvidersKey); MockRegistryKey machineSymmetricCryptoProvider2Key = new MockRegistryKey(false); machineSymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", machineSymmetricCryptoProvider2Key); machineSymmetricCryptoProvider2Key.AddBooleanValue(CryptographySettingsManageabilityProvider.PolicyValueName, false); provider.OverrideWithGroupPolicies(section, false, machineKey, userKey); Assert.AreEqual(2, section.SymmetricCryptoProviders.Count); Assert.IsNotNull(section.SymmetricCryptoProviders.Get("symmetricCryptoProvider1")); Assert.IsNotNull(section.SymmetricCryptoProviders.Get("symmetricCryptoProvider2")); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineSymmetricCryptoProvidersKey, machineSymmetricCryptoProvider2Key)); }
public void SetUp() { provider = new CryptographySettingsManageabilityProvider(new Dictionary <Type, ConfigurationElementManageabilityProvider>(0)); machineKey = new MockRegistryKey(true); userKey = new MockRegistryKey(true); section = new CryptographySettings(); configurationSource = new DictionaryConfigurationSource(); configurationSource.Add("securityCryptographyConfiguration", section); }
public void SetUp() { provider = new CryptographySettingsManageabilityProvider(new Dictionary<Type, ConfigurationElementManageabilityProvider>(0)); machineKey = new MockRegistryKey(true); userKey = new MockRegistryKey(true); section = new CryptographySettings(); configurationSource = new DictionaryConfigurationSource(); configurationSource.Add("securityCryptographyConfiguration", section); }
public void RegisteredSymmetricCryptoProviderDataProviderIsCalledWithCorrectOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); SymmetricAlgorithmProviderData symmetricCryptoProviderData = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProviderData); MockRegistryKey machinesymmetricCryptoProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, machinesymmetricCryptoProvidersKey); MockRegistryKey machinesymmetricCryptoProviderKey = new MockRegistryKey(false); machinesymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider1", machinesymmetricCryptoProviderKey); MockRegistryKey machineOthersymmetricCryptoProviderKey = new MockRegistryKey(false); machinesymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", machineOthersymmetricCryptoProviderKey); MockRegistryKey usersymmetricCryptoProvidersKey = new MockRegistryKey(false); userKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, usersymmetricCryptoProvidersKey); MockRegistryKey usersymmetricCryptoProviderKey = new MockRegistryKey(false); usersymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider1", usersymmetricCryptoProviderKey); MockRegistryKey userOthersymmetricCryptoProviderKey = new MockRegistryKey(false); usersymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", userOthersymmetricCryptoProviderKey); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.IsTrue(registeredProvider.called); Assert.AreSame(symmetricCryptoProviderData, registeredProvider.LastConfigurationObject); Assert.AreSame(machinesymmetricCryptoProviderKey, registeredProvider.machineKey); Assert.AreSame(usersymmetricCryptoProviderKey, registeredProvider.userKey); Assert.IsTrue( MockRegistryKey.CheckAllClosed(machinesymmetricCryptoProvidersKey, machinesymmetricCryptoProviderKey, machineOthersymmetricCryptoProviderKey, usersymmetricCryptoProvidersKey, usersymmetricCryptoProviderKey, userOthersymmetricCryptoProviderKey)); }
public void RegisteredSymmetricCryptoProviderDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); SymmetricAlgorithmProviderData symmetricCryptoProviderData = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProviderData); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.IsTrue(registeredProvider.called); Assert.AreSame(symmetricCryptoProviderData, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void RegisteredHashProviderDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); HashAlgorithmProviderData hashProviderData = new HashAlgorithmProviderData("hashProvider1", typeof(Object), false); section.HashProviders.Add(hashProviderData); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.IsTrue(registeredProvider.called); Assert.AreSame(hashProviderData, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void ManageabilityProviderGeneratesProperAdmContent() { HashProviderData hash = new HashProviderData("hash", typeof(object)); section.HashProviders.Add(hash); SymmetricProviderData symmetric = new SymmetricProviderData("symmetric", typeof(object)); section.SymmetricCryptoProviders.Add(symmetric); MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider(true, false); Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashProviderData), subProvider); subProviders.Add(typeof(SymmetricProviderData), subProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.AddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp"); Assert.AreEqual(2, subProvider.configurationObjects.Count); Assert.AreSame(hash, subProvider.configurationObjects[0]); Assert.AreSame(symmetric, subProvider.configurationObjects[1]); MockAdmContent content = contentBuilder.GetMockContent(); IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator(); Assert.IsTrue(categoriesEnumerator.MoveNext()); IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); IEnumerator <AdmPolicy> policiesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policiesEnumerator.MoveNext()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Policy, policiesEnumerator.Current.Name); Assert.IsFalse(policiesEnumerator.MoveNext()); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); policiesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policiesEnumerator.MoveNext()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Policy, policiesEnumerator.Current.Name); Assert.IsFalse(policiesEnumerator.MoveNext()); Assert.IsFalse(subCategoriesEnumerator.MoveNext()); IEnumerator <AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(sectionPoliciesEnumerator.MoveNext()); IEnumerator <AdmPart> sectionPartsEnumerator = sectionPoliciesEnumerator.Current.Parts.GetEnumerator(); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultHashProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultSymmetricCryptoProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.IsFalse(sectionPartsEnumerator.MoveNext()); Assert.IsFalse(sectionPoliciesEnumerator.MoveNext()); Assert.IsFalse(categoriesEnumerator.MoveNext()); }
public void ManageabilityProviderGeneratesProperAdmContent() { HashProviderData hash = new HashProviderData("hash", typeof(object)); section.HashProviders.Add(hash); SymmetricProviderData symmetric = new SymmetricProviderData("symmetric", typeof(object)); section.SymmetricCryptoProviders.Add(symmetric); MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider(true, false); Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary<Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashProviderData), subProvider); subProviders.Add(typeof(SymmetricProviderData), subProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.AddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp"); Assert.AreEqual(2, subProvider.configurationObjects.Count); Assert.AreSame(hash, subProvider.configurationObjects[0]); Assert.AreSame(symmetric, subProvider.configurationObjects[1]); MockAdmContent content = contentBuilder.GetMockContent(); IEnumerator<AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator(); Assert.IsTrue(categoriesEnumerator.MoveNext()); IEnumerator<AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); IEnumerator<AdmPolicy> policiesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policiesEnumerator.MoveNext()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Policy, policiesEnumerator.Current.Name); Assert.IsFalse(policiesEnumerator.MoveNext()); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); policiesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(policiesEnumerator.MoveNext()); Assert.AreEqual(MockConfigurationElementManageabilityProvider.Policy, policiesEnumerator.Current.Name); Assert.IsFalse(policiesEnumerator.MoveNext()); Assert.IsFalse(subCategoriesEnumerator.MoveNext()); IEnumerator<AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator(); Assert.IsTrue(sectionPoliciesEnumerator.MoveNext()); IEnumerator<AdmPart> sectionPartsEnumerator = sectionPoliciesEnumerator.Current.Parts.GetEnumerator(); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultHashProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultSymmetricCryptoProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.IsFalse(sectionPartsEnumerator.MoveNext()); Assert.IsFalse(sectionPoliciesEnumerator.MoveNext()); Assert.IsFalse(categoriesEnumerator.MoveNext()); }
public void RegisteredSymmetricCryptoProviderDataProviderIsCalledWithCorrectOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary<Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); SymmetricAlgorithmProviderData symmetricCryptoProviderData = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProviderData); MockRegistryKey machinesymmetricCryptoProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, machinesymmetricCryptoProvidersKey); MockRegistryKey machinesymmetricCryptoProviderKey = new MockRegistryKey(false); machinesymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider1", machinesymmetricCryptoProviderKey); MockRegistryKey machineOthersymmetricCryptoProviderKey = new MockRegistryKey(false); machinesymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", machineOthersymmetricCryptoProviderKey); MockRegistryKey usersymmetricCryptoProvidersKey = new MockRegistryKey(false); userKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, usersymmetricCryptoProvidersKey); MockRegistryKey usersymmetricCryptoProviderKey = new MockRegistryKey(false); usersymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider1", usersymmetricCryptoProviderKey); MockRegistryKey userOthersymmetricCryptoProviderKey = new MockRegistryKey(false); usersymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", userOthersymmetricCryptoProviderKey); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.IsTrue(registeredProvider.called); Assert.AreSame(symmetricCryptoProviderData, registeredProvider.LastConfigurationObject); Assert.AreSame(machinesymmetricCryptoProviderKey, registeredProvider.machineKey); Assert.AreSame(usersymmetricCryptoProviderKey, registeredProvider.userKey); Assert.IsTrue( MockRegistryKey.CheckAllClosed(machinesymmetricCryptoProvidersKey, machinesymmetricCryptoProviderKey, machineOthersymmetricCryptoProviderKey, usersymmetricCryptoProvidersKey, usersymmetricCryptoProviderKey, userOthersymmetricCryptoProviderKey)); }
public void RegisteredSymmetricCryptoProviderDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary<Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); SymmetricAlgorithmProviderData symmetricCryptoProviderData = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProviderData); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.IsTrue(registeredProvider.called); Assert.AreSame(symmetricCryptoProviderData, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void RegisteredHashProviderDataProviderIsCalledWithNoOverrides() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary<Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); HashAlgorithmProviderData hashProviderData = new HashAlgorithmProviderData("hashProvider1", typeof(Object), false); section.HashProviders.Add(hashProviderData); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.IsTrue(registeredProvider.called); Assert.AreSame(hashProviderData, registeredProvider.LastConfigurationObject); Assert.AreEqual(null, registeredProvider.machineKey); Assert.AreEqual(null, registeredProvider.userKey); }
public void SymmetricCryptoProviderWithDisabledPolicyIsNotRemovedIfGroupPoliciesAreDisabled() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary<Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(SymmetricAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); SymmetricAlgorithmProviderData symmetricCryptoProvider1Data = new SymmetricAlgorithmProviderData("symmetricCryptoProvider1", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProvider1Data); SymmetricAlgorithmProviderData symmetricCryptoProvider2Data = new SymmetricAlgorithmProviderData("symmetricCryptoProvider2", typeof(Object), "key", DataProtectionScope.CurrentUser); section.SymmetricCryptoProviders.Add(symmetricCryptoProvider2Data); MockRegistryKey machineSymmetricCryptoProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.SymmetricCryptoProvidersKeyName, machineSymmetricCryptoProvidersKey); MockRegistryKey machineSymmetricCryptoProvider2Key = new MockRegistryKey(false); machineSymmetricCryptoProvidersKey.AddSubKey("symmetricCryptoProvider2", machineSymmetricCryptoProvider2Key); machineSymmetricCryptoProvider2Key.AddBooleanValue(CryptographySettingsManageabilityProvider.PolicyValueName, false); provider.OverrideWithGroupPolicies(section, false, machineKey, userKey); Assert.AreEqual(2, section.SymmetricCryptoProviders.Count); Assert.IsNotNull(section.SymmetricCryptoProviders.Get("symmetricCryptoProvider1")); Assert.IsNotNull(section.SymmetricCryptoProviders.Get("symmetricCryptoProvider2")); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineSymmetricCryptoProvidersKey, machineSymmetricCryptoProvider2Key)); }
public void HashProviderWithDisabledPolicyIsRemoved() { MockConfigurationElementManageabilityProvider registeredProvider = new MockConfigurationElementManageabilityProvider(); Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary<Type, ConfigurationElementManageabilityProvider>(); subProviders.Add(typeof(HashAlgorithmProviderData), registeredProvider); provider = new CryptographySettingsManageabilityProvider(subProviders); HashAlgorithmProviderData hashProvider1Data = new HashAlgorithmProviderData("hashProvider1", typeof(Object), false); section.HashProviders.Add(hashProvider1Data); HashAlgorithmProviderData hashProvider2Data = new HashAlgorithmProviderData("hashProvider2", typeof(Object), false); section.HashProviders.Add(hashProvider2Data); MockRegistryKey machineHashProvidersKey = new MockRegistryKey(false); machineKey.AddSubKey(CryptographySettingsManageabilityProvider.HashProvidersKeyName, machineHashProvidersKey); MockRegistryKey machineHashProvider2Key = new MockRegistryKey(false); machineHashProvidersKey.AddSubKey("hashProvider2", machineHashProvider2Key); machineHashProvider2Key.AddBooleanValue(CryptographySettingsManageabilityProvider.PolicyValueName, false); provider.OverrideWithGroupPolicies(section, true, machineKey, userKey); Assert.AreEqual(1, section.HashProviders.Count); Assert.IsNotNull(section.HashProviders.Get("hashProvider1")); Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineHashProvidersKey, machineHashProvider2Key)); }