Compartilhar via


Método IX509PublicKey::get_EncodedParameters (certenroll.h)

A propriedade EncodedParameters recupera uma matriz de bytes que contém os parâmetros associados ao algoritmo de chave pública . A matriz de bytes é representada por uma cadeia de caracteres codificada em Unicode.

Esta propriedade é somente para leitura.

Sintaxe

HRESULT get_EncodedParameters(
  EncodingType Encoding,
  BSTR         *pValue
);

Parâmetros

Encoding

pValue

Valor retornado

Nenhum

Comentários

Chame o método InitializeFromEncodedPublicKeyInfo ou o método Initialize para inicializar o objeto de chave pública antes de chamar essa propriedade.

O objeto AlgorithmIdentifier Abstract Syntax Notation One (ASN.1) referenciado pelo objeto SubjectPublicKeyInfo em um certificado X.509 versão 3 contém um OID ( identificador de objeto de algoritmo) e parâmetros opcionais.


SubjectPublicKeyInfo  ::=  SEQUENCE
{
   algorithm            AlgorithmIdentifier,
   subjectPublicKey     BIT STRING  
}

AlgorithmIdentifier  ::=  SEQUENCE  
{
   algorithm            OBJECT IDENTIFIER,
   parameters           ANY DEFINED BY algorithm OPTIONAL  
}

O formato e o conteúdo dos parâmetros diferem por algoritmo. O Controle de Registro de Certificado gera valores de parâmetro para vários algoritmos, conforme necessário. Para obter mais informações, consulte as seções a seguir:

  • Algoritmo de chave pública RSA
  • Transporte de chave usando RSA-OAEP
  • Acordo-chave usando ECDH
  • Criptografia de conteúdo usando a AES

Algoritmo de chave pública RSA

A RSA geralmente é usada para criptografar uma chave privada e enviá-la a uma AC (autoridade de certificação ) para arquivamento. O algoritmo XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) deve ter um valor de parâmetro NULL . O valor NULL ASN.1 é representado por dois bytes. O número da marca é 0x05 e o valor associado à marca é 0x00. Isso é mostrado pelo exemplo de certificado a seguir.

...
Public Key Algorithm:
    Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_KEYX)
    Algorithm Parameters:
    05 00
...

Transporte de chave usando RSA-OAEP

O algoritmo RSA-OAEP, XCN_OID_RSAES_OAEP (1.2.840.113549.1.1.7), também tem suporte para transporte de chaves. O campo de parâmetros tem a sintaxe a seguir.

RSAES-OAEP-params  ::=  SEQUENCE  
{
   hashFunc    [0] AlgorithmIdentifier DEFAULT sha1OID,
   maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1OID,
   pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmptyOID
}

Acordo-chave usando ECDH

O algoritmo de Diffie-Hellman curva elíptica de passagem única, XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF (1.3.133.16.840.63.0.2), é compatível com o contrato-chave. O contrato de chave usa dois níveis de criptografia:
  • A mensagem é criptografada usando uma CEK (chave de criptografia de conteúdo) e um algoritmo de criptografia simétrica .
  • O CEK é criptografado (encapsulado) usando uma KEK (chave de criptografia de chave simétrica ).
O KEK é calculado a partir de um número de segredo compartilhado que é calculado a partir da chave privada de uma parte e da chave pública da outra parte. O campo de parâmetros contém o OID do algoritmo KEK usado para encapsular ou criptografar o CEK. Há suporte para os seguintes algoritmos de encapsulamento:
  • XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.)
  • XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)
  • XCN_OID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
  • XCN_OID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
  • XCN_OID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)

Criptografia de conteúdo usando a AES

O AES (Advanced Encryption Standard) é usado para criptografar o conteúdo. Há suporte para os seguintes algoritmos:
  • XCN_OID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
  • XCN_OID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
  • XCN_OID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
O campo de parâmetros contém um vetor de inicialização aleatório, AES-IV.

AES-IV ::= OCTET STRING (SIZE(16))

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certenroll.h
DLL CertEnroll.dll

Confira também

IX509PublicKey