protected IHashProvider CreateProvider(HashProviderData providerData) { IHashProvider provider = GetProvider(); provider.Initialize(new TestCryptographyConfigurationView(providerData)); return(provider); }
private HashAlgorithmProviderData GetHashAlgorithmProviderDataFromCursor() { HashProviderData hashProviderData = cryptoConfigurationView.GetHashProviderData(ConfigurationName); ArgumentValidation.CheckExpectedType(hashProviderData, typeof(HashAlgorithmProviderData)); return((HashAlgorithmProviderData)hashProviderData); }
/// <summary> /// <para>Gets the <see cref="Type"/> of the <see cref="IHashProvider"/> to create based on the name.</para> /// </summary> /// <param name="hashProviderName"> /// <para>The name of the configuration object to create.</para> /// </param> /// <returns> /// <para>The <see cref="Type"/> of <see cref="IHashProvider"/> to create.</para> /// </returns> protected override Type GetConfigurationType(string hashProviderName) { CryptographyConfigurationView cryptoConfigurationView = (CryptographyConfigurationView)CreateConfigurationView(); HashProviderData hashProviderData = cryptoConfigurationView.GetHashProviderData(hashProviderName); return(GetType(hashProviderData.TypeName)); }
/// <summary> /// Initializes with a defined display name and with defined configuration. /// </summary> /// <param name="hashProviderData"></param> protected HashProviderNode(HashProviderData hashProviderData) : base(/*SR.HashProviderNodeName*/) { if (hashProviderData == null) { throw new ArgumentNullException("hashProviderData"); } this.hashProviderData = hashProviderData; }
/// <summary> /// Initializes with a defined display name and with defined configuration. /// </summary> /// <param name="hashProviderData"></param> protected HashProviderNode(HashProviderData hashProviderData) { if (hashProviderData == null) { throw new ArgumentNullException("hashProviderData"); } Rename(hashProviderData.Name); }
/// <summary> /// Gets the cryptographer used for hashing. /// </summary> /// <returns>The cryptographer initialized with the configured key.</returns> protected override HashCryptographer GetHashCryptographer() { HashProviderData hashProviderData = CryptoConfigurationView.GetHashProviderData(ConfigurationName); ArgumentValidation.CheckExpectedType(hashProviderData, typeof(KeyedHashAlgorithmProviderData)); KeyedHashAlgorithmProviderData keyedHashAlgorithmProviderData = (KeyedHashAlgorithmProviderData)hashProviderData; return(new HashCryptographer(keyedHashAlgorithmProviderData.AlgorithmType, keyedHashAlgorithmProviderData.Key)); }
private void CreateHashProviderNode(HashProviderCollectionNode hashProviderCollectionNode, HashProviderData hashProviderData) { HashProviderNode hashProviderNode = NodeCreationService.CreateNodeByDataType(hashProviderData.GetType(), new object[] { hashProviderData }) as HashProviderNode; if (null == hashProviderNode) { LogNodeMapError(hashProviderCollectionNode, hashProviderData.GetType()); return; } if (string.Compare(hashProviderNode.Name, cryptographySettings.DefaultHashProviderName) == 0) { defaultHashProviderNode = hashProviderNode; } hashProviderCollectionNode.AddNode(hashProviderNode); }
public void Indexer() { HashProviderDataCollection collection = new HashProviderDataCollection(); MockHashProviderData providerData = new MockHashProviderData(); providerData.Name = "provider1"; collection[providerData.Name] = providerData; Assert.AreEqual(1, collection.Count, "count"); HashProviderData compareData1 = collection["provider1"]; Assert.AreSame(providerData, compareData1, "string indexer"); HashProviderData compareData2 = collection[0]; Assert.AreSame(providerData, compareData2, "int indexer"); }
/// <summary> /// <para>Gets the named <see cref="HashProviderData"/> from the <see cref="CryptographySettings"/>.</para> /// </summary> /// <param name="hashProviderName"> /// <para>The name of the <see cref="HashProviderData"/>.</para> /// </param> /// <returns> /// <para>The named <see cref="HashProviderData"/> from the <see cref="CryptographySettings"/>.</para> /// </returns> public virtual HashProviderData GetHashProviderData(string hashProviderName) { ArgumentValidation.CheckForNullReference(hashProviderName, "instanceName"); ArgumentValidation.CheckForEmptyString(hashProviderName, "instanceName"); CryptographySettings settings = GetCryptographySettings(); if (settings == null) { throw new ConfigurationException(SR.ExceptionCryptoSettingsMissing); } HashProviderData hashProviderData = settings.HashProviders[hashProviderName]; if (hashProviderData == null) { throw new ConfigurationException(SR.ExceptionNoCryptoProvider(hashProviderName)); } return(hashProviderData); }
public TestCryptographyConfigurationView(HashProviderData data) : base(new ConfigurationContext(new ConfigurationDictionary())) { this.data = data; }
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 ConfigurationSectionManageabilityProviderWrapper(new CryptographySettingsManageabilityProvider(subProviders)); MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder(); provider.InvokeAddAdministrativeTemplateDirectives(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()); Assert.AreEqual(Resources.CryptographySectionCategoryName, categoriesEnumerator.Current.Name); IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator(); Assert.IsTrue(subCategoriesEnumerator.MoveNext()); Assert.AreEqual(Resources.HashProvidersCategoryName, subCategoriesEnumerator.Current.Name); 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()); Assert.AreEqual(Resources.SymmetricCryptoProvidersCategoryName, subCategoriesEnumerator.Current.Name); 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()); Assert.AreEqual(Resources.CryptographySettingsPolicyName, sectionPoliciesEnumerator.Current.Name); 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.AreEqual(Resources.CryptographySettingsDefaultHashProviderPartName, sectionPartsEnumerator.Current.PartName); Assert.IsTrue(sectionPartsEnumerator.MoveNext()); Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType()); Assert.AreEqual(CryptographySettingsManageabilityProvider.DefaultSymmetricCryptoProviderPropertyName, sectionPartsEnumerator.Current.ValueName); Assert.AreEqual(Resources.CryptographySettingsDefaultSymmetricCryptoProviderPartName, sectionPartsEnumerator.Current.PartName); 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()); }