Compartilhar via


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 DER (Distinguished Encoding Rules ), 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 em 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.

Valor de retorno

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

Código/valor de retorno Description
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
O objeto de solicitação já foi inicializado.

Observações

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 os algoritmos de assinatura e hash originais.
  • 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. A partir do Windows 8 e do Windows Server 2012, você pode alterar esse comportamento padrão. Depois de criar uma instância da interface IX509CertificateRequestPkcs7 , chame InitializeDecodedefinindo o parâmetro de codificação como XCN_CRYPT_STRING_BINARY e o parâmetro strEncodedData para um dos seguintes valores:

Value Description
L"ContextMachine" A solicitação de certificado codificada é para um computador.
L"ContextUser" A solicitação de certificado codificada é 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 .

Requirements

Requirement Value
Cliente mínimo suportado Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo compatível Windows Server 2008 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
Header certenroll.h
de DLL CertEnroll.dll

Consulte também

IX509CertificateRequestPkcs7