ECDiffieHellmanCng Clase

Definición

Proporciona una implementación cryptography Next Generation (CNG) del algoritmo de curva elíptica Diffie-Hellman (ECDH). Esta clase se usa para realizar operaciones criptográficas.

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
Herencia

Ejemplos

En el ejemplo siguiente se muestra cómo usar la ECDiffieHellmanCng clase para establecer un intercambio de claves y cómo usar esa clave para cifrar un mensaje que se puede enviar a través de un canal público y descifrarlo el receptor.

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 a dos partes intercambiar material de clave privada incluso si se comunican a través de un canal público. Ambas partes pueden calcular el mismo valor secreto, que se conoce como acuerdo secreto en las clases de Diffie-Hellman administradas. Después, el acuerdo secreto se puede usar para diversos propósitos, incluido como clave simétrica. Sin embargo, en lugar de exponer directamente el acuerdo secreto, la ECDiffieHellmanCng clase realiza algún procesamiento posterior al contrato antes de proporcionar el valor. Este procesamiento posterior se conoce como 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.

Función de derivación de claves Properties
Hash HashAlgorithm : algoritmo hash que se usa para procesar el contrato secreto.

SecretPrepend : matriz de bytes opcional que se va a anteponer al contrato secreto antes de aplicar un hash.

SecretAppend : matriz de bytes opcional que se va a anexar al contrato secreto antes de aplicar un hash.
Hmac HashAlgorithm : algoritmo hash que se usa para procesar el contrato secreto.

SecretPrepend: matriz de bytes opcional que se va a anteponer al contrato secreto antes de aplicar un hash.

SecretAppend : matriz de bytes opcional que se va a anexar al contrato secreto antes de aplicar un hash.
Tls Label : etiqueta para la derivación de claves.

Seed : valor de inicialización para la derivación de claves.

El resultado de pasar el acuerdo secreto a través de la función de derivación de claves es una matriz de bytes que se puede usar como material clave para la aplicación. El número de bytes de material clave generado depende de la función de derivación de claves; por ejemplo, SHA-256 generará 256 bits de material clave, mientras que SHA-512 generará 512 bits de material clave. El flujo básico de un intercambio de claves ECDH es el siguiente:

  1. Alice y Bob crean un par de claves que se va a usar para la operación de intercambio de claves de Diffie-Hellman

  2. Alice y Bob configuran la KDF mediante parámetros de acuerdo.

  3. Alice envía a Bob su clave pública.

  4. Bob envía a Alice su clave pública.

  5. Alice y Bob usan las claves públicas de los demás para generar el acuerdo secreto y aplicar la KDF al acuerdo secreto para generar material de clave.

Constructores

Nombre Description
ECDiffieHellmanCng()

Inicializa una nueva instancia de la ECDiffieHellmanCng clase con un par de claves aleatorio.

ECDiffieHellmanCng(CngKey)

Inicializa una nueva instancia de la ECDiffieHellmanCng clase mediante el objeto especificado CngKey .

ECDiffieHellmanCng(ECCurve)

Crea una nueva instancia de la ECDiffieHellmanCng clase cuyo par de claves pública y privada se genera a través de la curva especificada.

ECDiffieHellmanCng(Int32)

Inicializa una nueva instancia de la ECDiffieHellmanCng clase con un par de claves aleatorio, utilizando el tamaño de clave especificado.

Campos

Nombre Description
KeySizeValue

Representa el tamaño, en bits, del módulo de clave utilizado por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica los tamaños de clave admitidos por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)

Propiedades

Nombre Description
HashAlgorithm

Obtiene o establece el algoritmo hash que se va a usar al generar material de clave.

HmacKey

Obtiene o establece la clave de código de autenticación de mensajes (HMAC) basada en hash que se va a usar al derivar material de clave.

Key

Especifica el CngKey que usa el objeto actual para las operaciones criptográficas.

KeyDerivationFunction

Obtiene o establece la función de derivación de claves para la ECDiffieHellmanCng clase .

KeyExchangeAlgorithm

Obtiene el nombre del algoritmo de intercambio de claves.

(Heredado de ECDiffieHellman)
KeySize

Obtiene o establece el tamaño, en bits, del módulo de clave utilizado por el algoritmo asimétrico.

KeySize

Obtiene o establece el tamaño, en bits, del módulo de clave utilizado por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)
Label

Obtiene o establece el valor de etiqueta que se usa para la derivación de claves.

LegalKeySizes

Obtiene los tamaños de clave admitidos por el algoritmo asimétrico.

LegalKeySizes

Obtiene los tamaños de clave admitidos por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)
PublicKey

Obtiene la clave pública que otro ECDiffieHellmanCng objeto puede usar para generar un contrato secreto compartido.

SecretAppend

Obtiene o establece un valor que se anexará al acuerdo secreto al generar material de clave.

SecretPrepend

Obtiene o establece un valor que se agregará al principio del acuerdo secreto al derivar material de clave.

Seed

Obtiene o establece el valor de inicialización que se usará al derivar material de clave.

SignatureAlgorithm

Obtiene el nombre del algoritmo de firma.

(Heredado de ECDiffieHellman)
UseSecretAgreementAsHmacKey

Obtiene un valor que indica si el contrato secreto se usa como una clave de código de autenticación de mensajes (HMAC) basada en hash para derivar material de clave.

Métodos

Nombre Description
Clear()

Libera todos los recursos usados por la AsymmetricAlgorithm clase .

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

Realiza la derivación de claves mediante un algoritmo hash especificado con datos antepuestos o anexados opcionales.

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Realiza la derivación de claves mediante un algoritmo hash especificado.

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

Realiza la derivación de claves mediante un algoritmo HMAC (código de autenticación de mensajes basado en hash) especificado con datos antepuestos o anexados opcionales.

DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[])

Realiza la derivación de claves mediante un algoritmo HMAC (código de autenticación de mensajes basado en hash) especificado.

(Heredado de ECDiffieHellman)
DeriveKeyMaterial(CngKey)

Deriva el material clave que se genera a partir del acuerdo secreto entre dos partes, dado un CngKey objeto que contiene la clave pública de la segunda parte.

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

Deriva el material clave que se genera a partir del acuerdo secreto entre dos partes, dado un ECDiffieHellmanPublicKey objeto que contiene la clave pública de la segunda parte.

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

Realiza la derivación de claves mediante el PRF tls (Seguridad de la capa de transporte) 1.1 (funciónPseudo-Random).

DeriveRawSecretAgreement(ECDiffieHellmanPublicKey)

Derivar material de clave sin procesar.

(Heredado de ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

Obtiene un identificador del acuerdo secreto generado entre dos partes, dado un CngKey objeto que contiene la clave pública de la segunda parte.

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

Obtiene un identificador del acuerdo secreto generado entre dos partes, dado un ECDiffieHellmanPublicKey objeto que contiene la clave pública de la segunda parte.

Dispose()

Libera todos los recursos usados por la instancia actual de la AsymmetricAlgorithm clase .

(Heredado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera los recursos no administrados usados por la AsymmetricAlgorithm clase y, opcionalmente, libera los recursos administrados.

(Heredado de AsymmetricAlgorithm)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
ExportECPrivateKey()

Exporta la clave actual en formato ECPrivateKey.

(Heredado de ECDiffieHellman)
ExportECPrivateKeyPem()

Exporta la clave actual en el formato ECPrivateKey, codificado en PEM.

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

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en bytes.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en bytes.

(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.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en caracteres.

(Heredado de AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en bytes, PEM codificada.

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

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en caracteres, codificada en PEM.

(Heredado de AsymmetricAlgorithm)
ExportExplicitParameters(Boolean)

Exporta la clave y los parámetros de curva explícitos utilizados por el ECCurve objeto en un ECParameters objeto .

ExportParameters(Boolean)

Exporta la clave usada por el ECCurve objeto en un ECParameters objeto .

ExportPkcs8PrivateKey()

Exporta la clave actual en el formato PrivateKeyInfo PKCS#8.

(Heredado de AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

Exporta la clave actual en el formato PrivateKeyInfo PKCS#8, codificado en PEM.

(Heredado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta la parte de clave pública de la clave actual en el formato SubjectPublicKeyInfo X.509.

(Heredado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

Exporta la parte de clave pública de la clave actual en el formato SubjectPublicKeyInfo X.509, codificado en PEM.

(Heredado de AsymmetricAlgorithm)
FromXmlString(String, ECKeyXmlFormat)
Obsoletos.

Deserializa la información de clave de una cadena XML mediante el formato especificado.

FromXmlString(String)

Este método no se implementa.

FromXmlString(String)

Este método produce en todos los casos.

(Heredado de ECDiffieHellman)
GenerateKey(ECCurve)

Genera un nuevo par de claves pública y privada efímera para la curva especificada.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

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

Importa el keypair público/privado de una estructura ECPrivateKey, reemplazando las claves de este objeto.

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

Importa el keypair público/privado desde una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en bytes, reemplazando las claves de este objeto.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Importa el keypair público/privado desde una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en bytes, reemplazando las claves de este objeto.

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

Importa el keypair público/privado de una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en caracteres, reemplazando las claves de este objeto.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importa el keypair público/privado de una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en caracteres, reemplazando las claves de este objeto.

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

Importa una clave privada codificada por RFC 7468 PEM cifrada, reemplazando las claves de este objeto.

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

Importa una clave privada codificada por RFC 7468 PEM cifrada, reemplazando las claves de este objeto.

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

Importa una clave codificada en PEM RFC 7468, reemplazando las claves de este objeto.

(Heredado de ECDiffieHellman)
ImportParameters(ECParameters)

Importa los parámetros especificados para un ECCurve objeto como clave en la instancia actual.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa el keypair público/privado de una estructura PrivateKeyInfo PKCS#8 después del descifrado, reemplazando las claves de este objeto.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa el keypair público/privado de una estructura PrivateKeyInfo PKCS#8 después del descifrado, reemplazando las claves de este objeto.

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

Importa la clave pública de una estructura SubjectPublicKeyInfo X.509 después del descifrado, reemplazando las claves de este objeto.

(Heredado de ECDiffieHellman)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
ToXmlString(Boolean)

Este método no se implementa.

ToXmlString(Boolean)

Este método produce en todos los casos.

(Heredado de ECDiffieHellman)
ToXmlString(ECKeyXmlFormat)
Obsoletos.

Serializa la información de clave en una cadena XML mediante el formato especificado.

TryExportECPrivateKey(Span<Byte>, Int32)

Intenta exportar la clave actual en el ECPrivateKey formato a un búfer proporcionado.

(Heredado de ECDiffieHellman)
TryExportECPrivateKeyPem(Span<Char>, Int32)

Intenta exportar la clave actual en el formato ECPrivateKey codificado en PEM en un búfer proporcionado.

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

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 en un búfer proporcionado mediante una contraseña basada en bytes.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 en un búfer proporcionado mediante una contraseña basada en bytes.

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

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 en un búfer proporcionado mediante una contraseña basada en caracteres.

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

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 en un búfer proporcionado mediante una contraseña basada en caracteres.

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

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en bytes, codificada en PEM.

(Heredado de AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en caracteres, codificada en PEM.

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

Intenta exportar la clave actual en el formato PrivateKeyInfo PKCS#8 a un búfer proporcionado.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Intenta exportar la clave actual en el formato PrivateKeyInfo PKCS#8 a un búfer proporcionado.

(Heredado de ECDiffieHellman)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

Intenta exportar la clave actual en el formato PKCS#8 PrivateKeyInfo codificado en PEM en un búfer proporcionado.

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

Intenta exportar la clave actual en el formato SubjectPublicKeyInfo X.509 en un búfer proporcionado.

(Heredado de ECDiffieHellman)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

Intenta exportar la clave actual en el formato X.509 SubjectPublicKeyInfo codificado en PEM en un búfer proporcionado.

(Heredado de AsymmetricAlgorithm)

Implementaciones de interfaz explícitas

Nombre Description
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().

(Heredado de AsymmetricAlgorithm)

Se aplica a