Compartilhar via


ECDiffieHellmanCng Classe

Definição

Fornece uma implementação CNG (Cryptography Next Generation) do algoritmo ECDH (Diffie-Hellman de curva elíptica). Essa classe é usada para executar operações de criptografia.

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
Herança
Herança

Exemplos

O exemplo a seguir mostra como usar a ECDiffieHellmanCng classe para estabelecer uma troca de chaves e como usar essa chave para criptografar uma mensagem que pode ser enviada por um canal público e descriptografada pelo 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

Comentários

A ECDiffieHellmanCng classe permite que duas partes troquem material de chave privada mesmo que estejam se comunicando por meio de um canal público. Ambas as partes podem calcular o mesmo valor secreto, que é chamado de contrato secreto nas classes Diffie-Hellman gerenciadas. O contrato secreto pode então ser usado para uma variedade de finalidades, incluindo como uma chave simétrica. No entanto, em vez de expor o contrato secreto diretamente, a ECDiffieHellmanCng classe faz alguns pós-processamento no contrato antes de fornecer o valor. Esse pós-processamento é chamado de função de derivação de chave (KDF); você pode selecionar qual KDF deseja usar e definir seus parâmetros por meio de um conjunto de propriedades na instância do objeto Diffie-Hellman.

Função de derivação de chave Propriedades
Hash HashAlgorithm - O algoritmo de hash usado para processar o contrato secreto.

SecretPrepend - Uma matriz de bytes opcional para anexar ao contrato secreto antes de hash.

SecretAppend - Uma matriz de bytes opcional para acrescentar ao contrato secreto antes de hash.
Hmac HashAlgorithm - O algoritmo de hash usado para processar o contrato secreto.

SecretPrepend- Uma matriz de bytes opcional para anexar ao contrato secreto antes de hash.

SecretAppend - Uma matriz de bytes opcional para acrescentar ao contrato secreto antes de hash.
Tls Label - O rótulo para derivação de chave.

Seed - A semente para derivação de chave.

O resultado da passagem do contrato secreto por meio da função de derivação de chave é uma matriz de bytes que pode ser usada como material de chave para seu aplicativo. O número de bytes de material de chave gerado depende da função de derivação de chave; por exemplo, SHA-256 gerará 256 bits de material de chave, enquanto SHA-512 gerará 512 bits de material de chave. O fluxo básico de uma troca de chaves ECDH é o seguinte:

  1. Alice e Bob criam um par de chaves a ser usado para a operação de troca de chaves Diffie-Hellman

  2. Alice e Bob configuram o KDF usando parâmetros que o concorda.

  3. Alice envia a chave pública ao Bob.

  4. Bob envia a alice sua chave pública.

  5. Alice e Bob usam as chaves públicas umas das outras para gerar o contrato secreto e aplicar o KDF ao contrato secreto para gerar material de chave.

Construtores

ECDiffieHellmanCng()

Inicializa uma nova instância da classe ECDiffieHellmanCng com um par de chaves aleatório.

ECDiffieHellmanCng(CngKey)

Inicializa uma nova instância da classe ECDiffieHellmanCng usando o objeto CngKey especificado.

ECDiffieHellmanCng(ECCurve)

Cria uma nova instância da classe ECDiffieHellmanCng cujo par de chaves pública/privada é gerado ao longo da curva especificada.

ECDiffieHellmanCng(Int32)

Inicializa uma nova instância da classe ECDiffieHellmanCng com um par de chaves aleatório, usando o tamanho da chave especificado.

Campos

KeySizeValue

Representa o tamanho, em bits, do módulo chave usado pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica os tamanhos de chave que são compatíveis com o algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)

Propriedades

HashAlgorithm

Obtém ou define o algoritmo de hash a ser usado ao gerar o material de chave.

HmacKey

Obtém ou define a chave de HMAC (Hash-based Message Authentication Code) a ser usada ao derivar o material de chave.

Key

Especifica o CngKey que é usado pelo objeto atual para operações criptográficas.

KeyDerivationFunction

Obtém ou define a função de derivação de chaves para a classe ECDiffieHellmanCng.

KeyExchangeAlgorithm

Obtém o nome do algoritmo de troca de chaves.

(Herdado de ECDiffieHellman)
KeySize

Obtém ou define o tamanho, em bits, do módulo chave usado pelo algoritmo assimétrico.

KeySize

Obtém ou define o tamanho, em bits, do módulo chave usado pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
Label

Obtém ou define o valor de rótulo que é usado para derivação de chave.

LegalKeySizes

Obtém os tamanhos de chave que têm suporte pelo algoritmo assimétrico.

LegalKeySizes

Obtém os tamanhos de chave que têm suporte pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
PublicKey

Obtém a chave pública que pode ser usada por outro objeto ECDiffieHellmanCng para gerar um contrato de segredo compartilhado.

SecretAppend

Obtém ou define um valor que será acrescentado ao acordo secreto ao gerar o material de chave.

SecretPrepend

Obtém ou define um valor que será adicionado ao início do acordo secreto ao derivar o material de chave.

Seed

Obtém ou define o valor de semente que será usado ao derivar o material de chave.

SignatureAlgorithm

Obtém o nome do algoritmo de assinatura.

(Herdado de ECDiffieHellman)
UseSecretAgreementAsHmacKey

Obtém um valor que indica se o acordo secreto é usado como uma chave HMAC (Hash-based Message Authentication Code) para derivar o material de chave.

Métodos

Clear()

Libera todos os recursos usados pela classe AsymmetricAlgorithm.

(Herdado de AsymmetricAlgorithm)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Executa a derivação de chave usando um algoritmo de hash especificado.

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

Executa a derivação de chave usando um algoritmo de hash especificado com os dados opcionais anexados ou acrescentados.

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

Quando implementado em uma classe derivada, executa a derivação de chave usando um algoritmo de hash especificado com os dados opcionais anexados ou acrescentados.

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

Executa a derivação de chave usando um algoritmo HMAC (Message Authentication Code baseado em hash) especificado.

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

Executa a derivação de chave usando um algoritmo HMAC (Message Authentication Code baseado em hash) especificado com os dados opcionais acrescentados ou anexados.

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

Quando implementado em uma classe derivada, executa a derivação de chave usando um algoritmo HMAC (Message Authentication Code baseado em hash) especificado com os dados opcionais acrescentados ou anexados.

(Herdado de ECDiffieHellman)
DeriveKeyMaterial(CngKey)

Deriva o material da chave que é gerado com base no acordo secreto entre duas partes, dado um objeto CngKey que contém a chave pública do segundo participante.

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

Deriva o material da chave que é gerado com base no acordo secreto entre duas partes, dado um objeto ECDiffieHellmanPublicKey que contém a chave pública do segundo participante.

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

Executa a derivação de chave usando a PRF (função pseudoaleatória) do protocolo TLS 1.1.

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

Quando implementada em uma classe derivada, executa a derivação de chave usando a PRF (função pseudoaleatória) do protocolo TLS 1.1.

(Herdado de ECDiffieHellman)
DeriveRawSecretAgreement(ECDiffieHellmanPublicKey)

Derivar material de chave bruta.

(Herdado de ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

Obtém um identificador para o acordo secreto gerado entre duas partes, dado um objeto CngKey que contém a chave pública do segundo participante.

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

Obtém um identificador para o acordo secreto gerado entre duas partes, dado um objeto ECDiffieHellmanPublicKey que contém a chave pública do segundo participante.

Dispose()

Libera todos os recursos usados pela instância atual da classe AsymmetricAlgorithm.

(Herdado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera os recursos não gerenciados usados pela classe AsymmetricAlgorithm e, opcionalmente, libera os recursos gerenciados.

(Herdado de AsymmetricAlgorithm)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ExportECPrivateKey()

Exporta a chave atual no formato ECPrivateKey.

(Herdado de ECDiffieHellman)
ExportECPrivateKeyPem()

Exporta a chave atual no formato ECPrivateKey, codificado em PEM.

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

Exporta a chave atual no formato EncryptedPrivateKeyInfo do PKCS nº 8 com uma senha baseada em bytes.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Exporta a chave atual no formato EncryptedPrivateKeyInfo do PKCS nº 8 com uma senha baseada em bytes.

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

Exporta a chave atual no formato EncryptedPrivateKeyInfo do PKCS nº 8 com uma senha baseada em caracteres.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Exporta a chave atual no formato EncryptedPrivateKeyInfo do PKCS nº 8 com uma senha baseada em caracteres.

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

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma senha baseada em bytes, codificada em PEM.

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

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma senha baseada em caracteres, codificada em PEM.

(Herdado de AsymmetricAlgorithm)
ExportExplicitParameters(Boolean)

Exporta os parâmetros de chave e curva explícita usados pelo objeto ECCurve em um objeto ECParameters.

ExportExplicitParameters(Boolean)

Quando substituído em uma classe derivada, exporta as informações de chave pública ou chaves públicas e privadas usando o formulário de curva explícita de uma chave ECDiffieHellman de trabalho para uma estrutura ECParameters para que ela possa ser passada para o método ImportParameters(ECParameters).

(Herdado de ECDiffieHellman)
ExportParameters(Boolean)

Exporta a chave usada pelo objeto ECCurve em um objeto ECParameters.

ExportParameters(Boolean)

Quando substituído em uma classe derivada, exporta as informações de chave pública ou chaves públicas e privadas de uma chave ECDiffieHellman de trabalho em uma estrutura ECParameters, por isso pode ser passado para o método ImportParameters(ECParameters).

(Herdado de ECDiffieHellman)
ExportPkcs8PrivateKey()

Exporta a chave atual no formato PrivateKeyInfo do PKCS nº 8.

(Herdado de AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

Exporta a chave atual no formato PKCS#8 PrivateKeyInfo, codificado em PEM.

(Herdado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta a parte pública da chave atual no formato SubjectPublicKeyInfo X.509.

(Herdado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

Exporta a parte de chave pública da chave atual no formato SubjectPublicKeyInfo X.509, codificado em PEM.

(Herdado de AsymmetricAlgorithm)
FromXmlString(String)

Este método não está implementado.

FromXmlString(String)

Esse método é gerado em todos os casos.

(Herdado de ECDiffieHellman)
FromXmlString(String, ECKeyXmlFormat)
Obsoleto.

Desserializa as informações da chave de uma cadeia de caracteres XML usando o formato especificado.

GenerateKey(ECCurve)

Gera um novo par de chaves pública/privada efêmero para a curva especificada.

GenerateKey(ECCurve)

Quando substituído em uma classe derivada, gera um novo par de chaves pública/privada efêmero para a curva especificada.

(Herdado de ECDiffieHellman)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

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

Importa o par de chaves pública/privada de uma estrutura de ECPrivateKey, substituindo as chaves desse objeto.

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

Importa o par de chaves pública/privada de uma estrutura de EncryptedPrivateKeyInfo do PKCS nº 8 após descriptografar com uma senha baseada em bytes, substituindo as chaves desse objeto.

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

Importa o par de chaves pública/privada de uma estrutura de EncryptedPrivateKeyInfo do PKCS nº 8 após descriptografar com uma senha baseada em bytes, substituindo as chaves desse objeto.

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

Importa o par de chaves pública/privada de uma estrutura de EncryptedPrivateKeyInfo do PKCS nº 8 após descriptografar com uma senha baseada em caracteres, substituindo as chaves desse objeto.

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

Importa o par de chaves pública/privada de uma estrutura de EncryptedPrivateKeyInfo do PKCS nº 8 após descriptografar com uma senha baseada em caracteres, substituindo as chaves desse objeto.

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

Importa uma chave privada criptografada no formato PEM conforme RFC 7468, substituindo as chaves do objeto.

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

Importa uma chave privada criptografada no formato PEM conforme RFC 7468, substituindo as chaves do objeto.

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

Importa uma chave codificada no formato PEM do RFC 7468, substituindo as chaves do objeto.

(Herdado de ECDiffieHellman)
ImportParameters(ECParameters)

Importa os parâmetros especificados para um objeto ECCurve como uma chave para a instância atual.

ImportParameters(ECParameters)

Quando substituído em uma classe derivada, importa os parâmetros especificados para um ECCurve como uma chave efêmera para o objeto ECDiffieHellman atual.

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

Importa o par de chaves pública/privada de uma estrutura de PrivateKeyInfo do PKCS nº 8 após a descriptografia, substituindo as chaves desse objeto.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa o par de chaves pública/privada de uma estrutura de PrivateKeyInfo do PKCS nº 8 após a descriptografia, substituindo as chaves desse objeto.

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

Importa a chave pública de uma estrutura de SubjectPublicKeyInfo X.509 após a descriptografia, substituindo as chaves desse objeto.

(Herdado de ECDiffieHellman)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
ToXmlString(Boolean)

Este método não está implementado.

ToXmlString(Boolean)

Esse método é gerado em todos os casos.

(Herdado de ECDiffieHellman)
ToXmlString(ECKeyXmlFormat)
Obsoleto.

Serializa as informações de chave para uma cadeia de caracteres XML usando o formato especificado.

TryExportECPrivateKey(Span<Byte>, Int32)

Tenta exportar a chave atual no formato ECPrivateKey para um buffer fornecido.

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

Tenta exportar a chave atual no formato ECPrivateKey codificado em PEM para um buffer fornecido.

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

Tenta exportar a chave atual no formato EncryptedPrivateKeyInfo do PKCS n º 8 para um buffer fornecido, usando uma senha baseada em bytes.

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

Tenta exportar a chave atual no formato EncryptedPrivateKeyInfo do PKCS n º 8 para um buffer fornecido, usando uma senha baseada em bytes.

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

Tenta exportar a chave atual no formato EncryptedPrivateKeyInfo do PKCS n º 8 para um buffer fornecido, usando uma senha baseada em caracteres.

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

Tenta exportar a chave atual no formato EncryptedPrivateKeyInfo do PKCS n º 8 para um buffer fornecido, usando uma senha baseada em caracteres.

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

Tenta exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma senha baseada em bytes, codificada em PEM.

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

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma senha baseada em caracteres, codificada em PEM.

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

Tenta exportar a chave atual no formato PrivateKeyInfo do PKCS n º 8 para um buffer fornecido.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Tenta exportar a chave atual no formato PrivateKeyInfo do PKCS n º 8 para um buffer fornecido.

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

Tenta exportar a chave atual no formato PKCS#8 PrivateKeyInfo codificado em PEM para um buffer fornecido.

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

Tenta exportar a chave atual no formato SubjectPublicKeyInfo X.509 para um buffer fornecido.

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

Tenta exportar a chave atual no formato SubjectPublicKeyInfo codificado em PEM para um buffer fornecido.

(Herdado de AsymmetricAlgorithm)

Implantações explícitas de interface

IDisposable.Dispose()

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

Para obter uma descrição desse membro, confira Dispose().

(Herdado de AsymmetricAlgorithm)

Aplica-se a