CspKeyContainerInfo Class

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Provides additional information about a cryptographic key pair. This class cannot be inherited.

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

System::Object
  System.Security.Cryptography::CspKeyContainerInfo

[ComVisibleAttribute(true)]
public ref class CspKeyContainerInfo sealed 

NameDescription
System_CAPS_pubmethodCspKeyContainerInfo(CspParameters^)

Initializes a new instance of the CspKeyContainerInfo class using the specified parameters.

NameDescription
System_CAPS_pubpropertyAccessible

Gets a value indicating whether a key in a key container is accessible.

System_CAPS_pubpropertyCryptoKeySecurity

Gets a CryptoKeySecurity object that represents access rights and audit rules for a container.

System_CAPS_pubpropertyExportable

Gets a value indicating whether a key can be exported from a key container.

System_CAPS_pubpropertyHardwareDevice

Gets a value indicating whether a key is a hardware key.

System_CAPS_pubpropertyKeyContainerName

Gets a key container name.

System_CAPS_pubpropertyKeyNumber

Gets a value that describes whether an asymmetric key was created as a signature key or an exchange key.

System_CAPS_pubpropertyMachineKeyStore

Gets a value indicating whether a key is from a machine key set.

System_CAPS_pubpropertyProtected

Gets a value indicating whether a key pair is protected.

System_CAPS_pubpropertyProviderName

Gets the provider name of a key.

System_CAPS_pubpropertyProviderType

Gets the provider type of a key.

System_CAPS_pubpropertyRandomlyGenerated

Gets a value indicating whether a key container was randomly generated by a managed cryptography class.

System_CAPS_pubpropertyRemovable

Gets a value indicating whether a key can be removed from a key container.

System_CAPS_pubpropertyUniqueKeyContainerName

Gets a unique key container name.

NameDescription
System_CAPS_pubmethodEquals(Object^)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodToString()

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 namespace System;
using namespace System::Security::Cryptography;
using namespace System::Text;
int main()
{
   RSACryptoServiceProvider^ rsa = gcnew 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 = L"Here is some data to encrypt.";
      Console::WriteLine( L"Data to encrypt: {0}", data );

      // Convert the data to an array of bytes and 
      // encrypt it.
      array<Byte>^byteData = Encoding::ASCII->GetBytes( data );
      array<Byte>^encData = rsa->Encrypt( byteData, false );

      // Display the encrypted value.
      Console::WriteLine( L"Encrypted Data: {0}", Encoding::ASCII->GetString( encData ) );
      Console::WriteLine();
      Console::WriteLine( L"CspKeyContainerInfo information:" );
      Console::WriteLine();

      // Create a new CspKeyContainerInfo object.
      CspKeyContainerInfo^ keyInfo = rsa->CspKeyContainerInfo;

      // Display the value of each property.
      Console::WriteLine( L"Accessible property: {0}", keyInfo->Accessible );
      Console::WriteLine( L"Exportable property: {0}", keyInfo->Exportable );
      Console::WriteLine( L"HardwareDevice property: {0}", keyInfo->HardwareDevice );
      Console::WriteLine( L"KeyContainerName property: {0}", keyInfo->KeyContainerName );
      Console::WriteLine( L"KeyNumber property: {0}", keyInfo->KeyNumber );
      Console::WriteLine( L"MachineKeyStore property: {0}", keyInfo->MachineKeyStore );
      Console::WriteLine( L"Protected property: {0}", keyInfo->Protected );
      Console::WriteLine( L"ProviderName property: {0}", keyInfo->ProviderName );
      Console::WriteLine( L"ProviderType property: {0}", keyInfo->ProviderType );
      Console::WriteLine( L"RandomlyGenerated property: {0}", keyInfo->RandomlyGenerated );
      Console::WriteLine( L"Removable property: {0}", keyInfo->Removable );
      Console::WriteLine( L"UniqueKeyContainerName property: {0}", keyInfo->UniqueKeyContainerName );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e );
   }
   finally
   {

      // Clear the key.
      rsa->Clear();
   }

}

.NET Framework
Available since 2.0
Windows Phone Silverlight
Available since 7.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: