CspKeyContainerInfo.KeyNumber Proprietà

Definizione

Ottiene un valore che descrive se è stata creata una chiave asimmetrica come chiave di firma o chiave di scambio.

public System.Security.Cryptography.KeyNumber KeyNumber { get; }

Valore della proprietà

Uno dei valori di KeyNumber che descrive se è stata creata una chiave asimmetrica come chiave di firma o chiave di scambio.

Esempio

Nell'esempio di codice seguente viene creato un contenitore di chiavi e vengono recuperate informazioni su tale contenitore.

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();
        }
    }
}

Commenti

Il valore della KeyNumber proprietà è derivato dal KeyNumber campo dell'oggetto CspParameters utilizzato per inizializzare l'oggetto CspKeyContainerInfo .

Una chiave di scambio è una coppia di chiavi asimmetriche usata per crittografare le chiavi di sessione in modo che possano essere archiviate e scambiate in modo sicuro con altri utenti. Il Exchange valore specifica una chiave di scambio. Questo valore corrisponde al AT_KEYEXCHANGE valore usato nell'API di crittografia Microsoft (CAPI) non gestita.

Una chiave di firma è una coppia di chiavi asimmetrica usata per l'autenticazione (con firma digitale) di messaggi o file. Il Signature valore specifica una chiave di firma. Questo valore corrisponde al AT_SIGNATURE valore utilizzato in CAPI.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1