System.Security.Cryptography.Cng Provides a Cryptography Next Generation (CNG) implementation of the RSA algorithm. Initializes a new instance of the class with a random 2,048-bit key pair. Initializes a new instance of the class with a randomly generated key of the specified size. The size of the key to generate in bits. keySize is not valid. Initializes a new instance of the class with the specified key. The key to use for RSA operations. key is not a valid RSA key. key is null. Decrypts input data using the specified padding mode. The data to decrypt. The padding mode. The decrypted data. data is null. -or- padding is null. padding does not equal , or else the of padding does not equal . Encrypts the input data using the specified padding. The data to encrypt. The padding mode. Returns . data is null. -or- padding is null. padding does not equal or . Exports the key used by the RSA object into a object. true to include private parameters; otherwise, false. The key used by the RSA object. Replaces the existing key that the current instance is working with by creating a new for the parameters structure. The RSA parameters. parameters contains neither an exponent nor a modulus. parameters is not a valid RSA key. -or- parameters is a full key pair and the default KSP is used. Gets the key that will be used by the object for any cryptographic operation that it performs. The key used by the object. Signs data that was hashed by using the specified hashing algorithm and padding mode. The hash to sign. The hash algorithm name. The padding mode. The signed data. hash is null. -or- padding is null. The value of the property of hashAlgorithm is null or . padding does not equal or . Verifies data that was signed and already hashed with the specified algorithm and padding mode. The hash to verify. The signature of the data. The hash algorithm name. The padding mode. true if the signature verifies for the hash; otherwise, false. hash is null. -or- signature is null. -or- padding is null. The value of the property of hashAlgorithm is null or . padding does not equal or . -or- The signature is badly formatted. (In the .NET Framework 4.6 and 4.6.1 only; starting with the .NET Framework 4.6.2, the method returns false if a signature is badly formatted. Provides a Cryptography Next Generation (CNG) implementation of the Triple Data Encryption Standard (3DES) algorithm. Initializes a new instance of the class with an ephemeral key. Initializes a new instance of the class with the specified key name, which represents an existing persisted 3DES key. The name of the key. keyName is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Initializes a new instance of the class with the specified key name, which represents an existing persisted 3DES key, and the specified key storage provider (KSP). The name of the key. The KSP that contains the key. keyName is null. -or- provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Initializes a new instance of the class with the specified key name, which represents an existing persisted 3DES key, the specified key storage provider (KSP) and key open options. The name of the key. The KSP that contains the key. A bitwise combination of the enumeration values that specify options for opening the key, such as where the key is opened from (machine or user storage) and whether to suppress UI prompting. keyName is null. -or- provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates a symmetric 3DES decryptor object with the current key and initialization vector (). A symmetric 3DES decryptor object. Creates a symmetric 3DES decryptor object with the specified key and initialization vector (IV). The secret key to use for the 3DES algorithm. The key size must be 192 bits. The initialization vector to use for the 3DES algorithm. A symmetric 3DES decryptor object. rgbKey is null. rgbKey is not a valid size for this algorithm. -or- rgbIV size does not match the block size for this algorithm. rgbKey is a known weak key for this algorithm and cannot be used. -or- rgbIV is null. Creates a symmetric 3DES encryptor object using the current key and initialization vector (). A symmetric 3DES encryptor object. Creates a symmetric 3DES encryptor object with the specified key and initialization vector (IV). The secret key to use for the 3DES algorithm. The key size must be 192 bits. The initialization vector to use for the 3DES algorithm. A symmetric 3DES encryptor object. rgbKey is null. rgbKey is not a valid size for this algorithm. -or- rgbIV size does not match the block size for this algorithm. rgbKey is a known weak key for this algorithm and cannot be used. -or- rgbIV is null. Generates a random initialization vector (IV) to use for the 3DES algorithm. Generates a random key to use for the 3DES algorithm. Gets or sets the key for the algorithm. The key for the algorithm. Gets or sets the size, in bits, of the secret key used by the algorithm. The size, in bits, of the secret key used by the algorithm. Provides a safe handle that can be used by Cryptography Next Generation (CNG) objects. Initializes a new instance of the class. Releases a handle used by a Cryptography Next Generation (CNG) object. true if the handle is released successfully; otherwise, false. Releases a native handle used by a Cryptography Next Generation (CNG) object. true if the handle is released successfully; otherwise, false. Provides a safe handle that represents a key (NCRYPT_KEY_HANDLE). Initializes a new instance of the class. Provides a safe handle that represents a key storage provider (NCRYPT_PROV_HANDLE). Initializes a new instance of the class. Provides a safe handle that represents a secret agreement value (NCRYPT_SECRET_HANDLE). Initializes a new instance of the class. Provides a Cryptography Next Generation (CNG) implementation of the Elliptic Curve Digital Signature Algorithm (ECDSA). Initializes a new instance of the class with a random key pair. Cryptography Next Generation (CNG) classes are not supported on this system. Initializes a new instance of the class with a random key pair, using the specified key size. The size of the key. Valid key sizes are 256, 384, and 521 bits. Cryptography Next Generation (CNG) classes are not supported on this system. keySize specifies an invalid length. Initializes a new instance of the class by using the specified object. The key that will be used as input to the cryptographic operations performed by the current object. key does not specify an Elliptic Curve Digital Signature Algorithm (ECDSA) group. key is null. Cryptography Next Generation (CNG) classes are not supported on this system. Initializes a new instance of the class whose public/private key pair is generated over the specified curve. The curve used to generate the public/private key pair. curve does not validate. Exports the key and explicit curve parameters used by the Elliptic curve cryptography (ECC) object into an object. true to include private parameters; otherwise, false. The key and explicit curve parameters used by the ECC object. An error occurred while obtaining the curve values. Explicit export is not supported by this platform. Windows 10 or higher is required. Exports the key used by the Elliptic curve cryptography (ECC) object into an object. If the key was created as a named curve, the field contains named curve parameters; otherwise, it contains explicit parameters. true to include private parameters; otherwise, false. The key and named curve parameters used by the ECC object. An error occurred while obtaining the curve values. Deserializes the key information from an XML string by using the specified format. The XML-based key information to be deserialized. One of the enumeration values that specifies the format of the XML string. The only currently accepted format is . xml is null. format specifies an invalid format. The only accepted value is . All other errors. Generates a key to use for the ECDsaCng algorithm. The curve to use to generate the key. curve does not validate. Gets or sets the hash algorithm to use when signing and verifying data. An object that specifies the hash algorithm. The value is null. Replaces the existing key that the current instance is working with by creating a new for the parameters structure. The curve parameters. parameters does not contain valid values. parameters references a curve that cannot be imported. parameters references a curve that is not supported by this platform. Gets or sets the key to use when signing and verifying data. An object that specifies the key. Generates a signature for the specified data. The message data to be signed. A digital signature for the specified data. data is null. The key information that is associated with the instance does not have a private key. Generates a signature for the specified data stream, reading to the end of the stream. The data stream to be signed. A digital signature for the specified data stream. data is null. The key information that is associated with the instance does not have a private key. Generates a digital signature for the specified length of data, beginning at the specified offset. The message data to be signed. The location in the string at which to start signing. The length of the string, in characters, following offset that will be signed. A digital signature for the specified length of data. data is null. count or offset caused reading outside the bounds of the data string. The key information that is associated with the instance does not have a private key. Generates a signature for the specified hash value. The hash value of the data to be signed. A digital signature for the specified hash value. hash is null. The key information that is associated with the instance does not have a private key. Serializes the key information to an XML string by using the specified format. One of the enumeration values that specifies the format of the XML string. The only currently accepted format is . A string object that contains the key information, serialized to an XML string according to the requested format. format specifies an invalid format. The only accepted value is . All other errors. Verifies the digital signature of the specified data. The data that was signed. The signature to be verified. true if the signature is valid; otherwise, false. data or signature is null. Verifies the digital signature of the specified data stream, reading to the end of the stream. The data stream that was signed. The signature to be verified. true if the signature is valid; otherwise, false. data or signature is null. Verifies a signature for the specified length of data, beginning at the specified offset. The data that was signed. The location in the data at which the signed data begins. The length of the data, in characters, following offset that will be signed. The signature to be verified. true if the signature is valid; otherwise, false. offset or count is less then zero. -or- offset or count is larger than the length of the byte array passed in the data parameter. data or signature is null. Verifies the specified digital signature against a specified hash value. The hash value of the data to be verified. The digital signature of the data to be verified against the hash value. true if the signature is valid; otherwise, false. hash or signature is null. Defines XML serialization formats for elliptic curve keys. An XML serialization format described in RFC 4050, "Using the Elliptic Curve Signature Algorithm (ECDSA) for XML Digital Signatures." Provides a Cryptography Next Generation (CNG) implementation of the Advanced Encryption Standard (AES) algorithm. Initializes a new instance of the class with an ephemeral key. Initializes a new instance of the class with the specified key name, which represents an existing persisted AES key. The name of the key. keyName is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Initializes a new instance of the class with the specified key name, which represents an existing persisted AES key, and the specified key storage provider (KSP). The name of the key. The KSP that contains the key. keyName is null. -or- provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Initializes a new instance of the class with the specified key name, which represents an existing persisted AES key, the specified key storage provider (KSP) and key open options. The name of the key. The KSP that contains the key. A bitwise combination of the enumeration values that specify options for opening the key, such as where the key is opened from (machine or user storage) and whether to suppress UI prompting. keyName is null. -or- provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates a symmetric AES decryptor object with the current key and initialization vector (). A symmetric AES decryptor object. Creates a symmetric AES decryptor object with the specified key and initialization vector (IV). The secret key to use for the AES algorithm. The key size must be 128, 192, or 256 bits. The initialization vector to use for the AES algorithm. A symmetric AES decryptor object. rgbKey is null. rgbKey is not a valid size for this algorithm. -or- rgbIV size does not match the block size for this algorithm. rgbKey is a known weak key for this algorithm and cannot be used. -or- rgbIV is null. Creates a symmetric AES encryptor object using the current key and initialization vector (). A symmetric AES encryptor object. Creates a symmetric AES encryptor object with the specified key and initialization vector (IV). The secret key to use for the AES algorithm. The key size must be 128, 192, or 256 bits. The initialization vector to use for the AES algorithm. A symmetric AES encryptor object. rgbKey is null. rgbKey is not a valid size for this algorithm. -or- rgbIV size does not match the block size for this algorithm. rgbKey is a known weak key for this algorithm and cannot be used. -or- rgbIV is null. Generates a random initialization vector (IV) to use for the AES algorithm. Generates a random key to use for the AES algorithm. Gets or sets the key for the algorithm. The key for the algorithm. Gets or sets the size, in bits, of the secret key used by the algorithm. The size, in bits, of the secret key used by the algorithm. Encapsulates the name of an encryption algorithm. Initializes a new instance of the class. The name of the algorithm to initialize. The algorithm parameter is null. The algorithm parameter length is 0 (zero). Gets the algorithm name that the current object specifies. The embedded algorithm name. Gets a object that specifies an Elliptic Curve Diffie-Hellman (ECDH) key exchange algorithm whose curve is described via a key property. An object that specifies an ECDH key exchange algorithm whose curve is described via a key property. Gets a object that specifies an Elliptic Curve Diffie-Hellman (ECDH) key exchange algorithm that uses the P-256 curve. An object that specifies an ECDH algorithm that uses the P-256 curve. Gets a object that specifies an Elliptic Curve Diffie-Hellman (ECDH) key exchange algorithm that uses the P-384 curve. An object that specifies an ECDH algorithm that uses the P-384 curve. Gets a object that specifies an Elliptic Curve Diffie-Hellman (ECDH) key exchange algorithm that uses the P-521 curve. An object that specifies an ECDH algorithm that uses the P-521 curve. Gets a object that specifies an Elliptic Curve Digital Signature Algorithm (ECDSA) whose curve is described via a key property. An object that specifies an ECDSA whose curve is described via a key property. Gets a object that specifies an Elliptic Curve Digital Signature Algorithm (ECDSA) that uses the P-256 curve. An object that specifies an ECDSA algorithm that uses the P-256 curve. Gets a object that specifies an Elliptic Curve Digital Signature Algorithm (ECDSA) that uses the P-384 curve. An object that specifies an ECDSA algorithm that uses the P-384 curve. Gets a new object that specifies an Elliptic Curve Digital Signature Algorithm (ECDSA) that uses the P-521 curve. An object that specifies an ECDSA algorithm that uses the P-521 curve. Compares the specified object to the current object. An object to be compared to the current object. true if the other parameter specifies the same algorithm as the current object; otherwise, false. Compares the specified object to the current object. An object to be compared to the current object. true if the obj parameter is a that specifies the same algorithm as the current object; otherwise, false. Generates a hash value for the algorithm name that is embedded in the current object. The hash value of the embedded algorithm name. Gets a new object that specifies the Message Digest 5 (MD5) hash algorithm. An object that specifies the MD5 algorithm. Determines whether two objects specify the same algorithm name. An object that specifies an algorithm name. A second object, to be compared to the object that is identified by the left parameter. true if the two objects specify the same algorithm name; otherwise, false. Determines whether two objects do not specify the same algorithm. An object that specifies an algorithm name. A second object, to be compared to the object that is identified by the left parameter. true if the two objects do not specify the same algorithm name; otherwise, false. Gets a new object that specifies the RSA hash algorithm. An object that specifies the RSA algorithm. Gets a new object that specifies the Secure Hash Algorithm 1 (SHA-1) algorithm. An object that specifies the SHA-1 algorithm. Gets a new object that specifies the Secure Hash Algorithm 256 (SHA-256) algorithm. An object that specifies the SHA-256 algorithm. Gets a new object that specifies the Secure Hash Algorithm 384 (SHA-384) algorithm. An object that specifies the SHA-384 algorithm. Gets a new object that specifies the Secure Hash Algorithm 512 (SHA-512) algorithm. An object that specifies the SHA-512 algorithm. Gets the name of the algorithm that the current object specifies. The embedded algorithm name. Encapsulates the name of an encryption algorithm group. Initializes a new instance of the class. The name of the algorithm group to initialize. The algorithmGroup parameter is null. The algorithmGroup parameter length is 0 (zero). Gets the name of the algorithm group that the current object specifies. The embedded algorithm group name. Gets a object that specifies the Diffie-Hellman family of algorithms. An object that specifies the Diffie-Hellman family of algorithms. Gets a object that specifies the Digital Signature Algorithm (DSA) family of algorithms. An object that specifies the DSA family of algorithms. Gets a object that specifies the Elliptic Curve Diffie-Hellman (ECDH) family of algorithms. An object that specifies the ECDH family of algorithms. Gets a object that specifies the Elliptic Curve Digital Signature Algorithm (ECDSA) family of algorithms. An object that specifies the ECDSA family of algorithms. Compares the specified object to the current object. An object to be compared to the current object. true if the obj parameter is a that specifies the same algorithm group as the current object; otherwise, false. Compares the specified object to the current object. An object to be compared to the current object. true if the other parameter specifies the same algorithm group as the current object; otherwise, false. Generates a hash value for the algorithm group name that is embedded in the current object. The hash value of the embedded algorithm group name. Determines whether two objects specify the same algorithm group. An object that specifies an algorithm group. A second object, to be compared to the object that is identified by the left parameter. true if the two objects specify the same algorithm group; otherwise, false. Determines whether two objects do not specify the same algorithm group. An object that specifies an algorithm group. A second object, to be compared to the object that is identified by the left parameter. true if the two objects do not specify the same algorithm group; otherwise, false. Gets a object that specifies the Rivest-Shamir-Adleman (RSA) family of algorithms. An object that specifies the RSA family of algorithms. Gets the name of the algorithm group that the current object specifies. The embedded algorithm group name. Specifies the key export policies for a key. The private key can be exported one time for archiving purposes. The private key can be exported multiple times. The private key can be exported one time as plaintext. The private key can be exported multiple times as plaintext. No export policies are established. Key export is allowed without restriction. Defines the core functionality for keys that are used with Cryptography Next Generation (CNG) objects. Gets the algorithm that is used by the key. An object that specifies the name of an encryption algorithm. Gets the algorithm group that is used by the key. An object that specifies the name of an encryption algorithm group. Creates a object that can be used with the specified algorithm. The algorithm that the key will be used with. An ephemeral key. algorithm is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates a named object that provides the specified algorithm. The algorithm that the key will be used with. The key name. If a name is not provided, the key will not be persisted. A persisted or ephemeral key that provides the specified algorithm. algorithm is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates a named object that provides the specified algorithm, using the supplied key creation parameters. The algorithm that the key will be used with. The key name. If a name is not provided, the key will not be persisted. An object that specifies advanced parameters for the method, including the . A persisted or ephemeral key that provides the specified algorithm. algorithm is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Removes the key that is associated with the object. An attempt was made to access a deleted key. All other errors. Releases all resources used by the current instance of the class. Checks to see whether a named key exists in the specified key storage provider (KSP), according to the specified options. The key name. The KSP to search for the key. A bitwise combination of the enumeration values that specify options for opening a key. true if the named key exists in the specified provider; otherwise, false. keyName or provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Checks to see whether a named key exists in the default key storage provider (KSP). The key name. true if the named key exists in the default KSP; otherwise, false. keyName is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Checks to see whether a named key exists in the specified key storage provider (KSP). The key name. The KSP to check for the key. true if the named key exists in the specified provider; otherwise, false. keyName or provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Exports the key material into a BLOB, in the specified format. An object that specifies the format of the key BLOB. A BLOB that contains the key material in the specified format. format is null. All other errors. Typically, the does not allow the key to be exported. Gets the export policy that is used by the key. An object that specifies the export policy for the key. Gets a property, given a name and a set of property options. The name of the desired property. A bitwise combination of the enumeration values that specify options for the named property. An object that contains the raw value of the specified property. name is null. All other errors. Gets a safe handle that represents a native key (NCRYPT_KEY_HANDLE). A safe handle that represents the key. Checks to see whether the specified property exists on the key. The property name to check. A bitwise combination of the enumeration values that specify options for the named property. true if the specified property is found; otherwise, false. name is null. Creates a new key by importing the specified key material into the specified key storage provider (KSP), using the specified format. An array that contains the key information. An object that specifies the format of the keyBlob array. The KSP. A new key. keyBlob, format, or provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates a new key by importing the specified key material into the default key storage provider (KSP) and using the specified format. An array that contains the key information. An object that specifies the format of the keyBlob array. A new key. keyBlob or format is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Gets the persistence state of the key. true if the key is ephemeral; otherwise, false. Gets the scope (machine or user) of the key. true if the key is available on a machine-wide basis; false if the key is only for the current user. Gets the name of the key. The name of the key. If the key is ephemeral, the value is null. Gets the key size in bits. The key size in bits. Gets the cryptographic operations specified by the key. A bitwise combination of the enumeration values that specify the usages allowed for the key. Creates an instance of an object that represents an existing named key. The name of the key. An existing key. keyName is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates an instance of an object by using a handle to an existing key. A handle to an existing key. One of the enumeration values that indicates whether keyHandle represents an ephemeral key or a named key. An existing key. keyHandle is null. keyHandle is invalid or malformed, or it is already closed. This exception is also thrown if the key is an ephemeral key that is created by the common language runtime (CLR), but the value is not specified. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates an instance of an object that represents an existing named key, using the specified key storage provider (KSP). The name of the key. The KSP that contains the key. An existing key. keyName or provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Creates an instance of an object that represents an existing named key, using the specified key storage provider (KSP) and key open options. The name of the key. The KSP that contains the key. A bitwise combination of the enumeration values that specify options for opening the key, such as where the key is opened from (machine or user storage) and whether to suppress UI prompting. An existing key. keyName or provider is null. Cryptography Next Generation (CNG) is not supported on this system. All other errors. Gets or sets the window handle (HWND) that should be used for user interface (UI) prompts caused by accessing the key. The parent window handle for the key. Gets the key storage provider (KSP) that manages the key. The KSP that manages the key. Gets a native handle (an NCRYPT_PROV_HANDLE) to the key storage provider (KSP). A handle to the KSP. Sets a named property on the key. The key property to set. Gets parameters that control the user interface (UI) for accessing the key. An object that contains configuration parameters for displaying the UI. Gets the unique name for the key. An alternate name for the key. If the key is ephemeral, the value is null. Specifies a key BLOB format for use with Microsoft Cryptography Next Generation (CNG) objects. Initializes a new instance of the class by using the specified format. The key BLOB format to initialize. The format parameter is null. The format parameter length is 0 (zero). Gets a object that specifies a private key BLOB for an elliptic curve cryptography (ECC) key which contains explicit curve parameters. An object describing a private key BLOB. Gets a object that specifies a public key BLOB for an elliptic curve cryptography (ECC) key which contains explicit curve parameters. An object describing a public key BLOB. Gets a object that specifies a private key BLOB for an elliptic curve cryptography (ECC) key. An object that specifies an ECC private key BLOB. Gets a object that specifies a public key BLOB for an elliptic curve cryptography (ECC) key. An object that specifies an ECC public key BLOB. Compares the specified object to the current object. An object to be compared to the current object. true if the obj parameter is a object that specifies the same key BLOB format as the current object; otherwise, false. Compares the specified object to the current object. An object to be compared to the current object. true if the other parameter specifies the same key BLOB format as the current object; otherwise, false. Gets the name of the key BLOB format that the current object specifies. The embedded key BLOB format name. Gets a object that specifies a generic private key BLOB. An object that specifies a generic private key BLOB. Gets a object that specifies a generic public key BLOB. An object that specifies a generic public key BLOB. Generates a hash value for the embedded key BLOB format in the current object. The hash value of the embedded key BLOB format. Determines whether two objects specify the same key BLOB format. An object that specifies a key BLOB format. A second object, to be compared to the object identified by the left parameter. true if the two objects specify the same key BLOB format; otherwise, false. Determines whether two objects do not specify the same key BLOB format. An object that specifies a key BLOB format. A second object, to be compared to the object identified by the left parameter. true if the two objects do not specify the same key BLOB format; otherwise, false. Gets a object that specifies an opaque transport key BLOB. An object that specifies an opaque transport key BLOB. Gets a object that specifies a Private Key Information Syntax Standard (PKCS #8) key BLOB. An object that specifies a PKCS #8 private key BLOB. Gets the name of the key BLOB format that the current object specifies. The embedded key BLOB format name. Specifies options used for key creation. A machine-wide key is created. No key creation options are used. The existing key is overwritten during key creation. Contains advanced properties for key creation. Initializes a new instance of the class. Gets or sets the key export policy. An object that specifies a key export policy. The default value is null, which indicates that the key storage provider's default export policy is set. Gets or sets the key creation options. An object that specifies options for creating keys. The default value is null, which indicates that the key storage provider's default key creation options are set. Gets or sets the cryptographic operations that apply to the current key. A bitwise combination of one or more enumeration values that specify key usage. The default value is null, which indicates that the key storage provider's default key usage is set. Enables a object to be created with additional properties that are set before the key is finalized. A collection object that contains any additional parameters that you must set on a object during key creation. Gets or sets the window handle that should be used as the parent window for dialog boxes that are created by Cryptography Next Generation (CNG) classes. The HWND of the parent window that is used for CNG dialog boxes. Gets or sets the key storage provider (KSP) to create a key in. An object that specifies the KSP that a new key will be created in. The property is set to a null value. Gets or sets information about the user interface to display when a key is created or accessed. An object that contains details about the user interface shown by Cryptography Next Generation (CNG) classes when a key is created or accessed. A null value indicates that the key storage provider's default user interface policy is set. Specifies options for opening key handles. The key handle being opened specifies an ephemeral key. The key handle being opened does not specify an ephemeral key. Specifies options for opening a key. A machine-wide key is opened. No key open options are specified. UI prompting is suppressed. If the value is not specified, a user key is opened instead. Specifies the cryptographic operations that a Cryptography Next Generation (CNG) key may be used with. The key can be used for all purposes. The key can be used for encryption and decryption. The key can be used for secret agreement generation and key exchange. No usage values are assigned to the key. The key can be used for signing and verification. Encapsulates a property of a Cryptography Next Generation (CNG) key or provider. Initializes a new instance of the class. The property name to initialize. The property value to initialize. A bitwise combination of the enumeration values that specify how the property is stored. name is null. Compares the specified object to the current object. An object to be compared to the current object. true if the obj parameter is a object that specifies the same property as the current object; otherwise, false. Compares the specified object to the current object. An object to be compared to the current object. true if the other parameter represents the same property as the current object; otherwise, false. Generates a hash value for the current object. The hash value of the current object. Gets the property value that the current object specifies. An array that represents the value stored in the property. Gets the property name that the current object specifies. The property name that is set in the current object. Determines whether two objects specify the same property name, value, and options. An object that specifies a property of a Cryptography Next Generation (CNG) key or provider. A second object, to be compared to the object that is identified by the left parameter. true if the two objects specify the same property; otherwise, false. Determines whether two objects do not specify the same property name, value, and options. An object that specifies a property of a Cryptography Next Generation (CNG) key or provider. A second object, to be compared to the object that is identified by the left parameter. true if the two objects do not specify the same property; otherwise, false. Gets the property options that the current object specifies. An object that specifies the options that are set in the current object. Provides a strongly typed collection of Cryptography Next Generation (CNG) properties. Initializes a new object. Specifies Cryptography Next Generation (CNG) key property options. The property is not specified by CNG. Use this option to avoid future name conflicts with CNG properties. The referenced property has no options. The property should be persisted. Encapsulates the name of a key storage provider (KSP) for use with Cryptography Next Generation (CNG) objects. Initializes a new instance of the class. The name of the key storage provider (KSP) to initialize. The provider parameter is null. The provider parameter length is 0 (zero). Compares the specified object to the current object. An object to be compared to the current object. true if the obj parameter is a that specifies the same key storage provider(KSP) as the current object; otherwise, false. Compares the specified object to the current object. An object to be compared to the current object. true if the other parameter specifies the same key storage provider (KSP) as the current object; otherwise, false. Generates a hash value for the name of the key storage provider (KSP) that is embedded in the current object. The hash value of the embedded KSP name. Gets a object that specifies the Microsoft Smart Card Key Storage Provider. An object that specifies the Microsoft Smart Card Key Storage Provider. Gets a object that specifies the Microsoft Software Key Storage Provider. An object that specifies the Microsoft Software Key Storage Provider. Determines whether two objects specify the same key storage provider (KSP). An object that specifies a KSP. A second object, to be compared to the object that is identified by the left parameter. true if the two objects represent the same KSP; otherwise, false. Determines whether two objects do not represent the same key storage provider (KSP). An object that specifies a KSP. A second object, to be compared to the object that is identified by the left parameter. true if the two objects do not represent the same KSP; otherwise, false. Gets the name of the key storage provider (KSP) that the current object specifies. The embedded KSP name. Gets the name of the key storage provider (KSP) that the current object specifies. The embedded KSP name. Encapsulates optional configuration parameters for the user interface (UI) that Cryptography Next Generation (CNG) displays when you access a protected key. Initializes a new instance of the class by using the specified protection level. A bitwise combination of the enumeration values that specify the protection level. Initializes a new instance of the class by using the specified protection level and friendly name. A bitwise combination of the enumeration values that specify the protection level. A friendly name for the key to be used in the UI prompt. Specify a null string to use the default name. Initializes a new instance of the class by using the specified protection level, friendly name, and description. A bitwise combination of the enumeration values that specify the protection level. A friendly name for the key to be used in the UI prompt. Specify a null string to use the default name. The full-text description of the key. Specify a null string to use the default description. Initializes a new instance of the class by using the specified protection level, friendly name, description string, and use context. A bitwise combination of the enumeration values that specify the protection level. A friendly name for the key to be used in the UI prompt. Specify a null string to use the default name. The full-text description of the key. Specify a null string to use the default description. A description of how the key will be used. Specify a null string to use the default description. Initializes a new instance of the class by using the specified protection level, friendly name, description string, use context, and title. A bitwise combination of the enumeration values that specify the protection level. A friendly name for the key to be used in the UI prompt. Specify a null string to use the default name. The full-text description of the key. Specify a null string to use the default description. A description of how the key will be used. Specify a null string to use the default description. The title for the dialog box that provides the UI prompt. Specify a null string to use the default title. Gets the title that is displayed by the UI prompt. The title of the dialog box that appears when the key is accessed. Gets the description string that is displayed by the UI prompt. The description text for the dialog box that appears when the key is accessed. Gets the friendly name that is displayed by the UI prompt. The friendly name that is used to describe the key in the dialog box that appears when the key is accessed. Gets the UI protection level for the key. An object that describes the level of UI protection to apply to the key. Gets the description of how the key will be used. The description of how the key will be used. Specifies the protection level for the key in user interface (UI) prompting scenarios. A UI prompt is displayed every time the key is accessed. No UI prompt is displayed when the key is accessed. A UI prompt is displayed the first time the key is accessed in a process. Provides a Cryptography Next Generation (CNG) implementation of the Digital Signature Algorithm (DSA). Initializes a new instance of the class with a random 2,048-bit key pair. Initializes a new instance of the class with a randomly generated key of the specified size. The size of the key to generate in bits. keySize is not valid. Initializes a new instance of the class with the specified key. The key to use for DSA operations. key is not a valid DSA key. key is null. Creates the digital signature for the specified data. The data to be signed. The digital signature for the specified data. rgbHash is null. rgbHash is shorter in length than the Q value of the DSA key . Exports the DSA algorithm parameters. true to include private parameters; otherwise, false. The DSA algorithm parameters. DSA key is not a valid public or private key. Replaces the existing key that the current instance is working with by creating a new for the parameters structure. The DSA parameters. The specified DSA parameters are not valid. Gets the key that will be used by the object for any cryptographic operation that it performs. The key used by the object to perform cryptographic operations. Gets the name of the key exchange algorithm. Always null. Gets the key sizes, in bits, that are supported by the DSA algorithm. An array that contains the key sizes supported by the algorithm. Gets the name of the signature algorithm. The string "DSA". Verifies if the specified digital signature matches the specified data. The signed data. The digital signature to be verified. true if rgbSignature matches the signature computed using the specified data; otherwise, false. The rgbHash parameter is null. -or- The rgbSignature parameter is null. rgbHash is shorter in length than the Q value of the DSA key .