Método IX509CertificateRequestPkcs7::InitializeDecode (certenroll.h)

O método InitializeDecode decodifica um objeto de solicitação PKCS nº 7 assinado ou não assinado existente e o usa para inicializar o novo objeto PKCS nº 7. A solicitação existente está contida em uma matriz de bytes que foi codificada usando Distinguished Encoding Rules (DER), conforme definido pelo padrão ASN.1 (Abstract Syntax Notation One). A matriz de bytes é representada por uma cadeia de caracteres que é uma sequência binária pura ou é codificada por Unicode.

Sintaxe

HRESULT InitializeDecode(
  [in] BSTR         strEncodedData,
  [in] EncodingType Encoding
);

Parâmetros

[in] strEncodedData

Uma variável BSTR que contém a solicitação codificada em DER.

[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 solicitação codificada em DER. O valor padrão é XCN_CRYPT_STRING_BASE64.

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. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Valor/código retornado Descrição
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
O objeto de solicitação já foi inicializado.

Comentários

O método InitializeDecode :

  • Decodifica a solicitação PKCS nº 7 especificada na entrada.
  • Usa o objeto decodificado para criar uma solicitação PKCS nº 10 interna com as seguintes coleções:
  • Adiciona as extensões decodificadas à coleção IX509Extensions .
  • Adiciona os atributos decodificados à coleção ICryptAttributes
  • Define a propriedade ClientId .
  • Define a propriedade TemplateObjectId .
  • Usa a assinatura na solicitação PKCS nº 7 original para criar um novo objeto ISignerCertificate .
  • Recupera um objeto IX509SignatureInformation do objeto ISignerCertificate .
  • Inicializa o novo objeto IX509SignatureInformation usando a assinatura original e os algoritmos de hash.
  • Define a solicitação PKCS nº 10 como o objeto de solicitação interna.

Por padrão, o método InitializeDecode pressupõe que a solicitação de certificado a ser decodificada é para um usuário final. Começando com Windows 8 e Windows Server 2012, você pode alterar esse comportamento padrão. Depois de criar uma instância da interface IX509CertificateRequestPkcs7 , chame InitializeDecodedefinindo o parâmetro Encoding como XCN_CRYPT_STRING_BINARY e o parâmetro strEncodedData como um dos seguintes valores:

Valor Descrição
L"ContextMachine" A solicitação de certificado codificado é para um computador.
L"ContextUser" A solicitação de certificado codificado é para um usuário final.
L"ContextAdministratorForceMachine" O certificado codificado está sendo solicitado por um administrador que atua em nome de um computador.
 

Em seguida, chame o método InitializeDecode novamente com o certificado codificado definido no argumento strEncodedData .

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

IX509CertificateRequestPkcs7