ECDiffieHellmanCng Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece uma implementação de Criptografia de Nova Geração (CNG) do algoritmo Elliptic Curve Diffie-Hellman (ECDH). Esta classe é usada para realizar operações 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
- Herança
- Herança
Exemplos
O exemplo seguinte mostra como usar a ECDiffieHellmanCng classe para estabelecer uma troca de chaves e como usar essa chave para encriptar uma mensagem que pode ser enviada por um canal público e desencriptada pelo recetor.
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
Observações
A ECDiffieHellmanCng classe permite que duas partes troquem material de chave privada mesmo que estejam a comunicar através de um canal público. Ambas as partes podem calcular o mesmo valor secreto, que é referido como o acordo secreto nas classes de Diffie-Hellman geridas. O acordo secreto pode então ser usado para vários fins, incluindo como uma chave simétrica. No entanto, em vez de expor diretamente o acordo secreto, a ECDiffieHellmanCng classe faz algum pós-processamento do acordo antes de fornecer o valor. Este pós-processamento é referido como função de derivação de chaves (KDF); podes selecionar qual KDF queres usar e definir os seus parâmetros através de um conjunto de propriedades na instância do objeto Diffie-Hellman.
| Função de derivação de chaves | Properties |
|---|---|
| Hash |
HashAlgorithm - O algoritmo de hash utilizado para processar o acordo secreto. SecretPrepend - Um array de bytes opcional para anteceder ao acordo secreto antes de o hashar. SecretAppend - Um array opcional de bytes para anexar ao acordo secreto antes de o fazer por hash. |
| Hmac |
HashAlgorithm - O algoritmo de hash utilizado para processar o acordo secreto. SecretPrepend- Um array de bytes opcional para anteceder ao acordo secreto antes de o hashar. SecretAppend - Um array opcional de bytes para anexar ao acordo secreto antes de o fazer por hash. |
| Tls |
Label - O rótulo para a derivação de chaves. Seed - A semente para a derivação de chaves. |
O resultado de passar o acordo secreto através da função de derivação de chaves é um array de bytes que pode ser usado como material chave para a sua aplicação. O número de bytes de material chave gerado depende da função de derivação de chaves; por exemplo, o SHA-256 gera 256 bits de material chave, enquanto o SHA-512 gera 512 bits de material-chave. O fluxo básico de uma troca de chaves ECDH é o seguinte:
Alice e Bob criam um par de chaves para usar na operação de troca de chaves Diffie-Hellman
Alice e Bob configuram o KDF usando parâmetros que concordam.
Alice envia a sua chave pública ao Bob.
Bob envia a Alice a sua chave pública.
Alice e Bob usam as chaves públicas um do outro para gerar o acordo secreto e aplicam a KDF ao acordo secreto para gerar material chave.
Construtores
| Name | Description |
|---|---|
| ECDiffieHellmanCng() |
Inicializa uma nova instância da ECDiffieHellmanCng classe com um par de chaves aleatórias. |
| ECDiffieHellmanCng(CngKey) |
Inicializa uma nova instância da ECDiffieHellmanCng classe usando o objeto especificado CngKey . |
| ECDiffieHellmanCng(ECCurve) |
Cria uma nova instância da ECDiffieHellmanCng classe cujo par de chaves pública/privada é gerado ao longo da curva especificada. |
| ECDiffieHellmanCng(Int32) |
Inicializa uma nova instância da ECDiffieHellmanCng classe com um par de chaves aleatórias, usando o tamanho da chave especificado. |
Campos
| Name | Description |
|---|---|
| KeySizeValue |
Representa o tamanho, em bits, do módulo de chave usado pelo algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
| LegalKeySizesValue |
Especifica os tamanhos de chave suportados pelo algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
Propriedades
| Name | Description |
|---|---|
| HashAlgorithm |
Obtém ou define o algoritmo de hash para usar ao gerar material chave. |
| HmacKey |
Obtém ou define a chave Hash-based Message Authentication Code (HMAC) para usar ao derivar 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 chave para a ECDiffieHellmanCng classe. |
| 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 de chave usado pelo algoritmo assimétrico. |
| KeySize |
Obtém ou define o tamanho, em bits, do módulo de chave usado pelo algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
| Label |
Obtém ou define o valor da etiqueta que é usado para a derivação de chaves. |
| LegalKeySizes |
Obtém os tamanhos de chave suportados pelo algoritmo assimétrico. |
| LegalKeySizes |
Obtém os tamanhos de chave suportados pelo algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
| PublicKey |
Obtém a chave pública que pode ser usada por outro ECDiffieHellmanCng objeto para gerar um acordo secreto partilhado. |
| SecretAppend |
Obtém ou define um valor que será acrescentado ao acordo secreto ao gerar material-chave. |
| SecretPrepend |
Obtém ou define um valor que será adicionado ao início do acordo secreto ao derivar material-chave. |
| Seed |
Obtém ou define o valor semente que será usado ao derivar o material-chave. |
| SignatureAlgorithm |
Recebe o nome do algoritmo de assinatura. (Herdado de ECDiffieHellman) |
| UseSecretAgreementAsHmacKey |
Obtém um valor que indica se o acordo secreto é usado como uma chave de Código de Autenticação de Mensagens Baseada em Hash (HMAC) para obter material de chave. |
Métodos
| Name | Description |
|---|---|
| Clear() |
Liberta todos os recursos usados pela AsymmetricAlgorithm turma. (Herdado de AsymmetricAlgorithm) |
| DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[]) |
Realiza a derivação de chaves usando um algoritmo de hash especificado com dados opcionais prependidos ou acrescentados. |
| DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName) |
Realiza a derivação de chaves usando um algoritmo de hash especificado. (Herdado de ECDiffieHellman) |
| DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[]) |
Realiza a derivação de chaves usando um algoritmo HMAC (Hash-based Message Authentication Code) especificado com dados opcionais prependidos ou acrescentados. |
| DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[]) |
Realiza a derivação de chaves usando um algoritmo HMAC (Código de Autenticação de Mensagens Baseado em Hash) especificado. (Herdado de ECDiffieHellman) |
| DeriveKeyMaterial(CngKey) |
Deriva o material da chave gerado a partir do acordo secreto entre duas partes, dado um CngKey objeto que contém a chave pública da segunda parte. |
| DeriveKeyMaterial(ECDiffieHellmanPublicKey) |
Deriva o material da chave gerado a partir do acordo secreto entre duas partes, dado um ECDiffieHellmanPublicKey objeto que contém a chave pública da segunda parte. |
| DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[]) |
Realiza a derivação de chaves usando a função TLS (Transport Layer Security) 1.1 PRF (FunçãoPseudo-Random). |
| DeriveRawSecretAgreement(ECDiffieHellmanPublicKey) |
Derivar matéria-chave bruta. (Herdado de ECDiffieHellman) |
| DeriveSecretAgreementHandle(CngKey) |
Obtém um controlo do acordo secreto gerado entre duas partes, dado um CngKey objeto que contém a chave pública da segunda parte. |
| DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey) |
Obtém um acesso ao acordo secreto gerado entre duas partes, dado um ECDiffieHellmanPublicKey objeto que contém a chave pública da segunda parte. |
| Dispose() |
Liberta todos os recursos usados pela instância atual da AsymmetricAlgorithm classe. (Herdado de AsymmetricAlgorithm) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pela AsymmetricAlgorithm classe e, opcionalmente, liberta os recursos geridos. (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 PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em bytes. |
| ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em bytes. (Herdado de AsymmetricAlgorithm) |
| ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em caracteres. |
| ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em caracteres. (Herdado de AsymmetricAlgorithm) |
| ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em bytes, codificada em PEM. (Herdado de AsymmetricAlgorithm) |
| ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em caracteres, codificada em PEM. (Herdado de AsymmetricAlgorithm) |
| ExportExplicitParameters(Boolean) |
Exporta os parâmetros chave e da curva explícita usados pelo ECCurve objeto para um ECParameters objeto. |
| ExportParameters(Boolean) |
Exporta a chave usada pelo ECCurve objeto para um ECParameters objeto. |
| ExportPkcs8PrivateKey() |
Exporta a chave atual no formato PKCS#8 PrivateKeyInfo. (Herdado de AsymmetricAlgorithm) |
| ExportPkcs8PrivateKeyPem() |
Exporta a chave atual no formato PKCS#8 PrivateKeyInfo, codificado em PEM. (Herdado de AsymmetricAlgorithm) |
| ExportSubjectPublicKeyInfo() |
Exporta a parte da chave pública da chave atual no formato X.509 SubjectPublicKeyInfo. (Herdado de AsymmetricAlgorithm) |
| ExportSubjectPublicKeyInfoPem() |
Exporta a parte da chave pública da chave atual no formato X.509 SubjectPublicKeyInfo, codificado em PEM. (Herdado de AsymmetricAlgorithm) |
| FromXmlString(String, ECKeyXmlFormat) |
Obsoleto.
Desserializa a informação chave de uma cadeia XML usando o formato especificado. |
| FromXmlString(String) |
Este método não é implementado. |
| FromXmlString(String) |
Este método inclui todos os casos. (Herdado de ECDiffieHellman) |
| GenerateKey(ECCurve) |
Gera um novo par de chaves pública/privada efémera para a curva especificada. |
| GetHashCode() |
Serve como função de hash predefinida. (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úblico/privado a partir de uma estrutura ECPrivateKey, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) |
Importa o par de chaves público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptar com uma palavra-passe baseada em bytes, substituindo as chaves deste objeto. |
| ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) |
Importa o par de chaves público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptar com uma palavra-passe baseada em bytes, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) |
Importa o par de chaves pública/privada de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptação com uma palavra-passe baseada em caracteres, substituindo as chaves deste objeto. |
| ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) |
Importa o par de chaves pública/privada de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptação com uma palavra-passe baseada em caracteres, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>) |
Importa uma chave privada codificada em PEM RFC 7468 encriptada, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Importa uma chave privada codificada em PEM RFC 7468 encriptada, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportFromPem(ReadOnlySpan<Char>) |
Importa uma chave codificada em PEM no RFC 7468, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportParameters(ECParameters) |
Importa os parâmetros especificados para um ECCurve objeto como chave para a instância atual. |
| ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) |
Importa o par de chaves público/privado de uma estrutura PKCS#8 PrivateKeyInfo após a desencriptação, substituindo as chaves deste objeto. |
| ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) |
Importa o par de chaves público/privado de uma estrutura PKCS#8 PrivateKeyInfo após a desencriptação, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32) |
Importa a chave pública de uma estrutura X.509 SubjectPublicKeyInfo após a desencriptação, substituindo as chaves deste objeto. (Herdado de ECDiffieHellman) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| ToXmlString(Boolean) |
Este método não é implementado. |
| ToXmlString(Boolean) |
Este método inclui todos os casos. (Herdado de ECDiffieHellman) |
| ToXmlString(ECKeyXmlFormat) |
Obsoleto.
Serializa a informação chave para uma string XML usando o formato especificado. |
| TryExportECPrivateKey(Span<Byte>, Int32) |
Tenta exportar a chave atual no |
| TryExportECPrivateKeyPem(Span<Char>, Int32) |
Tentativas de exportar a chave atual no formato ECPrivateKey codificado em PEM para um buffer fornecido. (Herdado de ECAlgorithm) |
| TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) |
Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em bytes. |
| TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) |
Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em bytes. (Herdado de ECDiffieHellman) |
| TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) |
Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em caracteres. |
| TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) |
Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em caracteres. (Herdado de ECDiffieHellman) |
| TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32) |
Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe 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 palavra-passe baseada em caracteres, codificada em PEM. (Herdado de AsymmetricAlgorithm) |
| TryExportPkcs8PrivateKey(Span<Byte>, Int32) |
Tenta exportar a chave atual no formato PKCS#8 PrivateKeyInfo para um buffer fornecido. |
| TryExportPkcs8PrivateKey(Span<Byte>, Int32) |
Tenta exportar a chave atual no formato PKCS#8 PrivateKeyInfo para um buffer fornecido. (Herdado de ECDiffieHellman) |
| TryExportPkcs8PrivateKeyPem(Span<Char>, Int32) |
Tentativas de exportar a chave atual no formato PKCS#8 PrivateKeyInfo codificado em PEM para um buffer fornecido. (Herdado de AsymmetricAlgorithm) |
| TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) |
Tentativas de exportar a chave atual no formato X.509 SubjectPublicKeyInfo para um buffer fornecido. (Herdado de ECDiffieHellman) |
| TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32) |
Tentativas de exportar a chave atual no formato X.509 SubjectPublicKeyInfo codificado em PEM para um buffer fornecido. (Herdado de AsymmetricAlgorithm) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código. Para uma descrição deste elemento, veja Dispose(). (Herdado de AsymmetricAlgorithm) |