CspKeyContainerInfo Class
Provides additional information about a cryptographic key pair. This class cannot be inherited.
Assembly: mscorlib (in mscorlib.dll)
The CspKeyContainerInfo type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | CspKeyContainerInfo | Initializes a new instance of the CspKeyContainerInfo class using the specified parameters. |
| Name | Description | |
|---|---|---|
![]() | Accessible | Gets a value indicating whether a key in a key container is accessible. |
![]() | CryptoKeySecurity | Gets a CryptoKeySecurity object that represents access rights and audit rules for a container. |
![]() | Exportable | Gets a value indicating whether a key can be exported from a key container. |
![]() | HardwareDevice | Gets a value indicating whether a key is a hardware key. |
![]() | KeyContainerName | Gets a key container name. |
![]() | KeyNumber | Gets a value that describes whether an asymmetric key was created as a signature key or an exchange key. |
![]() | MachineKeyStore | Gets a value indicating whether a key is from a machine key set. |
![]() | Protected | Gets a value indicating whether a key pair is protected. |
![]() | ProviderName | Gets the provider name of a key. |
![]() | ProviderType | Gets the provider type of a key. |
![]() | RandomlyGenerated | Gets a value indicating whether a key container was randomly generated by a managed cryptography class. |
![]() | Removable | Gets a value indicating whether a key can be removed from a key container. |
![]() | UniqueKeyContainerName | Gets a unique key container name. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
Use this class to obtain additional information about a key pair, such as the key container name or the key number.
In cases where a random key is generated by the RSACryptoServiceProvider or the DSACryptoServiceProvider, a key container will not be created until you call a method that uses the key. Some properties of the CspKeyContainerInfo class will throw a CryptographicException if a key container has not been created.
The following code example creates a key container and retrieves information about that container.
using System; using System.Security.Cryptography; using System.Text; public class CspKeyContainerInfoExample { public static void Main(String[] args) { RSACryptoServiceProvider rsa= new RSACryptoServiceProvider(); try { // Note: In cases where a random key is generated, // a key container is not created until you call // a method that uses the key. This example calls // the Encrypt method before calling the // CspKeyContainerInfo property so that a key // container is created. // Create some data to encrypt and display it. string data = "Here is some data to encrypt."; Console.WriteLine("Data to encrypt: " + data); // Convert the data to an array of bytes and // encrypt it. byte[] byteData = Encoding.ASCII.GetBytes(data); byte[] encData = rsa.Encrypt(byteData, false); // Display the encrypted value. Console.WriteLine("Encrypted Data: " + Encoding.ASCII.GetString(encData)); Console.WriteLine(); Console.WriteLine("CspKeyContainerInfo information:"); Console.WriteLine(); // Create a new CspKeyContainerInfo object. CspKeyContainerInfo keyInfo = rsa.CspKeyContainerInfo; // Display the value of each property. Console.WriteLine("Accessible property: " + keyInfo.Accessible); Console.WriteLine("Exportable property: " + keyInfo.Exportable); Console.WriteLine("HardwareDevice property: " + keyInfo.HardwareDevice); Console.WriteLine("KeyContainerName property: " + keyInfo.KeyContainerName); Console.WriteLine("KeyNumber property: " + keyInfo.KeyNumber.ToString()); Console.WriteLine("MachineKeyStore property: " + keyInfo.MachineKeyStore); Console.WriteLine("Protected property: " + keyInfo.Protected); Console.WriteLine("ProviderName property: " + keyInfo.ProviderName); Console.WriteLine("ProviderType property: " + keyInfo.ProviderType); Console.WriteLine("RandomlyGenerated property: " + keyInfo.RandomlyGenerated); Console.WriteLine("Removable property: " + keyInfo.Removable); Console.WriteLine("UniqueKeyContainerName property: " + keyInfo.UniqueKeyContainerName); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { // Clear the key. rsa.Clear(); } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
