ECDiffieHellmanCng Clase

Definición

Proporciona una implementación CNG (Cryptography Next Generation) del algoritmo Diffie-Hellman de curva elíptica (ECDH).Provides a Cryptography Next Generation (CNG) implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm. Esta clase se utiliza para realizar operaciones criptográficas.This class is used to perform cryptographic operations.

public ref class ECDiffieHellmanCng sealed : System::Security::Cryptography::ECDiffieHellman
public sealed class ECDiffieHellmanCng : System.Security.Cryptography.ECDiffieHellman
type ECDiffieHellmanCng = class
    inherit ECDiffieHellman
Public NotInheritable Class ECDiffieHellmanCng
Inherits ECDiffieHellman
Herencia

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar la ECDiffieHellmanCng clase para establecer un intercambio de claves y cómo utilizar esa clave para cifrar un mensaje que se puede enviar a través de un canal público y descifrado por el receptor.The following example shows how to use the ECDiffieHellmanCng class to establish a key exchange and how to use that key to encrypt a message that can be sent over a public channel and decrypted by the receiver.

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

class Alice
{
    public static byte[] alicePublicKey;

    public static void Main(string[] args)
    {
        using (ECDiffieHellmanCng alice = new ECDiffieHellmanCng())
        {

            alice.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash;
            alice.HashAlgorithm = CngAlgorithm.Sha256;
            alicePublicKey = alice.PublicKey.ToByteArray();
            Bob bob = new Bob();
            CngKey bobKey = CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob);
            byte[] aliceKey = alice.DeriveKeyMaterial(bobKey);
            byte[] encryptedMessage = null;
            byte[] iv = null;
            Send(aliceKey, "Secret message", out encryptedMessage, out iv);
            bob.Receive(encryptedMessage, iv);
        }
    }

    private static void Send(byte[] key, string secretMessage, out byte[] encryptedMessage, out byte[] iv)
    {
        using (Aes aes = new AesCryptoServiceProvider())
        {
            aes.Key = key;
            iv = aes.IV;

            // Encrypt the message
            using (MemoryStream ciphertext = new MemoryStream())
            using (CryptoStream cs = new CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write))
            {
                byte[] plaintextMessage = Encoding.UTF8.GetBytes(secretMessage);
                cs.Write(plaintextMessage, 0, plaintextMessage.Length);
                cs.Close();
                encryptedMessage = ciphertext.ToArray();
            }
        }
    }
}
public class Bob
{
    public byte[] bobPublicKey;
    private byte[] bobKey;
    public Bob()
    {
        using (ECDiffieHellmanCng bob = new ECDiffieHellmanCng())
        {

            bob.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash;
            bob.HashAlgorithm = CngAlgorithm.Sha256;
            bobPublicKey = bob.PublicKey.ToByteArray();
            bobKey = bob.DeriveKeyMaterial(CngKey.Import(Alice.alicePublicKey, CngKeyBlobFormat.EccPublicBlob));
        }
    }

    public void Receive(byte[] encryptedMessage, byte[] iv)
    {

        using (Aes aes = new AesCryptoServiceProvider())
        {
            aes.Key = bobKey;
            aes.IV = iv;
            // Decrypt the message
            using (MemoryStream plaintext = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(encryptedMessage, 0, encryptedMessage.Length);
                    cs.Close();
                    string message = Encoding.UTF8.GetString(plaintext.ToArray());
                    Console.WriteLine(message);
                }
            }
        }
    }
}
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text




Class Alice
    Public Shared alicePublicKey() As Byte


    Public Shared Sub Main(ByVal args() As String)
        Using alice As New ECDiffieHellmanCng()
            alice.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash
            alice.HashAlgorithm = CngAlgorithm.Sha256
            alicePublicKey = alice.PublicKey.ToByteArray()
            Dim bob As New Bob()
            Dim k As CngKey = CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob)
            Dim aliceKey As Byte() = alice.DeriveKeyMaterial(CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob))
            Dim encryptedMessage As Byte() = Nothing
            Dim iv As Byte() = Nothing
            Send(aliceKey, "Secret message", encryptedMessage, iv)
            bob.Receive(encryptedMessage, iv)
        End Using
    End Sub


    Private Shared Sub Send(ByVal key() As Byte, ByVal secretMessage As String, ByRef encryptedMessage() As Byte, ByRef iv() As Byte)
        Using aes As New AesCryptoServiceProvider()
            aes.Key = key
            iv = aes.IV

            ' Encrypt the message
            Using ciphertext As New MemoryStream()
                Using cs As New CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write)
                    Dim plaintextMessage As Byte() = Encoding.UTF8.GetBytes(secretMessage)
                    cs.Write(plaintextMessage, 0, plaintextMessage.Length)
                    cs.Close()
                    encryptedMessage = ciphertext.ToArray()
                End Using
            End Using
        End Using

    End Sub
End Class

Public Class Bob
    Public bobPublicKey() As Byte
    Private bobKey() As Byte

    Public Sub New()
        Using bob As New ECDiffieHellmanCng()

            bob.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash
            bob.HashAlgorithm = CngAlgorithm.Sha256
            bobPublicKey = bob.PublicKey.ToByteArray()
            bobKey = bob.DeriveKeyMaterial(CngKey.Import(Alice.alicePublicKey, CngKeyBlobFormat.EccPublicBlob))
        End Using

    End Sub


    Public Sub Receive(ByVal encryptedMessage() As Byte, ByVal iv() As Byte)

        Using aes As New AesCryptoServiceProvider()
                aes.Key = bobKey
                aes.IV = iv
                ' Decrypt the message
            Using plaintext As New MemoryStream()
                Using cs As New CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write)
                    cs.Write(encryptedMessage, 0, encryptedMessage.Length)
                    cs.Close()
                    Dim message As String = Encoding.UTF8.GetString(plaintext.ToArray())
                    Console.WriteLine(message)
                End Using
            End Using
        End Using
    End Sub
End Class

Comentarios

La ECDiffieHellmanCng clase permite que dos entidades intercambien el material de clave privada, incluso si se comunican a través de un canal público.The ECDiffieHellmanCng class enables two parties to exchange private key material even if they are communicating through a public channel. Ambas partes pueden calcular el mismo valor secreto, al que se hace referencia como acuerdo secreto en las clases de Diffie-Hellman administradas.Both parties can calculate the same secret value, which is referred to as the secret agreement in the managed Diffie-Hellman classes. A continuación, el acuerdo secreto se puede usar para una variedad de propósitos, incluido como clave simétrica.The secret agreement can then be used for a variety of purposes, including as a symmetric key. Sin embargo, en lugar de exponer directamente el acuerdo confidencial, la ECDiffieHellmanCng clase realiza algún procesamiento posterior en el acuerdo antes de proporcionar el valor.However, instead of exposing the secret agreement directly, the ECDiffieHellmanCng class does some post-processing on the agreement before providing the value. Este procesamiento posterior se conoce como la función de derivación de claves (KdF). puede seleccionar qué KDF desea usar y establecer sus parámetros a través de un conjunto de propiedades en la instancia del objeto Diffie-Hellman.This post processing is referred to as the key derivation function (KDF); you can select which KDF you want to use and set its parameters through a set of properties on the instance of the Diffie-Hellman object.

Función de derivación de clavesKey derivation function PropiedadesProperties
Hash HashAlgorithm : Algoritmo hash que se usa para procesar el acuerdo secreto.HashAlgorithm - The hash algorithm that is used to process the secret agreement.

SecretPrepend : Una matriz de bytes opcional que se antepone al acuerdo secreto antes de aplicarle el algoritmo hash.SecretPrepend - An optional byte array to prepend to the secret agreement before hashing it.

SecretAppend : Una matriz de bytes opcional que se va a anexar al acuerdo secreto antes de aplicarle un algoritmo hash.SecretAppend - An optional byte array to append to the secret agreement before hashing it.
Hmac HashAlgorithm : Algoritmo hash que se usa para procesar el acuerdo secreto.HashAlgorithm - The hash algorithm that is used to process the secret agreement.

SecretPrepend: Una matriz de bytes opcional que se antepone al acuerdo secreto antes de aplicarle el algoritmo hash.SecretPrepend- An optional byte array to prepend to the secret agreement before hashing it.

SecretAppend : Una matriz de bytes opcional que se va a anexar al acuerdo secreto antes de aplicarle un algoritmo hash.SecretAppend - An optional byte array to append to the secret agreement before hashing it.
Tls Label : Etiqueta de derivación de clave.Label - The label for key derivation.

Seed : El inicialización de la derivación de claves.Seed - The seed for key derivation.

El resultado de pasar el acuerdo confidencial a través de la función de derivación de claves es una matriz de bytes que se puede usar como material de clave para la aplicación.The result of passing the secret agreement through the key derivation function is a byte array that may be used as key material for your application. El número de bytes de material de clave generado depende de la función de derivación de claves. por ejemplo, SHA-256 generará 256 bits de material de clave, mientras que SHA-512 generará 512 bits de material de clave.The number of bytes of key material generated is dependent on the key derivation function; for example, SHA-256 will generate 256 bits of key material, whereas SHA-512 will generate 512 bits of key material. El flujo básico de un intercambio de claves ECDH es el siguiente:The basic flow of an ECDH key exchange is as follows:

  1. Alice y Bob crean un par de claves que se usarán para la operación de intercambio de claves Diffie-HellmanAlice and Bob create a key pair to use for the Diffie-Hellman key exchange operation

  2. Alice y Bob configuran KDF con los parámetros que acuerdan.Alice and Bob configure the KDF using parameters the agree on.

  3. Alice envía su clave pública a Bob.Alice sends Bob her public key.

  4. Bob envía a Alice su clave pública.Bob sends Alice his public key.

  5. Alice y Bob usan las claves públicas de los demás para generar el contrato secreto y aplican el KDF al acuerdo secreto para generar el material de clave.Alice and Bob use each other's public keys to generate the secret agreement, and apply the KDF to the secret agreement to generate key material.

Constructores

ECDiffieHellmanCng()

Inicializa una nueva instancia de la clase ECDiffieHellmanCng con un par de claves aleatorio.Initializes a new instance of the ECDiffieHellmanCng class with a random key pair.

ECDiffieHellmanCng(CngKey)

Inicializa una nueva instancia de la clase ECDiffieHellmanCng mediante el objeto CngKey especificado.Initializes a new instance of the ECDiffieHellmanCng class by using the specified CngKey object.

ECDiffieHellmanCng(ECCurve)

Crea una nueva instancia de la clase ECDiffieHellmanCng cuyo par de claves pública-privada se genera sobre la curva especificada.Creates a new instance of the ECDiffieHellmanCng class whose public/private key pair is generated over the specified curve.

ECDiffieHellmanCng(Int32)

Inicializa una nueva instancia de la clase ECDiffieHellmanCng con un par de claves aleatorio usando el tamaño de clave especificado.Initializes a new instance of the ECDiffieHellmanCng class with a random key pair, using the specified key size.

Campos

KeySizeValue

Representa el tamaño, en bits, del módulo de claves que usa el algoritmo asimétrico.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica los tamaños de clave admitidos por el algoritmo asimétrico.Specifies the key sizes that are supported by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)

Propiedades

HashAlgorithm

Obtiene o establece el algoritmo hash que se utiliza al generar el material de clave.Gets or sets the hash algorithm to use when generating key material.

HmacKey

Obtiene o establece la clave del código de autenticación de mensajes basado en hash (HMAC) que se utiliza para derivar el material de clave.Gets or sets the Hash-based Message Authentication Code (HMAC) key to use when deriving key material.

Key

Especifica la CngKey utilizada por el objeto actual para operaciones criptográficas.Specifies the CngKey that is used by the current object for cryptographic operations.

KeyDerivationFunction

Obtiene o establece la función de derivación de claves para la clase ECDiffieHellmanCng.Gets or sets the key derivation function for the ECDiffieHellmanCng class.

KeyExchangeAlgorithm

Obtiene el nombre del algoritmo de intercambio de claves.Gets the name of the key exchange algorithm.

(Heredado de ECDiffieHellman)
KeySize

Obtiene o establece el tamaño, en bits, del módulo de claves que usa el algoritmo asimétrico.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

KeySize

Obtiene o establece el tamaño, en bits, del módulo de claves que usa el algoritmo asimétrico.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)
Label

Obtiene o establece el valor de la etiqueta que se utiliza para la derivación de claves.Gets or sets the label value that is used for key derivation.

LegalKeySizes

Obtiene los tamaños de clave que admite el algoritmo asimétrico.Gets the key sizes that are supported by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)
PublicKey

Obtiene la clave pública que puede utilizar otro objeto ECDiffieHellmanCng para generar un acuerdo confidencial compartido.Gets the public key that can be used by another ECDiffieHellmanCng object to generate a shared secret agreement.

SecretAppend

Obtiene o establece un valor que se anexará al acuerdo confidencial al generar el material de clave.Gets or sets a value that will be appended to the secret agreement when generating key material.

SecretPrepend

Obtiene o establece un valor que se agregará al principio del acuerdo confidencial cuando se deriva el material de clave.Gets or sets a value that will be added to the beginning of the secret agreement when deriving key material.

Seed

Obtiene o establece el valor de inicialización que se utilizará cuando se deriva el material de clave.Gets or sets the seed value that will be used when deriving key material.

SignatureAlgorithm

Obtiene el nombre del algoritmo de firma.Gets the name of the signature algorithm.

(Heredado de ECDiffieHellman)
UseSecretAgreementAsHmacKey

Obtiene un valor que indica si el acuerdo confidencial se utiliza como clave de código de autenticación de mensajes basado en hash (HMAC) para derivar el material de clave.Gets a value that indicates whether the secret agreement is used as a Hash-based Message Authentication Code (HMAC) key to derive key material.

Métodos

Clear()

Libera todos los recursos que utiliza la clase AsymmetricAlgorithm.Releases all resources used by the AsymmetricAlgorithm class.

(Heredado de AsymmetricAlgorithm)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Realiza la derivación de claves mediante un algoritmo hash especificado.Performs key derivation using a specified hash algorithm.

(Heredado de ECDiffieHellman)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

Realiza la derivación de claves mediante un algoritmo hash especificado con datos antepuestos o anexados opcionales.Performs key derivation using a specified hash algorithm with optional prepended or appended data.

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

Cuando se implementa en una clase derivada, realiza la derivación de claves mediante un algoritmo hash especificado con datos antepuestos o anexados opcionales.When implemented in a derived class, performs key derivation using a specified hash algorithm with optional prepended or appended data.

(Heredado de ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[])

Realiza la derivación de claves mediante un algoritmo HMAC (código de autentificación de mensajes en clave-hash).Performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm.

(Heredado de ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])

Realiza la derivación de claves mediante un algoritmo HMAC (código de autentificación de mensajes en clave-hash) con datos antepuestos o anexados opcionales.Performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm with optional prepended or appended data.

DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])

Cuando se implementa en una clase derivada, realiza la derivación de claves mediante un algoritmo HMAC (código de autentificación de mensajes en clave-hash) con datos antepuestos o anexados opcionales.When implemented in a derived class, performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm with optional prepended or appended data.

(Heredado de ECDiffieHellman)
DeriveKeyMaterial(CngKey)

Deriva el material de clave que se genera del acuerdo confidencial entre dos partes, según un objeto CngKey que contiene la clave pública de la segunda parte.Derives the key material that is generated from the secret agreement between two parties, given a CngKey object that contains the second party's public key.

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

Deriva el material de clave que se genera del acuerdo confidencial entre dos partes, según un objeto ECDiffieHellmanPublicKey que contiene la clave pública de la segunda parte.Derives the key material that is generated from the secret agreement between two parties, given an ECDiffieHellmanPublicKey object that contains the second party's public key.

DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[])

Realiza la derivación de claves mediante TLS (Seguridad de la capa de transporte) 1.1 PRF (Función pseudoaleatoria).Performs key derivation using the TLS (Transport Layer Security) 1.1 PRF (Pseudo-Random Function).

DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[])

Cuando se implementa en una clase derivada, realiza la derivación de claves mediante TLS (Seguridad de la capa de transporte) 1.1 PRF (Función pseudoaleatoria).When implemented in a derived class, performs key derivation using the TLS (Transport Layer Security) 1.1 PRF (Pseudo-Random Function).

(Heredado de ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

Obtiene un identificador para el acuerdo confidencial generado entre dos partes, según un objeto CngKey que contiene la clave pública de la segunda parte.Gets a handle to the secret agreement generated between two parties, given a CngKey object that contains the second party's public key.

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

Obtiene un identificador para el acuerdo confidencial generado entre dos partes, según un objeto ECDiffieHellmanPublicKey que contiene la clave pública de la segunda parte.Gets a handle to the secret agreement generated between two parties, given an ECDiffieHellmanPublicKey object that contains the second party's public key.

Dispose()

Libera todos los recursos usados por la instancia actual de la clase AsymmetricAlgorithm.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(Heredado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera los recursos no administrados utilizados por la clase AsymmetricAlgorithm y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(Heredado de AsymmetricAlgorithm)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
ExportECPrivateKey()

Exporta la clave actual en el formato ECPrivateKey.Exports the current key in the ECPrivateKey format.

(Heredado de ECDiffieHellman)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en bytes.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

(Heredado de AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en caracteres.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

(Heredado de AsymmetricAlgorithm)
ExportExplicitParameters(Boolean)

Exporta la clave y parámetros de curva explícitos que usa el objeto ECCurve en un objeto ECParameters.Exports the key and explicit curve parameters used by the ECCurve object into an ECParameters object.

ExportExplicitParameters(Boolean)

Si se reemplaza en una clase derivada, exporta la información de clave pública o la información de clave pública y privada con el formulario de curva explícito desde una clave ECDiffieHellman de trabajo a una estructura ECParameters de modo que pueda pasarse al método ImportParameters(ECParameters).When overridden in a derived class, exports either the public or the public and private key information using the explicit curve form from a working ECDiffieHellman key to an ECParameters structure so that it can be passed to the ImportParameters(ECParameters) method.

(Heredado de ECDiffieHellman)
ExportParameters(Boolean)

Exporta la clave que usa el objeto ECCurve en un objeto ECParameters.Exports the key used by the ECCurve object into an ECParameters object.

ExportParameters(Boolean)

Si se reemplaza en una clase derivada, exporta la información de clave pública o la información de clave pública y privada desde una clave ECDiffieHellman de trabajo a una estructura ECParameters de modo que pueda pasarse al método ImportParameters(ECParameters).When overridden in a derived class, exports either the public or the public and private key information from a working ECDiffieHellman key to an ECParameters structure so that it can be passed to the ImportParameters(ECParameters) method.

(Heredado de ECDiffieHellman)
ExportPkcs8PrivateKey()

Exporta la clave actual en el formato PrivateKeyInfo de PKCS#8.Exports the current key in the PKCS#8 PrivateKeyInfo format.

(Heredado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta la parte de la clave pública de la clave actual en el formato SubjectPublicKeyInfo de X.509.Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

(Heredado de AsymmetricAlgorithm)
FromXmlString(String)

Este método no se implementa.This method is not implemented.

FromXmlString(String)

Se produce este método en todos los casos.This method throws in all cases.

(Heredado de ECDiffieHellman)
FromXmlString(String, ECKeyXmlFormat)

Deserializa la información de clave de una cadena XML mediante el formato especificado.Deserializes the key information from an XML string by using the specified format.

GenerateKey(ECCurve)

Genera un nuevo par de claves pública-privada efímeras para la curva especificada.Generates a new ephemeral public/private key pair for the specified curve.

GenerateKey(ECCurve)

Si se reemplaza en una clase derivada, genera un nuevo par de claves pública-privada efímeras para la curva especificada.When overridden in a derived class, generates a new ephemeral public/private key pair for the specified curve.

(Heredado de ECDiffieHellman)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
ImportECPrivateKey(ReadOnlySpan<Byte>, Int32)

Importa el par de claves pública/privada desde una estructura ECPrivateKey, reemplazando las claves de este objeto.Imports the public/private keypair from an ECPrivateKey structure, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Importa el par de claves pública/privada desde una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en bytes, reemplazando las claves de este objeto.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a byte-based password, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importa el par de claves pública/privada desde una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en caracteres, reemplazando las claves de este objeto.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a char-based password, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Importa una clave privada con codificación PEM de RFC 7468 cifrada, reemplazando las claves para este objeto.Imports an encrypted RFC 7468 PEM-encoded private key, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Importa una clave privada con codificación PEM de RFC 7468 cifrada, reemplazando las claves para este objeto.Imports an encrypted RFC 7468 PEM-encoded private key, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportFromPem(ReadOnlySpan<Char>)

Importa una clave con codificación PEM de RFC 7468 y reemplaza las claves para este objeto.Imports an RFC 7468 PEM-encoded key, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportParameters(ECParameters)

Importa los parámetros especificados para un objeto ECCurve como una clave en la instancia actual.Imports the specified parameters for an ECCurve object as a key into the current instance.

ImportParameters(ECParameters)

Si se reemplaza en una clase derivada, importa los parámetros especificados para un objeto ECCurve como clave efímera en el objeto ECDiffieHellman actual.When overridden in a derived class, imports the specified parameters for an ECCurve as an ephemeral key into the current ECDiffieHellman object.

(Heredado de ECDiffieHellman)
ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa el par de claves pública/privada desde una estructura PrivateKeyInfo de PKCS#8 después del descifrado, reemplazando las claves de este objeto.Imports the public/private keypair from a PKCS#8 PrivateKeyInfo structure after decryption, replacing the keys for this object.

(Heredado de ECDiffieHellman)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importa la clave pública desde una estructura SubjectPublicKeyInfo de X.509 después del descifrado, reemplazando las claves de este objeto.Imports the public key from an X.509 SubjectPublicKeyInfo structure after decryption, replacing the keys for this object.

(Heredado de ECDiffieHellman)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
ToXmlString(Boolean)

Este método no se implementa.This method is not implemented.

ToXmlString(Boolean)

Se produce este método en todos los casos.This method throws in all cases.

(Heredado de ECDiffieHellman)
ToXmlString(ECKeyXmlFormat)

Serializa la información de clave en una cadena XML mediante el formato especificado.Serializes the key information to an XML string by using the specified format.

TryExportECPrivateKey(Span<Byte>, Int32)

Intenta exportar la clave actual en el formato ECPrivateKey en un búfer proporcionado.Attempts to export the current key in the ECPrivateKey format into a provided buffer.

(Heredado de ECDiffieHellman)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 a un búfer proporcionado, utilizando una contraseña basada en bytes.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a byte-based password.

(Heredado de ECDiffieHellman)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 a un búfer proporcionado, utilizando una contraseña basada en caracteres.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a char-based password.

(Heredado de ECDiffieHellman)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Intenta exportar la clave actual en el formato PrivateKeyInfo de PKCS#8 a un búfer proporcionado.Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

(Heredado de ECDiffieHellman)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Intenta exportar la clave actual en el formato SubjectPublicKeyInfo de X.509 a un búfer proporcionado.Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

(Heredado de ECDiffieHellman)

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código.

Para obtener una descripción de este miembro, vea Dispose().For a description of this member, see Dispose().

(Heredado de AsymmetricAlgorithm)

Se aplica a