This topic has not yet been rated - Rate this topic

CngKey Class

Defines the core functionality for keys that are used with Cryptography Next Generation (CNG) objects.

System.Object
  System.Security.Cryptography.CngKey

Namespace:  System.Security.Cryptography
Assembly:  System.Core (in System.Core.dll)
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class CngKey : IDisposable

The CngKey type exposes the following members.

  Name Description
Public property Algorithm Gets the algorithm that is used by the key.
Public property AlgorithmGroup Gets the algorithm group that is used by the key.
Public property ExportPolicy Gets the export policy that is used by the key.
Public property Handle Gets a safe handle that represents a native key (NCRYPT_KEY_HANDLE).
Public property IsEphemeral Gets the persistence state of the key.
Public property IsMachineKey Gets the scope (machine or user) of the key.
Public property KeyName Gets the name of the key.
Public property KeySize Gets the key size in bits.
Public property KeyUsage Gets the cryptographic operations specified by the key.
Public property ParentWindowHandle Gets or sets the window handle (HWND) that should be used for user interface (UI) prompts caused by accessing the key.
Public property Provider Gets the key storage provider (KSP) that manages the key.
Public property ProviderHandle Gets a native handle (an NCRYPT_PROV_HANDLE) to the key storage provider (KSP).
Public property UIPolicy Gets parameters that control the user interface (UI) for accessing the key.
Public property UniqueName Gets the unique name for the key.
Top
  Name Description
Public method Static member Create(CngAlgorithm) Creates a CngKey object that can be used with the specified algorithm.
Public method Static member Create(CngAlgorithm, String) Creates a named CngKey object that provides the specified algorithm.
Public method Static member Create(CngAlgorithm, String, CngKeyCreationParameters) Creates a named CngKey object that provides the specified algorithm, using the supplied key creation parameters.
Public method Delete Removes the key that is associated with the object.
Public method Dispose Releases all resources used by the current instance of the CngKey class.
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Public method Static member Exists(String) Checks to see whether a named key exists in the default key storage provider (KSP).
Public method Static member Exists(String, CngProvider) Checks to see whether a named key exists in the specified key storage provider (KSP).
Public method Static member Exists(String, CngProvider, CngKeyOpenOptions) Checks to see whether a named key exists in the specified key storage provider (KSP), according to the specified options.
Public method Export Exports the key material into a BLOB, in the specified format.
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetProperty Gets a property, given a name and a set of property options.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method HasProperty Checks to see whether the specified property exists on the key.
Public method Static member Import(Byte[], CngKeyBlobFormat) Creates a new key by importing the specified key material into the default key storage provider (KSP) and using the specified format.
Public method Static member Import(Byte[], CngKeyBlobFormat, CngProvider) Creates a new key by importing the specified key material into the specified key storage provider (KSP), using the specified format.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Static member Open(String) Creates an instance of an CngKey object that represents an existing named key.
Public method Static member Open(SafeNCryptKeyHandle, CngKeyHandleOpenOptions) Creates an instance of an CngKey object by using a handle to an existing key.
Public method Static member Open(String, CngProvider) Creates an instance of an CngKey object that represents an existing named key, using the specified key storage provider (KSP).
Public method Static member Open(String, CngProvider, CngKeyOpenOptions) Creates an instance of an CngKey object that represents an existing named key, using the specified key storage provider (KSP) and key open options.
Public method SetProperty Sets a named property on the key.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Top

This class wraps NCrypt keys, not BCrypt keys. NCrypt is a subset of CNG that provides key storage functionality. BCrypt is a subset that provides base cryptographic services such as random number generation, hash functions, signatures, and encryption keys.

Note Note

The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: MayLeakOnAbort. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes.

.NET Framework

Supported in: 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ