[System.Data] Use same socket family for data receiver as it has its client. Fixes...
[mono.git] / mcs / class / System.Core / System.Security.Cryptography / CngKeyCreationParameters.cs
1 //
2 // System.Security.Cryptography.CngKeyCreationParameters
3 //
4 // Copyright (C) 2011 Juho Vähä-Herttua
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining
7 // a copy of this software and associated documentation files (the
8 // "Software"), to deal in the Software without restriction, including
9 // without limitation the rights to use, copy, modify, merge, publish,
10 // distribute, sublicense, and/or sell copies of the Software, and to
11 // permit persons to whom the Software is furnished to do so, subject to
12 // the following conditions:
13 // 
14 // The above copyright notice and this permission notice shall be
15 // included in all copies or substantial portions of the Software.
16 // 
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 //
25
26 using System;
27
28 namespace System.Security.Cryptography {
29
30         // note: CNG stands for "Cryptography API: Next Generation"
31
32         public class CngKeyCreationParameters {
33                 private Nullable<CngExportPolicies> exportPolicy;
34                 private CngKeyCreationOptions keyCreationOptions;
35                 private Nullable<CngKeyUsages> keyUsage;
36                 private CngPropertyCollection parameters;
37                 private IntPtr parentWindowHandle;
38                 private CngProvider provider;
39                 private CngUIPolicy uiPolicy;
40
41                 public CngKeyCreationParameters ()
42                 {
43                         parameters = new CngPropertyCollection ();
44                         provider = CngProvider.MicrosoftSoftwareKeyStorageProvider;
45                 }
46
47                 public Nullable<CngExportPolicies> ExportPolicy
48                 {
49                         get { return exportPolicy; }
50                         set { exportPolicy = value; }
51                 }
52
53                 public CngKeyCreationOptions KeyCreationOptions
54                 {
55                         get { return keyCreationOptions; }
56                         set { keyCreationOptions = value; }
57                 }
58
59                 public Nullable<CngKeyUsages> KeyUsage
60                 {
61                         get { return keyUsage; }
62                         set { keyUsage = value; }
63                 }
64
65                 public CngPropertyCollection Parameters
66                 {
67                         get { return parameters; }
68                 }
69
70                 public IntPtr ParentWindowHandle
71                 {
72                         get { return parentWindowHandle; }
73                         set { parentWindowHandle = value; }
74                 }
75
76                 public CngProvider Provider
77                 {
78                         get { return provider; }
79                         set {
80                                 if (value == null)
81                                         throw new ArgumentNullException ("value");
82                                 provider = value;
83                         }
84                 }
85
86                 public CngUIPolicy UIPolicy
87                 {
88                         get { return uiPolicy; }
89                         set { uiPolicy = value; }
90                 }
91         }
92 }