-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
RsaEncryptionCookieTransform.xml
240 lines (227 loc) · 15.7 KB
/
RsaEncryptionCookieTransform.xml
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<Type Name="RsaEncryptionCookieTransform" FullName="System.IdentityModel.RsaEncryptionCookieTransform">
<TypeSignature Language="C#" Value="public class RsaEncryptionCookieTransform : System.IdentityModel.CookieTransform" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit RsaEncryptionCookieTransform extends System.IdentityModel.CookieTransform" />
<TypeSignature Language="DocId" Value="T:System.IdentityModel.RsaEncryptionCookieTransform" />
<TypeSignature Language="VB.NET" Value="Public Class RsaEncryptionCookieTransform
Inherits CookieTransform" />
<TypeSignature Language="F#" Value="type RsaEncryptionCookieTransform = class
 inherit CookieTransform" />
<TypeSignature Language="C++ CLI" Value="public ref class RsaEncryptionCookieTransform : System::IdentityModel::CookieTransform" />
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.IdentityModel.CookieTransform</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Encrypts a cookie using <see cref="T:System.Security.Cryptography.RSA" />.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Cookies encrypted with this transform may be decrypted by any computer that shares the same RSA private key (generally associated with an X.509 certificate).
The given data is encrypted using a random AES256 key. This key is then encrypted using RSA, and the RSA public key is sent in plain text so that when decoding the class knows which RSA key to use.
> [!IMPORTANT]
> When using the <xref:System.IdentityModel.RsaEncryptionCookieTransform> with a service, if a key provided by a certificate changes the service must be restarted.
]]></format>
</remarks>
<altmember cref="T:System.IdentityModel.Tokens.SessionSecurityTokenHandler" />
</Docs>
<Members>
<MemberGroup MemberName=".ctor">
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.IdentityModel.RsaEncryptionCookieTransform" /> class.</summary>
</Docs>
</MemberGroup>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RsaEncryptionCookieTransform (System.Security.Cryptography.RSA key);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Security.Cryptography.RSA key) cil managed" />
<MemberSignature Language="DocId" Value="M:System.IdentityModel.RsaEncryptionCookieTransform.#ctor(System.Security.Cryptography.RSA)" />
<MemberSignature Language="VB.NET" Value="Public Sub New (key As RSA)" />
<MemberSignature Language="F#" Value="new System.IdentityModel.RsaEncryptionCookieTransform : System.Security.Cryptography.RSA -> System.IdentityModel.RsaEncryptionCookieTransform" Usage="new System.IdentityModel.RsaEncryptionCookieTransform key" />
<MemberSignature Language="C++ CLI" Value="public:
 RsaEncryptionCookieTransform(System::Security::Cryptography::RSA ^ key);" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="key" Type="System.Security.Cryptography.RSA" />
</Parameters>
<Docs>
<param name="key">The key to use as the default encryption and decryption key. Initializes the <see cref="P:System.IdentityModel.RsaEncryptionCookieTransform.DecryptionKeys" /> and <see cref="P:System.IdentityModel.RsaEncryptionCookieTransform.EncryptionKey" /> properties.</param>
<summary>Initializes a new instance of the <see cref="T:System.IdentityModel.RsaEncryptionCookieTransform" /> class that uses the specified key for encryption and decryption.</summary>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="key" /> is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RsaEncryptionCookieTransform (System.Security.Cryptography.X509Certificates.X509Certificate2 certificate);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) cil managed" />
<MemberSignature Language="DocId" Value="M:System.IdentityModel.RsaEncryptionCookieTransform.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)" />
<MemberSignature Language="VB.NET" Value="Public Sub New (certificate As X509Certificate2)" />
<MemberSignature Language="F#" Value="new System.IdentityModel.RsaEncryptionCookieTransform : System.Security.Cryptography.X509Certificates.X509Certificate2 -> System.IdentityModel.RsaEncryptionCookieTransform" Usage="new System.IdentityModel.RsaEncryptionCookieTransform certificate" />
<MemberSignature Language="C++ CLI" Value="public:
 RsaEncryptionCookieTransform(System::Security::Cryptography::X509Certificates::X509Certificate2 ^ certificate);" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="certificate" Type="System.Security.Cryptography.X509Certificates.X509Certificate2" />
</Parameters>
<Docs>
<param name="certificate">The certificate whose private key is used to encrypt and decrypt.
The certificate whose private key will be used as the default encryption and decryption key. Initializes the <see cref="P:System.IdentityModel.RsaEncryptionCookieTransform.DecryptionKeys" /> and <see cref="P:System.IdentityModel.RsaEncryptionCookieTransform.EncryptionKey" /> properties.</param>
<summary>Initializes a new instance of the <see cref="T:System.IdentityModel.RsaEncryptionCookieTransform" /> class that uses the private key of the specified X.509 certificate for encryption and decryption.</summary>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="certificate" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="certificate" /> does not have a private key.
-or-
The private key is not RSA.</exception>
</Docs>
</Member>
<Member MemberName="Decode">
<MemberSignature Language="C#" Value="public override byte[] Decode (byte[] encoded);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance unsigned int8[] Decode(unsigned int8[] encoded) cil managed" />
<MemberSignature Language="DocId" Value="M:System.IdentityModel.RsaEncryptionCookieTransform.Decode(System.Byte[])" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function Decode (encoded As Byte()) As Byte()" />
<MemberSignature Language="F#" Value="override this.Decode : byte[] -> byte[]" Usage="rsaEncryptionCookieTransform.Decode encoded" />
<MemberSignature Language="C++ CLI" Value="public:
 override cli::array <System::Byte> ^ Decode(cli::array <System::Byte> ^ encoded);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="encoded" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="encoded">The encoded data.</param>
<summary>Decrypts the specified data by using the provided RSA key(s) to decrypt an AES key, which decrypts the cookie.</summary>
<returns>The decoded data.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="encoded" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="encoded" /> contains zero bytes.</exception>
<exception cref="T:System.NotSupportedException">The platform does not support the requested algorithm.</exception>
<exception cref="T:System.InvalidOperationException">There are no decryption keys or none of the keys match.</exception>
</Docs>
</Member>
<Member MemberName="DecryptionKeys">
<MemberSignature Language="C#" Value="protected virtual System.Collections.ObjectModel.ReadOnlyCollection<System.Security.Cryptography.RSA> DecryptionKeys { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Collections.ObjectModel.ReadOnlyCollection`1<class System.Security.Cryptography.RSA> DecryptionKeys" />
<MemberSignature Language="DocId" Value="P:System.IdentityModel.RsaEncryptionCookieTransform.DecryptionKeys" />
<MemberSignature Language="VB.NET" Value="Protected Overridable ReadOnly Property DecryptionKeys As ReadOnlyCollection(Of RSA)" />
<MemberSignature Language="F#" Value="member this.DecryptionKeys : System.Collections.ObjectModel.ReadOnlyCollection<System.Security.Cryptography.RSA>" Usage="System.IdentityModel.RsaEncryptionCookieTransform.DecryptionKeys" />
<MemberSignature Language="C++ CLI" Value="protected:
 virtual property System::Collections::ObjectModel::ReadOnlyCollection<System::Security::Cryptography::RSA ^> ^ DecryptionKeys { System::Collections::ObjectModel::ReadOnlyCollection<System::Security::Cryptography::RSA ^> ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.ObjectModel.ReadOnlyCollection<System.Security.Cryptography.RSA></ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the keys used for decryption By default, this property returns a list that contains only the encryption key.</summary>
<value>The keys to use for decryption.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Encode">
<MemberSignature Language="C#" Value="public override byte[] Encode (byte[] value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance unsigned int8[] Encode(unsigned int8[] value) cil managed" />
<MemberSignature Language="DocId" Value="M:System.IdentityModel.RsaEncryptionCookieTransform.Encode(System.Byte[])" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function Encode (value As Byte()) As Byte()" />
<MemberSignature Language="F#" Value="override this.Encode : byte[] -> byte[]" Usage="rsaEncryptionCookieTransform.Encode value" />
<MemberSignature Language="C++ CLI" Value="public:
 override cli::array <System::Byte> ^ Encode(cli::array <System::Byte> ^ value);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="value">The data to encode.</param>
<summary>Encodes the specified data. The data is encrypted using the default encryption algorithm (AES-256), then the AES key is encrypted using RSA and the RSA public key is appended.</summary>
<returns>The encoded data.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="value" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="value" /> contains zero bytes.</exception>
<exception cref="T:System.InvalidOperationException">The <see cref="P:System.IdentityModel.RsaEncryptionCookieTransform.EncryptionKey" /> is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName="EncryptionKey">
<MemberSignature Language="C#" Value="public virtual System.Security.Cryptography.RSA EncryptionKey { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Security.Cryptography.RSA EncryptionKey" />
<MemberSignature Language="DocId" Value="P:System.IdentityModel.RsaEncryptionCookieTransform.EncryptionKey" />
<MemberSignature Language="VB.NET" Value="Public Overridable Property EncryptionKey As RSA" />
<MemberSignature Language="F#" Value="member this.EncryptionKey : System.Security.Cryptography.RSA with get, set" Usage="System.IdentityModel.RsaEncryptionCookieTransform.EncryptionKey" />
<MemberSignature Language="C++ CLI" Value="public:
 virtual property System::Security::Cryptography::RSA ^ EncryptionKey { System::Security::Cryptography::RSA ^ get(); void set(System::Security::Cryptography::RSA ^ value); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Security.Cryptography.RSA</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the RSA key used for encryption.</summary>
<value>The RSA key used for encryption.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Setting this property also sets the <xref:System.IdentityModel.RsaEncryptionCookieTransform.DecryptionKeys%2A> property to a collection that contains the same key as its only element.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="HashName">
<MemberSignature Language="C#" Value="public string HashName { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string HashName" />
<MemberSignature Language="DocId" Value="P:System.IdentityModel.RsaEncryptionCookieTransform.HashName" />
<MemberSignature Language="VB.NET" Value="Public Property HashName As String" />
<MemberSignature Language="F#" Value="member this.HashName : string with get, set" Usage="System.IdentityModel.RsaEncryptionCookieTransform.HashName" />
<MemberSignature Language="C++ CLI" Value="public:
 property System::String ^ HashName { System::String ^ get(); void set(System::String ^ value); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.IdentityModel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the name of the hash algorithm to use.</summary>
<value>The name of the hash algorithm to use. The default is "SHA2566".</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
SHA256 is the default algorithm. This may require a minimum platform of Windows Server 2003 and .NET 3.5 SP1.
If SHA256 is not supported, set the <xref:System.IdentityModel.RsaEncryptionCookieTransform.HashName%2A> property to "SHA1".
Due to collision problems with SHA1, Microsoft recommends SHA256 or better.
]]></format>
</remarks>
</Docs>
</Member>
</Members>
</Type>