Compartilhar via


Método IX509AttributeArchiveKey::InitializeEncode (certenroll.h)

O método InitializeEncode inicializa o atributo de um objeto IX509PrivateKey , o certificado de criptografia da autoridade de certificação e o OID ( identificador de objeto do algoritmo de criptografia simétrica).

Sintaxe

HRESULT InitializeEncode(
  [in]           IX509PrivateKey *pKey,
  [in]           EncodingType    Encoding,
  [in]           BSTR            strCAXCert,
  [in, optional] IObjectId       *pAlgorithm,
  [in]           LONG            EncryptionStrength
);

Parâmetros

[in] pKey

Ponteiro para uma interface IX509PrivateKey que representa a chave.

[in] Encoding

Um valor de enumeração EncodingType que especifica o tipo de codificação Unicode aplicada à cadeia de caracteres de entrada que contém a chave criptografada.

[in] strCAXCert

Uma variável BSTR que contém o certificado de criptografia da autoridade de certificação que contém a chave pública usada para criptografar a chave privada.

A partir do Windows 7 e do Windows Server 2008 R2, você pode especificar uma impressão digital do certificado ou um número de série em vez de um certificado codificado. Isso faz com que a função pesquise os repositórios locais apropriados para o certificado correspondente. Tenha em mente os seguintes pontos:

  • O BSTR deve ser um número par de dígitos hexadecimais.
  • O espaço em branco entre pares hexadecimais é ignorado.
  • O parâmetro Encoding deve ser definido como XCN_CRYPT_STRING_HEXRAW.
  • Somente os repositórios pessoais e de solicitação são pesquisados para a chave privada.

[in, optional] pAlgorithm

Ponteiro para uma interface IObjectId que representa o OID do algoritmo de criptografia simétrica usado para criptografar a chave privada. Esse parâmetro é opcional. Se você não fornecer um OID, XCN_OID_RSA_DES_EDE3_CBC (DES triplo) será usado.

[in] EncryptionStrength

Uma variável LONG que contém a força de criptografia do algoritmo identificado pelo parâmetro pAlgorithm . Esse parâmetro não é usado no momento porque o SDK de Registro de Certificado não dá suporte a nenhum algoritmo para o qual o OID ainda não implica a força (comprimento da chave). Por exemplo, o AES tem vários pontos fortes, mas a força de cada um já é indicada pelo OID.

Retornar valor

Se a função for bem-sucedida, a função retornará S_OK.

Se a função falhar, ela retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Comentários

O identificador de objeto desse atributo é XCN_OID_ARCHIVED_KEY_ATTR (1.3.6.1.4.1.311.21.13). Para obter mais informações, consulte CERTENROLL_OBJECTID.

Você deve chamar InitializeEncode ou InitializeDecode antes de usar um objeto IX509AttributeArchiveKey . Os dois métodos se complementam. O método InitializeEncode permite que você construa uma estrutura asn.1 ( Abstract Syntax Notation One ) codificada com base em dados brutos e o método InitializeDecode permite inicializar dados brutos de uma estrutura ASN.1 codificada. Você pode chamar as seguintes propriedades para recuperar os dados brutos:

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

IX509AttributeArchiveKey