Leer en inglés

Compartir a través de


AsymmetricKeyExchangeDeformatter Clase

Definición

Representa la clase base desde la que se derivan todos los desformateadores de intercambio de claves asimétricas.

C#
public abstract class AsymmetricKeyExchangeDeformatter
C#
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class AsymmetricKeyExchangeDeformatter
C#
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class AsymmetricKeyExchangeDeformatter
Herencia
AsymmetricKeyExchangeDeformatter
Derivado
Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo extender la AsymmetricKeyExchangeDeformatter clase .

C#
using System;
using System.Security.Cryptography;

namespace Contoso
{
    public class ContosoDeformatter : AsymmetricKeyExchangeDeformatter
    {
        private RSA _rsaKey;

        // Default constructor.
        public ContosoDeformatter() { }

        // Constructor with the public key to use for encryption.
        public ContosoDeformatter(AsymmetricAlgorithm key)
        {
            SetKey(key);
        }

        // Set the public key for encyption operations.
        public override void SetKey(AsymmetricAlgorithm key)
        {
            if (key != null)
            {
                _rsaKey = (RSA)key;
            }
            else
            {
                throw new ArgumentNullException(nameof(key));
            }
        }

        // Disallow access to the parameters of the formatter.
        public override string Parameters
        {
            get { return null; }
            set {; }
        }

        // Create the encrypted key exchange data from the specified input
        // data. This method uses the RSA class only. To
        // support additional providers or provide custom decryption logic,
        // add logic to this member.
        public override byte[] DecryptKeyExchange(byte[] rgbData)
        {
            byte[] decryptedBytes = null;

            if (_rsaKey != null)
            {
                if (_rsaKey is RSA rsa)
                {
                    decryptedBytes = rsa.Decrypt(rgbData, RSAEncryptionPadding.OaepSHA1);
                }
                // Add custom decryption logic here.
            }
            else
            {
                throw new CryptographicUnexpectedOperationException(
                    "Cryptography_MissingKey");
            }

            return decryptedBytes;
        }
    }
}
//
// This code example produces the following output:
//
// Data to encrypt : Sample Contoso encryption application.
// Encrypted data: Khasdf-3248&$%23
// Data decrypted : Sample Contoso encryption application.
// 
// This sample completed successfully; press Enter to exit.

Comentarios

Descifra los datos de intercambio de claves asimétricas.

El intercambio de claves permite a un remitente crear información secreta, como datos aleatorios que se pueden usar como clave en un algoritmo de cifrado simétrico, y usar el cifrado para enviarlo al destinatario previsto.

Precaución

Se recomienda encarecidamente que no intente crear su propio método de intercambio de claves a partir de la funcionalidad básica proporcionada, ya que muchos detalles de la operación deben realizarse cuidadosamente para que el intercambio de claves sea correcto.

Constructores

AsymmetricKeyExchangeDeformatter()

Inicializa una nueva instancia de la clase AsymmetricKeyExchangeDeformatter.

Propiedades

Parameters

Si se reemplaza en una clase derivada, obtiene o establece los parámetros del intercambio de claves asimétricas.

Métodos

DecryptKeyExchange(Byte[])

Si se reemplaza en una clase derivada, extrae información secreta de los datos cifrados de intercambio de claves.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
SetKey(AsymmetricAlgorithm)

Si se reemplaza en una clase derivada, establece la clave privada que se usará para descifrar la información secreta.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 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