summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenId/Configuration/ProviderSecuritySettingsElement.cs
blob: 8f3ffb8041bdc255c30f6ecb9d728ecbefbcf537 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System.Configuration;
using DotNetOpenId.Provider;

namespace DotNetOpenId.Configuration {
	internal class ProviderSecuritySettingsElement : ConfigurationElement {
		public ProviderSecuritySettingsElement() {
		}

		public ProviderSecuritySettings CreateSecuritySettings() {
			ProviderSecuritySettings settings = new ProviderSecuritySettings();
			settings.MinimumHashBitLength = MinimumHashBitLength;
			settings.MaximumHashBitLength = MaximumHashBitLength;
			settings.ProtectDownlevelReplayAttacks = ProtectDownlevelReplayAttacks;
			return settings;
		}

		const string minimumHashBitLengthConfigName = "minimumHashBitLength";
		[ConfigurationProperty(minimumHashBitLengthConfigName, DefaultValue = DotNetOpenId.SecuritySettings.minimumHashBitLengthDefault)]
		public int MinimumHashBitLength {
			get { return (int)this[minimumHashBitLengthConfigName]; }
			set { this[minimumHashBitLengthConfigName] = value; }
		}

		const string maximumHashBitLengthConfigName = "maximumHashBitLength";
		[ConfigurationProperty(maximumHashBitLengthConfigName, DefaultValue = DotNetOpenId.SecuritySettings.maximumHashBitLengthRPDefault)]
		public int MaximumHashBitLength {
			get { return (int)this[maximumHashBitLengthConfigName]; }
			set { this[maximumHashBitLengthConfigName] = value; }
		}

		const string protectDownlevelReplayAttacksConfigName = "protectDownlevelReplayAttacks";
		[ConfigurationProperty(protectDownlevelReplayAttacksConfigName, DefaultValue = false)]
		public bool ProtectDownlevelReplayAttacks {
			get { return (bool)this[protectDownlevelReplayAttacksConfigName]; }
			set { this[protectDownlevelReplayAttacksConfigName] = value; }
		}
	}
}