/// <summary> /// Initialize a new instance of the <see cref="KeyedHashAlgorithmProvider"/> class with a <see cref="KeyedHashAlgorithm"/>, if salt is enabled, and the key to use. /// </summary> /// <param name="algorithmType"> /// The <see cref="KeyedHashAlgorithm"/> to use. /// </param> /// <param name="saltEnabled"><see langword="true"/> if salt should be used; otherwise, <see langword="false"/>.</param> /// <param name="protectedKeyFileName">File name of DPAPI-protected key used to encrypt and decrypt secrets through this provider.</param> /// <param name="protectedKeyProtectionScope"><see cref="DataProtectionScope"/> used to protect the key on disk. </param> /// <param name="instrumentationProvider">The <see cref="IHashAlgorithmInstrumentationProvider"/> to use.</param> public KeyedHashAlgorithmProvider(Type algorithmType, bool saltEnabled, string protectedKeyFileName, DataProtectionScope protectedKeyProtectionScope, IHashAlgorithmInstrumentationProvider instrumentationProvider) : this(algorithmType, saltEnabled, KeyManager.Read(protectedKeyFileName, protectedKeyProtectionScope), instrumentationProvider) { }
public void SetUp() { nameFormatter = new AppDomainNameFormatter(applicationInstanceName); instrumentationProvider = new HashAlgorithmInstrumentationProvider(instanceName, true, true, nameFormatter); formattedInstanceName = nameFormatter.CreateName(instanceName); totalHashComparisonPerformedPerformanceCounter = new EnterpriseLibraryPerformanceCounter(HashAlgorithmInstrumentationProvider.counterCategoryName, HashAlgorithmInstrumentationProvider.TotalHashComparisonPerformedPerformanceCounterName, formattedInstanceName); totalHashMismatchesPerformedPerformanceCounter = new EnterpriseLibraryPerformanceCounter(HashAlgorithmInstrumentationProvider.counterCategoryName, HashAlgorithmInstrumentationProvider.TotalHashMismatchesPerformedPerformanceCounterName, formattedInstanceName); totalHashOperationPerformedPerformanceCounter = new EnterpriseLibraryPerformanceCounter(HashAlgorithmInstrumentationProvider.counterCategoryName, HashAlgorithmInstrumentationProvider.TotalHashOperationPerformedPerformanceCounterName, formattedInstanceName); }
public void SetUp() { nameFormatter = new AppDomainNameFormatter(applicationInstanceName); instrumentationProvider = new HashAlgorithmInstrumentationProvider(instanceName, true, true, nameFormatter); formattedInstanceName = nameFormatter.CreateName(instanceName); totalHashComparisonPerformedPerformanceCounter = new EnterpriseLibraryPerformanceCounter(HashAlgorithmInstrumentationProvider.counterCategoryName, HashAlgorithmInstrumentationProvider.TotalHashComparisonPerformedPerformanceCounterName, formattedInstanceName); totalHashMismatchesPerformedPerformanceCounter = new EnterpriseLibraryPerformanceCounter(HashAlgorithmInstrumentationProvider.counterCategoryName, HashAlgorithmInstrumentationProvider.TotalHashMismatchesPerformedPerformanceCounterName, formattedInstanceName); totalHashOperationPerformedPerformanceCounter = new EnterpriseLibraryPerformanceCounter(HashAlgorithmInstrumentationProvider.counterCategoryName, HashAlgorithmInstrumentationProvider.TotalHashOperationPerformedPerformanceCounterName, formattedInstanceName); }
/// <summary> /// Initialize a new instance of the <see cref="HashAlgorithmProvider"/> class with the <see cref="HashAlgorithm"/> type and if salt is enabled. /// </summary> /// <param name="algorithmType">The <see cref="HashAlgorithm"/> to use.</param> /// <param name="saltEnabled"><see langword="true"/> if salt should be applied; otherwise, <see langword="false"/>.</param> /// <param name="instrumentationProvider">The <see cref="IHashAlgorithmInstrumentationProvider"/> to use.</param> public HashAlgorithmProvider(Type algorithmType, bool saltEnabled, IHashAlgorithmInstrumentationProvider instrumentationProvider) { if (instrumentationProvider == null) throw new ArgumentNullException("instrumentationProvider"); if (algorithmType == null) throw new ArgumentNullException("algorithmType"); if (!typeof(HashAlgorithm).IsAssignableFrom(algorithmType)) throw new ArgumentException(Resources.ExceptionMustBeAHashAlgorithm, "algorithmType"); this.algorithmType = algorithmType; this.saltEnabled = saltEnabled; this.instrumentationProvider = instrumentationProvider; }
/// <summary> /// Initialize a new instance of the <see cref="KeyedHashAlgorithmProvider"/> class with a <see cref="KeyedHashAlgorithm"/>, if salt is enabled, and the key to use. /// </summary> /// <param name="algorithmType"> /// The <see cref="KeyedHashAlgorithm"/> to use. /// </param> /// <param name="saltEnabled"><see langword="true"/> if salt should be used; otherwise, <see langword="false"/>.</param> /// <param name="protectedKey">The <see cref="ProtectedKey"/> for the provider.</param> /// <param name="instrumentationProvider">The <see cref="IHashAlgorithmInstrumentationProvider"/> to use.</param> public KeyedHashAlgorithmProvider(Type algorithmType, bool saltEnabled, ProtectedKey protectedKey, IHashAlgorithmInstrumentationProvider instrumentationProvider) : base(algorithmType, saltEnabled, instrumentationProvider) { if (protectedKey == null) { throw new ArgumentNullException("protectedKey"); } if (!typeof(KeyedHashAlgorithm).IsAssignableFrom(algorithmType)) { throw new ArgumentException(Resources.ExceptionMustBeAKeyedHashAlgorithm, "algorithmType"); } key = protectedKey; }
/// <summary> /// Initialize a new instance of the <see cref="HashAlgorithmProvider"/> class with the <see cref="HashAlgorithm"/> type and if salt is enabled. /// </summary> /// <param name="algorithmType">The <see cref="HashAlgorithm"/> to use.</param> /// <param name="saltEnabled"><see langword="true"/> if salt should be applied; otherwise, <see langword="false"/>.</param> /// <param name="instrumentationProvider">The <see cref="IHashAlgorithmInstrumentationProvider"/> to use.</param> public HashAlgorithmProvider(Type algorithmType, bool saltEnabled, IHashAlgorithmInstrumentationProvider instrumentationProvider) { if (instrumentationProvider == null) { throw new ArgumentNullException("instrumentationProvider"); } if (algorithmType == null) { throw new ArgumentNullException("algorithmType"); } if (!typeof(HashAlgorithm).IsAssignableFrom(algorithmType)) { throw new ArgumentException(Resources.ExceptionMustBeAHashAlgorithm, "algorithmType"); } this.algorithmType = algorithmType; this.saltEnabled = saltEnabled; this.instrumentationProvider = instrumentationProvider; }
/// <summary> /// Initialize a new instance of the <see cref="KeyedHashAlgorithmProvider"/> class with a <see cref="KeyedHashAlgorithm"/>, if salt is enabled, and the key to use. /// </summary> /// <param name="algorithmType"> /// The <see cref="KeyedHashAlgorithm"/> to use. /// </param> /// <param name="saltEnabled"><see langword="true"/> if salt should be used; otherwise, <see langword="false"/>.</param> /// <param name="protectedKey">The <see cref="ProtectedKey"/> for the provider.</param> /// <param name="instrumentationProvider">The <see cref="IHashAlgorithmInstrumentationProvider"/> to use.</param> public KeyedHashAlgorithmProvider(Type algorithmType, bool saltEnabled, ProtectedKey protectedKey, IHashAlgorithmInstrumentationProvider instrumentationProvider) : base(algorithmType, saltEnabled, instrumentationProvider) { if (protectedKey == null) throw new ArgumentNullException("protectedKey"); if (!typeof(KeyedHashAlgorithm).IsAssignableFrom(algorithmType)) throw new ArgumentException(Resources.ExceptionMustBeAKeyedHashAlgorithm, "algorithmType"); key = protectedKey; }
/// <summary> /// Initialize a new instance of the <see cref="KeyedHashAlgorithmProvider"/> class with a <see cref="KeyedHashAlgorithm"/>, if salt is enabled, and the key to use. /// </summary> /// <param name="algorithmType"> /// The <see cref="KeyedHashAlgorithm"/> to use. /// </param> /// <param name="saltEnabled"><see langword="true"/> if salt should be used; otherwise, <see langword="false"/>.</param> /// <param name="protectedKeyFileName">File name of DPAPI-protected key used to encrypt and decrypt secrets through this provider.</param> /// <param name="protectedKeyProtectionScope"><see cref="DataProtectionScope"/> used to protect the key on disk. </param> /// <param name="instrumentationProvider">The <see cref="IHashAlgorithmInstrumentationProvider"/> to use.</param> public KeyedHashAlgorithmProvider(Type algorithmType, bool saltEnabled, string protectedKeyFileName, DataProtectionScope protectedKeyProtectionScope, IHashAlgorithmInstrumentationProvider instrumentationProvider) : this(algorithmType, saltEnabled, KeyManager.Read(protectedKeyFileName, protectedKeyProtectionScope), instrumentationProvider) { }