CspKeyContainerInfo.Exportable Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a value indicating whether a key can be exported from a key container.
public:
property bool Exportable { bool get(); };
public bool Exportable { get; }
member this.Exportable : bool
Public ReadOnly Property Exportable As Boolean
Property Value
true
if the key can be exported; otherwise, false
.
Exceptions
The key type is not supported.
The cryptographic service provider cannot be found.
-or-
The key container was not found.
Examples
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();
}
}
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();
}
}
}
Imports System.Security.Cryptography
Imports System.Text
Module CspKeyContainerInfoExample
Sub Main(ByVal args() As String)
Dim rsa As 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.
Dim data As String = "Here is some data to encrypt."
Console.WriteLine("Data to encrypt: " + data)
' Convert the data to an array of bytes and
' encrypt it.
Dim byteData As Byte() = Encoding.ASCII.GetBytes(data)
Dim encData As Byte() = 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.
Dim keyInfo As CspKeyContainerInfo = rsa.CspKeyContainerInfo
' Display the value of each property.
Console.WriteLine("Accessible property: " + keyInfo.Accessible.ToString())
Console.WriteLine("Exportable property: " + keyInfo.Exportable.ToString())
Console.WriteLine("HardwareDevice property: " + keyInfo.HardwareDevice.ToString())
Console.WriteLine("KeyContainerName property: " + keyInfo.KeyContainerName)
Console.WriteLine("KeyNumber property: " + keyInfo.KeyNumber.ToString())
Console.WriteLine("MachineKeyStore property: " + keyInfo.MachineKeyStore.ToString())
Console.WriteLine("Protected property: " + keyInfo.Protected.ToString())
Console.WriteLine("ProviderName property: " + keyInfo.ProviderName)
Console.WriteLine("ProviderType property: " + keyInfo.ProviderType.ToString())
Console.WriteLine("RandomlyGenerated property: " + keyInfo.RandomlyGenerated.ToString())
Console.WriteLine("Removable property: " + keyInfo.Removable.ToString())
Console.WriteLine("UniqueKeyContainerName property: " + keyInfo.UniqueKeyContainerName)
Catch e As Exception
Console.WriteLine(e.ToString())
Finally
' Clear the key.
rsa.Clear()
End Try
Console.ReadLine()
End Sub
End Module