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 |
---|---|
|
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:
- Uma coleção ICryptAttributes vazia.
- Uma coleção IX509Extensions vazia.
- Uma coleção IObjectIds vazia para extensões críticas.
- Uma coleção IObjectIds vazia para OIDs de atributo e extensão a serem suprimidas da nova solicitação.
- 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 |