1 <?xml version="1.0" encoding="utf-8"?>
4 <name>System.Security.Cryptography.OpenSsl</name>
7 <member name="T:System.Security.Cryptography.DSAOpenSsl">
8 <summary>Provides an implementation of the Digital Signature Algorithm (DSA) backed by OpenSSL.</summary>
10 <member name="M:System.Security.Cryptography.DSAOpenSsl.#ctor">
11 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.DSAOpenSsl" /> class with a default key size of 2048 bits.</summary>
13 <member name="M:System.Security.Cryptography.DSAOpenSsl.#ctor(System.Int32)">
14 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.DSAOpenSsl" /> class with a specified key size.</summary>
15 <param name="keySize">The size of the key to generate, when a key is needed.</param>
16 <exception cref="T:System.Security.Cryptography.CryptographicException">The <paramref name="keySize" /> value is not supported by this implementation.</exception>
18 <member name="M:System.Security.Cryptography.DSAOpenSsl.#ctor(System.IntPtr)">
19 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.DSAOpenSsl" /> class from an existing OpenSSL key represented as a <c>DSA*</c>.</summary>
20 <param name="handle">The OpenSSL <c>DSA*</c> value to use as the key.</param>
21 <exception cref="T:System.ArgumentException">
22 <paramref name="handle" /> is <see cref="F:System.IntPtr.Zero" />.</exception>
23 <exception cref="T:System.Security.Cryptography.CryptographicException">
24 <paramref name="handle" /> is not a valid <c>DSA*</c>.</exception>
26 <member name="M:System.Security.Cryptography.DSAOpenSsl.#ctor(System.Security.Cryptography.DSAParameters)">
27 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.DSAOpenSsl" /> class and imports parameters from an existing key.</summary>
28 <param name="parameters">The key parameters to import.</param>
29 <exception cref="T:System.ArgumentException">
30 <paramref name="parameters" /> is missing required fields.
34 <paramref name="parameters" /> has fields with inconsistent lengths for a valid key.</exception>
35 <exception cref="T:System.Security.Cryptography.CryptographicException">
36 <paramref name="parameters" /> does not represent a valid DSA key parameter set.</exception>
38 <member name="M:System.Security.Cryptography.DSAOpenSsl.#ctor(System.Security.Cryptography.SafeEvpPKeyHandle)">
39 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.DSAOpenSsl" /> class from an existing OpenSSL key represented as an <c>EVP_PKEY*</c>.</summary>
40 <param name="pkeyHandle">The OpenSSL <c>EVP_PKEY*</c> value to use as the key, represented as a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" />.</param>
41 <exception cref="T:System.ArgumentException">
42 <paramref name="pkeyHandle" /> represents an invalid handle.</exception>
43 <exception cref="T:System.ArgumentNullException">
44 <paramref name="pkeyHandle" /> is <see langword="null" />.</exception>
45 <exception cref="T:System.Security.Cryptography.CryptographicException">
46 <paramref name="pkeyHandle" /> does not represent a DSA key.</exception>
48 <member name="M:System.Security.Cryptography.DSAOpenSsl.CreateSignature(System.Byte[])">
49 <summary>When overridden in a derived class, creates the <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified hash value.</summary>
50 <param name="rgbHash">The hash value to be signed.</param>
51 <exception cref="T:System.ArgumentNullException">
52 <paramref name="rgbHash" /> is <see langword="null" />.</exception>
53 <exception cref="T:System.Security.Cryptography.CryptographicException">This instance represents only a public key.
57 An error occurred during signature creation.</exception>
58 <returns>The digital signature for the specified hash value.</returns>
60 <member name="M:System.Security.Cryptography.DSAOpenSsl.DuplicateKeyHandle">
61 <summary>Gets a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</summary>
62 <returns>A <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</returns>
64 <member name="M:System.Security.Cryptography.DSAOpenSsl.ExportParameters(System.Boolean)">
65 <summary>Exports the <see cref="T:System.Security.Cryptography.DSAParameters" /> representing this key.</summary>
66 <param name="includePrivateParameters">
67 <see langword="true" /> to include private parameters; otherwise, <see langword="false" />.</param>
68 <exception cref="T:System.Security.Cryptography.CryptographicException">
69 <paramref name="includePrivateParameters" /> is <see langword="true" />, but this instance represents only a DSA public key.</exception>
70 <returns>The DSA parameters for the current cryptographic key.</returns>
72 <member name="M:System.Security.Cryptography.DSAOpenSsl.ImportParameters(System.Security.Cryptography.DSAParameters)">
73 <summary>Imports the specified <see cref="T:System.Security.Cryptography.DSAParameters" />.</summary>
74 <param name="parameters">The key parameters to import.</param>
75 <exception cref="T:System.ArgumentException">
76 <paramref name="parameters" /> is missing required fields.
80 <paramref name="parameters" /> has fields with inconsistent lengths for a valid key.</exception>
81 <exception cref="T:System.Security.Cryptography.CryptographicException">
82 <paramref name="parameters" /> does not represent a valid DSA key parameter set.</exception>
84 <member name="M:System.Security.Cryptography.DSAOpenSsl.VerifySignature(System.Byte[],System.Byte[])">
85 <summary>Verifies if the specified digital signature matches the specified hash.</summary>
86 <param name="rgbHash">The signed hash.</param>
87 <param name="rgbSignature">The digital signature to be verified.</param>
88 <exception cref="T:System.ArgumentNullException">The <paramref name="rgbHash" /> or <paramref name="rgbSignature" /> parameters are <see langword="null" />.</exception>
90 <see langword="true" /> if <paramref name="rgbSignature" /> matches the signature computed using the specified hash; otherwise, <see langword="false" />.</returns>
92 <member name="P:System.Security.Cryptography.DSAOpenSsl.KeySize">
93 <summary>Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.</summary>
94 <exception cref="T:System.Security.Cryptography.CryptographicException">
95 <paramref name="value" /> is not permitted by <see cref="P:System.Security.Cryptography.DSAOpenSsl.LegalKeySizes" />.</exception>
96 <returns>The size, in bits, of the key modulus used by the asymmetric algorithm.</returns>
98 <member name="P:System.Security.Cryptography.DSAOpenSsl.LegalKeySizes">
99 <summary>Gets the key sizes, in bits, that are supported by the DSA algorithm.</summary>
100 <returns>An array that contains the key sizes supported by the algorithm.</returns>
102 <member name="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl">
103 <summary>Provides an implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm backed by OpenSSL.</summary>
105 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.#ctor">
106 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl" /> class with a default curve of NIST P-521/secp521r1.</summary>
108 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.#ctor(System.Int32)">
109 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl" /> class defaulting to the NIST prime curve of the specified size.</summary>
110 <param name="keySize">The size of the key to generate, when a key is needed.</param>
111 <exception cref="T:System.Security.Cryptography.CryptographicException">The <paramref name="keySize" /> value is not supported by this implementation.</exception>
113 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.#ctor(System.IntPtr)">
114 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl" /> class from an existing OpenSSL key represented as an <c>EC_KEY*</c>.</summary>
115 <param name="handle">The OpenSSL <c>EC_KEY*</c> value to use as the key.</param>
116 <exception cref="T:System.ArgumentException">
117 <paramref name="handle" /> is <see cref="F:System.IntPtr.Zero" />.</exception>
118 <exception cref="T:System.Security.Cryptography.CryptographicException">
119 <paramref name="handle" /> is not a valid <c>EC_KEY*</c>.</exception>
121 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.#ctor(System.Security.Cryptography.ECCurve)">
122 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl" /> class and generates a new key on the specified curve.</summary>
123 <param name="curve">The curve used to generate an ephemeral public/private key pair.</param>
124 <exception cref="T:System.Security.Cryptography.CryptographicException">
125 <paramref name="curve" /> does not validate.</exception>
127 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.#ctor(System.Security.Cryptography.SafeEvpPKeyHandle)">
128 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl" /> class from an existing OpenSSL key represented as an <c>EVP_PKEY*</c>.</summary>
129 <param name="pkeyHandle">The OpenSSL <c>EVP_PKEY*</c> value to use as the key, represented as a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" />.</param>
130 <exception cref="T:System.ArgumentException">
131 <paramref name="pkeyHandle" /> represents an invalid handle.</exception>
132 <exception cref="T:System.ArgumentNullException">
133 <paramref name="pkeyHandle" /> is <see langword="null" />.</exception>
134 <exception cref="T:System.Security.Cryptography.CryptographicException">
135 <paramref name="pkeyHandle" /> does not represent a elliptic curve (EC) key.</exception>
137 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.DeriveKeyFromHash(System.Security.Cryptography.ECDiffieHellmanPublicKey,System.Security.Cryptography.HashAlgorithmName,System.Byte[],System.Byte[])">
138 <summary>Performs key derivation using a specified hash algorithm with optional prepended or appended data.</summary>
139 <param name="otherPartyPublicKey">The other party's public key.</param>
140 <param name="hashAlgorithm">The hash algorithm to use to derive the key material.</param>
141 <param name="secretPrepend">A value to prepend to the derived secret before hashing.</param>
142 <param name="secretAppend">A value to append to the derived secret before hashing.</param>
143 <exception cref="T:System.ArgumentException">
144 The curve used by <paramref name="otherPartyPublicKey" /> has a different size than the curve from this key.
148 The <paramref name="hashAlgorithm" /> parameter does not specify a hash.</exception>
149 <exception cref="T:System.ArgumentNullException">
150 <paramref name="otherPartyPublicKey" /> is <see langword="null" />.</exception>
151 <exception cref="T:System.Security.Cryptography.CryptographicException">
152 The curve used by <paramref name="otherPartyPublicKey" /> is different than the curve from this key.
156 This instance represents only a public key.</exception>
157 <returns>The hash of the shared secret after prepending or appending data as requested.</returns>
159 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey,System.Security.Cryptography.HashAlgorithmName,System.Byte[],System.Byte[],System.Byte[])">
160 <summary>Performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm with optional prepended or appended data.</summary>
161 <param name="otherPartyPublicKey">The other party's public key.</param>
162 <param name="hashAlgorithm">The hash algorithm to use to derive the key material.</param>
163 <param name="hmacKey">The key for the HMAC.</param>
164 <param name="secretPrepend">A value to prepend to the derived secret before hashing.</param>
165 <param name="secretAppend">A value to append to the derived secret before hashing.</param>
166 <exception cref="T:System.ArgumentException">
167 The curve used by <paramref name="otherPartyPublicKey" /> has a different size than the curve from this key.
171 The <paramref name="hashAlgorithm" /> parameter does not specify a hash.</exception>
172 <exception cref="T:System.ArgumentNullException">
173 <paramref name="otherPartyPublicKey" /> is <see langword="null" />.</exception>
174 <exception cref="T:System.Security.Cryptography.CryptographicException">
175 The curve used by <paramref name="otherPartyPublicKey" /> is different than the curve from this key.
179 This instance represents only a public key.</exception>
180 <returns>The HMAC of the shared secret after prepending or appending data as requested.</returns>
182 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.DeriveKeyMaterial(System.Security.Cryptography.ECDiffieHellmanPublicKey)">
183 <summary>Performs a key derivation on the shared secret.</summary>
184 <param name="otherPartyPublicKey">The other party's public key.</param>
185 <exception cref="T:System.ArgumentException">The curve used by <paramref name="otherPartyPublicKey" /> has a different size than the curve from this key.</exception>
186 <exception cref="T:System.ArgumentNullException">
187 <paramref name="otherPartyPublicKey" /> is <see langword="null" />.</exception>
188 <exception cref="T:System.Security.Cryptography.CryptographicException">The curve used by <paramref name="otherPartyPublicKey" /> is different than the curve from this key.
192 This instance represents only a public key.</exception>
193 <returns>The SHA-256 hash of the shared secret.</returns>
195 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.DeriveKeyTls(System.Security.Cryptography.ECDiffieHellmanPublicKey,System.Byte[],System.Byte[])">
196 <summary>Performs key derivation using the TLS (Transport Layer Security) 1.1 PRF (Pseudo-Random Function).</summary>
197 <param name="otherPartyPublicKey">The other party's public key.</param>
198 <param name="prfLabel">The ASCII-encoded PRF label.</param>
199 <param name="prfSeed">The 64-byte PRF seed.</param>
200 <exception cref="T:System.NotImplementedException">A derived class must override this method.</exception>
201 <exception cref="T:System.ArgumentException">The curve used by <paramref name="otherPartyPublicKey" /> has a different size than the curve from this key.</exception>
202 <exception cref="T:System.ArgumentNullException">
203 <paramref name="otherPartyPublicKey" />, <paramref name="prfLabel" /> or <paramref name="prfSeed" /> is <see langword="null" />.</exception>
204 <exception cref="T:System.Security.Cryptography.CryptographicException">
205 <paramref name="prfSeed" /> is not exactly 64 bytes in length.
209 The curve used by <paramref name="otherPartyPublicKey" /> is different than the curve from this key.
213 This instance represents only a public key.</exception>
214 <returns>The first 48 bytes from the TLS 1.1 PRF, using the shared secret as the key.</returns>
216 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.DuplicateKeyHandle">
217 <summary>Gets a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</summary>
218 <returns>A <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</returns>
220 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.ExportExplicitParameters(System.Boolean)">
221 <summary>Exports either the public or the public and private key information using the explicit curve form from the current key to an <see cref="T:System.Security.Cryptography.ECParameters" /> structure so that it can be passed to the <see cref="M:System.Security.Cryptography.ECDiffieHellman.ImportParameters(System.Security.Cryptography.ECParameters)" /> method.</summary>
222 <param name="includePrivateParameters">
223 <see langword="true" /> to include private parameters; otherwise, <see langword="false" />.</param>
224 <exception cref="T:System.Security.Cryptography.CryptographicException">The method cannot obtain curve values.</exception>
225 <returns>An object that represents the point on the curve for this key, using the explicit curve format.</returns>
227 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.ExportParameters(System.Boolean)">
228 <summary>Exports the key used by the <see cref="T:System.Security.Cryptography.ECCurve" /> object into an <see cref="T:System.Security.Cryptography.ECParameters" /> object.</summary>
229 <param name="includePrivateParameters">
230 <see langword="true" /> to include private parameters; otherwise, <see langword="false" />.</param>
231 <exception cref="T:System.Security.Cryptography.CryptographicException">The method cannot obtain curve values.</exception>
232 <returns>The key and named curve parameters used by the <see cref="T:System.Security.Cryptography.ECCurve" /> object.</returns>
234 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.GenerateKey(System.Security.Cryptography.ECCurve)">
235 <summary>Generates a new ephemeral public/private key pair for the specified curve.</summary>
236 <param name="curve">The curve used to generate an ephemeral public/private key pair.</param>
237 <exception cref="T:System.Security.Cryptography.CryptographicException">
238 <paramref name="curve" /> does not validate.</exception>
240 <member name="M:System.Security.Cryptography.ECDiffieHellmanOpenSsl.ImportParameters(System.Security.Cryptography.ECParameters)">
241 <summary>Imports the specified parameters for an <see cref="T:System.Security.Cryptography.ECCurve" /> object as a key into the current instance.</summary>
242 <param name="parameters">The curve's parameters to import.</param>
243 <exception cref="T:System.Security.Cryptography.CryptographicException">
244 <paramref name="parameters" /> does not validate.</exception>
245 <exception cref="T:System.NotSupportedException">
246 <paramref name="parameters" /> references a curve that cannot be imported.</exception>
247 <exception cref="T:System.PlatformNotSupportedException">
248 <paramref name="parameters" /> references a curve that is not supported by this platform.</exception>
250 <member name="P:System.Security.Cryptography.ECDiffieHellmanOpenSsl.PublicKey">
251 <summary>Gets the public key that can be used by another <see cref="T:System.Security.Cryptography.ECDiffieHellman" /> object to generate a shared secret agreement.</summary>
252 <returns>The public key that is associated with this instance of the <see cref="T:System.Security.Cryptography.ECDiffieHellmanOpenSsl" /> object.</returns>
254 <member name="T:System.Security.Cryptography.ECDsaOpenSsl">
255 <summary>Provides an implementation of the Elliptic Curve Digital Signature Algorithm (ECDSA) backed by OpenSSL.</summary>
257 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.#ctor">
258 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDsaOpenSsl" /> class.</summary>
260 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.#ctor(System.Int32)">
261 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDsaOpenSsl" /> class with a specified target key size.</summary>
262 <param name="keySize">The size of the key. Valid key sizes are 256, 384, and 521 bits.</param>
263 <exception cref="T:System.Security.Cryptography.CryptographicException">
264 <paramref name="keySize" /> specifies an invalid length.</exception>
266 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.#ctor(System.IntPtr)">
267 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDsaOpenSsl" /> class from an existing OpenSSL key represented as an <c>EC_KEY*</c>.</summary>
268 <param name="handle">The OpenSSL <c>EC_KEY*</c> value to use as the key.</param>
269 <exception cref="T:System.ArgumentException">
270 <paramref name="handle" /> is <see cref="F:System.IntPtr.Zero" />.</exception>
271 <exception cref="T:System.Security.Cryptography.CryptographicException">
272 <paramref name="handle" /> is not a valid <c>EC_KEY*</c>.</exception>
274 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.#ctor(System.Security.Cryptography.ECCurve)">
275 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDsaOpenSsl" /> class and generates a new key on the specified curve.</summary>
276 <param name="curve">The curve used to generate an ephemeral public/private key pair.</param>
277 <exception cref="T:System.Security.Cryptography.CryptographicException">
278 <paramref name="curve" /> does not validate.</exception>
279 <exception cref="T:System.ArgumentNullException">
280 <paramref name="curve" /> is <see langword="null" />.</exception>
282 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.#ctor(System.Security.Cryptography.SafeEvpPKeyHandle)">
283 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.ECDsaOpenSsl" /> class from an existing OpenSSL key represented as an <c>EVP_PKEY*</c>.</summary>
284 <param name="pkeyHandle">The OpenSSL <c>EVP_PKEY*</c> value to use as the key, represented as a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" />.</param>
285 <exception cref="T:System.ArgumentException">
286 <paramref name="pkeyHandle" /> represents an invalid handle.</exception>
287 <exception cref="T:System.ArgumentNullException">
288 <paramref name="pkeyHandle" /> is <see langword="null" />.</exception>
289 <exception cref="T:System.Security.Cryptography.CryptographicException">
290 <paramref name="pkeyHandle" /> does not represent a elliptic curve (EC) key.</exception>
292 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.DuplicateKeyHandle">
293 <summary>Gets a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</summary>
294 <returns>A <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</returns>
296 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.ExportExplicitParameters(System.Boolean)">
297 <summary>Exports the key and explicit curve parameters used by the Elliptic curve cryptography (ECC) object into an <see cref="T:System.Security.Cryptography.ECParameters" /> object.</summary>
298 <param name="includePrivateParameters">
299 <see langword="true" /> to include private parameters; otherwise, <see langword="false" />.</param>
300 <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred while obtaining the curve values.</exception>
301 <returns>The key and explicit curve parameters used by the ECC object.</returns>
303 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.ExportParameters(System.Boolean)">
304 <summary>Exports the key used by the Elliptic curve cryptography (ECC) object into an <see cref="T:System.Security.Cryptography.ECParameters" /> object. If the key was created as a named curve, the <see cref="F:System.Security.Cryptography.ECParameters.Curve" /> field contains named curve parameters; otherwise, it contains explicit parameters.</summary>
305 <param name="includePrivateParameters">
306 <see langword="true" /> to include private parameters; otherwise, <see langword="false" />.</param>
307 <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred while obtaining the curve values.</exception>
308 <returns>The key and named curve parameters used by the ECC object.</returns>
310 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(System.Security.Cryptography.ECCurve)">
311 <summary>Generates a new ephemeral public/private key pair for the specified curve, replacing the current key.</summary>
312 <param name="curve">The curve to use to generate the key.</param>
314 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.ImportParameters(System.Security.Cryptography.ECParameters)">
315 <summary>Replaces the current key for this instance with one using the specified key parameters.</summary>
316 <param name="parameters">The curve parameters.</param>
317 <exception cref="T:System.Security.Cryptography.CryptographicException">
318 <paramref name="parameters" /> does not contain valid values.</exception>
320 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.SignHash(System.Byte[])">
321 <summary>Generates a digital signature for the specified hash value.</summary>
322 <param name="hash">The hash value of the data that is being signed.</param>
323 <exception cref="T:System.ArgumentNullException">The <paramref name="hash" /> parameter is <see langword="null" />.</exception>
324 <returns>A digital signature for the specified hash value.</returns>
326 <member name="M:System.Security.Cryptography.ECDsaOpenSsl.VerifyHash(System.Byte[],System.Byte[])">
327 <summary>Verifies that a digital signature is appropriate for the current key and provided data hash.</summary>
328 <param name="hash">The hash value of the data to be verified.</param>
329 <param name="signature">The digital signature of the data to be verified against the hash value.</param>
330 <exception cref="T:System.ArgumentNullException">
331 <paramref name="hash" /> or <paramref name="signature" /> is <see langword="null" />.</exception>
333 <see langword="true" /> if the signature is valid; otherwise, <see langword="false" />.</returns>
335 <member name="P:System.Security.Cryptography.ECDsaOpenSsl.KeySize">
336 <summary>Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.</summary>
337 <exception cref="T:System.Security.Cryptography.CryptographicException">
338 <paramref name="value" /> is not permitted by <see cref="P:System.Security.Cryptography.ECDsaOpenSsl.LegalKeySizes" />.</exception>
339 <returns>The size, in bits, of the key modulus used by the asymmetric algorithm.</returns>
341 <member name="P:System.Security.Cryptography.ECDsaOpenSsl.LegalKeySizes">
342 <summary>Gets the key sizes, in bits, that are supported by the <see cref="P:System.Security.Cryptography.ECDsaCng.KeySize" /> property setter.</summary>
343 <returns>An array that contains the key sizes supported by the <see cref="P:System.Security.Cryptography.ECDsaCng.KeySize" /> property setter.</returns>
345 <member name="T:System.Security.Cryptography.RSAOpenSsl">
346 <summary>Provides an implementation of the RSA algorithm backed by OpenSSL.</summary>
348 <member name="M:System.Security.Cryptography.RSAOpenSsl.#ctor">
349 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSAOpenSsl" /> class with a random 2048-bit key pair.</summary>
351 <member name="M:System.Security.Cryptography.RSAOpenSsl.#ctor(System.Int32)">
352 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSAOpenSsl" /> class with a randomly generated key of the specified size.</summary>
353 <param name="keySize">The size of the key to generate in bits.</param>
354 <exception cref="T:System.Security.Cryptography.CryptographicException">
355 <paramref name="keySize" /> is not valid.</exception>
357 <member name="M:System.Security.Cryptography.RSAOpenSsl.#ctor(System.IntPtr)">
358 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSAOpenSsl" /> class from an existing OpenSSL key represented as an <c>RSA*</c>.</summary>
359 <param name="handle">The OpenSSL <c>RSA*</c> value to use as the key.</param>
360 <exception cref="T:System.Security.Cryptography.CryptographicException">
361 <paramref name="handle" /> is not a valid <c>RSA*</c>.</exception>
362 <exception cref="T:System.ArgumentException">
363 <paramref name="handle" /> is invalid</exception>
365 <member name="M:System.Security.Cryptography.RSAOpenSsl.#ctor(System.Security.Cryptography.RSAParameters)">
366 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSAOpenSsl" /> class using specified key parameters.</summary>
367 <param name="parameters">The parameters for the key.</param>
368 <exception cref="T:System.Security.Cryptography.CryptographicException">
369 <paramref name="parameters" /> is not a valid RSA key.</exception>
371 <member name="M:System.Security.Cryptography.RSAOpenSsl.#ctor(System.Security.Cryptography.SafeEvpPKeyHandle)">
372 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSAOpenSsl" /> class from an existing OpenSSL key represented as an <c>EVP_PKEY*</c>.</summary>
373 <param name="pkeyHandle">The OpenSSL <c>EVP_PKEY*</c> value to use as the key, represented as a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" />.</param>
374 <exception cref="T:System.Security.Cryptography.CryptographicException">
375 <paramref name="pkeyHandle" /> does not represent an RSA key.</exception>
376 <exception cref="T:System.ArgumentNullException">
377 <paramref name="pkeyHandle" /> is <see langword="null" /></exception>
378 <exception cref="T:System.ArgumentException">
379 <paramref name="pkeyHandle" /> is invalid according to <see cref="P:System.Runtime.InteropServices.SafeHandle.IsInvalid" />.</exception>
381 <member name="M:System.Security.Cryptography.RSAOpenSsl.Decrypt(System.Byte[],System.Security.Cryptography.RSAEncryptionPadding)">
382 <summary>Decrypts the input data using the specified padding mode.</summary>
383 <param name="data">The data to decrypt.</param>
384 <param name="padding">The padding mode.</param>
385 <exception cref="T:System.ArgumentNullException">
386 <paramref name="data" /> or <paramref name="padding" /> is <see langword="null" />.</exception>
387 <exception cref="T:System.Security.Cryptography.CryptographicException">
388 <paramref name="padding" /> is unknown, or not supported by this implementation.
392 The length of <paramref name="data" /> is not equal to the number of bytes for <see cref="P:System.Security.Cryptography.AsymmetricAlgorithm.KeySize" />.
396 This instance represents only a public key.
400 The decryption operation failed.</exception>
401 <returns>The decrypted data.</returns>
403 <member name="M:System.Security.Cryptography.RSAOpenSsl.DuplicateKeyHandle">
404 <summary>Gets a <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</summary>
405 <returns>A <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> representation of the cryptographic key.</returns>
407 <member name="M:System.Security.Cryptography.RSAOpenSsl.Encrypt(System.Byte[],System.Security.Cryptography.RSAEncryptionPadding)">
408 <summary>Encrypts the input data using the specified padding mode.</summary>
409 <param name="data">The data to encrypt.</param>
410 <param name="padding">The padding mode.</param>
411 <exception cref="T:System.ArgumentNullException">
412 <paramref name="data" /> or <paramref name="padding" /> is <see langword="null" />.</exception>
413 <exception cref="T:System.Security.Cryptography.CryptographicException">
414 <paramref name="padding" /> is unknown, or not supported by this implementation.
418 The length of <paramref name="data" /> is too long for the combination of <see cref="P:System.Security.Cryptography.AsymmetricAlgorithm.KeySize" /> and the selected padding.
422 The encryption operation failed.</exception>
423 <returns>The encrypted data.</returns>
425 <member name="M:System.Security.Cryptography.RSAOpenSsl.ExportParameters(System.Boolean)">
426 <summary>Exports the <see cref="T:System.Security.Cryptography.RSAParameters" />.</summary>
427 <param name="includePrivateParameters">
428 <see langword="true" /> to include private parameters; otherwise, <see langword="false" />.</param>
429 <exception cref="T:System.Security.Cryptography.CryptographicException">The parameters could not be exported.</exception>
430 <returns>The parameters for <see cref="T:System.Security.Cryptography.RSA" />.</returns>
432 <member name="M:System.Security.Cryptography.RSAOpenSsl.ImportParameters(System.Security.Cryptography.RSAParameters)">
433 <summary>Imports the specified <see cref="T:System.Security.Cryptography.RSAParameters" />.</summary>
434 <param name="parameters">The parameters for <see cref="T:System.Security.Cryptography.RSA" />.</param>
435 <exception cref="T:System.Security.Cryptography.CryptographicException">
436 <paramref name="parameters" /> is not a valid RSA key.</exception>
438 <member name="M:System.Security.Cryptography.RSAOpenSsl.SignHash(System.Byte[],System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding)">
439 <summary>Computes the signature for the specified hash value using the specified padding.</summary>
440 <param name="hash">The hash value of the data to be signed.</param>
441 <param name="hashAlgorithm">The hash algorithm used to create the hash value of the data.</param>
442 <param name="padding">The padding.</param>
443 <exception cref="T:System.ArgumentNullException">
444 <paramref name="data" /> or <paramref name="padding" /> is <see langword="null" />.</exception>
445 <exception cref="T:System.ArgumentException">
446 <paramref name="hashAlgorithm" />.<see cref="P:System.Security.Cryptography.HashAlgorithmName.Name" /> is <see langword="null" /> or <see cref="F:System.String.Empty" />.</exception>
447 <exception cref="T:System.Security.Cryptography.CryptographicException">
448 <paramref name="padding" /> is unknown, or not supported by this implementation.
452 This instance represents only a public key.
456 An error occurred creating the signature.</exception>
457 <returns>The RSA signature for the specified hash value.</returns>
459 <member name="M:System.Security.Cryptography.RSAOpenSsl.VerifyHash(System.Byte[],System.Byte[],System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding)">
460 <summary>Verifies that a digital signature is valid by determining the hash value in the signature using the specified hash algorithm and padding, and comparing it to the provided hash value.</summary>
461 <param name="hash">The hash value of the signed data.</param>
462 <param name="signature">The signature data to be verified.</param>
463 <param name="hashAlgorithm">The hash algorithm used to create the hash value.</param>
464 <param name="padding">The padding mode.</param>
465 <exception cref="T:System.ArgumentNullException">
466 <paramref name="hash" /> or <paramref name="padding" /> is <see langword="null" />.</exception>
467 <exception cref="T:System.ArgumentException">
468 <paramref name="hashAlgorithm" />.<see cref="P:System.Security.Cryptography.HashAlgorithmName.Name" /> is <see langword="null" /> or <see cref="F:System.String.Empty" />.</exception>
469 <exception cref="T:System.Security.Cryptography.CryptographicException">
470 <paramref name="padding" /> is unknown, or not supported by this implementation.</exception>
472 <see langword="true" /> if the signature is valid; otherwise, <see langword="false" />.</returns>
474 <member name="P:System.Security.Cryptography.RSAOpenSsl.KeySize">
475 <summary>Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.</summary>
476 <exception cref="T:System.Security.Cryptography.CryptographicException">
477 <paramref name="value" /> is not permitted by <see cref="P:System.Security.Cryptography.RSAOpenSsl.LegalKeySizes" />.</exception>
478 <returns>The size, in bits, of the key modulus used by the asymmetric algorithm.</returns>
480 <member name="P:System.Security.Cryptography.RSAOpenSsl.LegalKeySizes">
481 <summary>Gets the key sizes, in bits, that are supported by this implementation of RSA.</summary>
482 <returns>An array that contains the key sizes supported by the algorithm.</returns>
484 <member name="T:System.Security.Cryptography.SafeEvpPKeyHandle">
485 <summary>Represents the <see langword="EVP_PKEY*" /> pointer type from OpenSSL.</summary>
487 <member name="M:System.Security.Cryptography.SafeEvpPKeyHandle.#ctor">
488 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> class, representing an invalid handle.</summary>
490 <member name="M:System.Security.Cryptography.SafeEvpPKeyHandle.#ctor(System.IntPtr,System.Boolean)">
491 <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> class with the specified handle value.</summary>
492 <param name="handle">The handle value to represent.</param>
493 <param name="ownsHandle">
494 <see langword="true" /> to reliably let <see cref="T:System.Security.Cryptography.SafeEvpPKeyHandle" /> release the handle during the finalization phase; otherwise, <see langword="false" /> (not recommended).</param>
496 <member name="M:System.Security.Cryptography.SafeEvpPKeyHandle.DuplicateHandle">
497 <summary>Creates another instance of this type which has an independent lifetime but tracks the same resource.</summary>
498 <exception cref="T:System.InvalidOperationException">This handle is invalid.</exception>
499 <returns>Another instance of this type which has an independent lifetime but tracks the same resource.</returns>
501 <member name="P:System.Security.Cryptography.SafeEvpPKeyHandle.IsInvalid">
502 <summary>Gets a value indicating whether the handle value is invalid.</summary>
504 <see langword="true" /> if the handle value is invalid; otherwise, <see langword="false" />.</returns>
506 <member name="P:System.Security.Cryptography.SafeEvpPKeyHandle.OpenSslVersion">
507 <summary>Gets a value representing the version number as reported by the loaded version of OpenSSL.</summary>
508 <returns>A value representing the version number as reported by the loaded version of OpenSSL.</returns>