Compartilhar via


Método IX509CertificateRequestPkcs7V2::InitializeFromTemplate (certenroll.h)

O método InitializeFromTemplate inicializa a solicitação de certificado usando um modelo.

Sintaxe

HRESULT InitializeFromTemplate(
  [in] X509CertificateEnrollmentContext context,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

Parâmetros

[in] context

Um valor de enumeração X509CertificateEnrollmentContext que especifica se o certificado solicitado se destina a um usuário final, um computador ou um administrador agindo em nome do computador. Esse pode ser um dos valores a seguir.

Value Meaning
ContextUser
O certificado está sendo solicitado para um usuário final.
ContextMachine
O certificado está sendo solicitado para um computador.
ContextAdministratorForceMachine
O certificado está sendo solicitado por um administrador que atua em nome de um computador.

[in] pPolicyServer

Ponteiro para um objeto IX509EnrollmentPolicyServer que representa o servidor CEP (política de registro de certificado) que contém o modelo especificado pelo parâmetro pTemplate .

[in] pTemplate

Ponteiro para um objeto IX509CertificateTemplate que representa o modelo a ser usado durante a inicialização.

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
E_POINTER
O parâmetro pTemplate não pode ser NULL.
ERROR_ALREADY_INITIALIZED
O objeto de solicitação de certificado já foi inicializado.

Observações

O método InitializeFromTemplate cria um objeto de solicitação PKCS nº 7 e define as seguintes propriedades para os valores que existiam antes desse método ser chamado:

O método cria as seguintes coleções:
  • Uma coleção ICryptAttributes .
  • Uma coleção IX509Extensions .
  • Uma coleção IObjectIds preenchida com os identificadores de objeto XCN_OID_KEY_USAGE e XCN_OID_BASIC_CONSTRAINTS2 padrão.
  • Uma coleção IObjectIds vazia para OIDs de atributo e extensão a serem suprimidas da nova solicitação.

Em seguida, o método examina o modelo e executa as seguintes ações:

  • Adiciona as extensões especificadas pelo modelo à coleção IX509Extensions .
  • Remove as extensões críticas padrão (XCN_OID_KEY_USAGE e XCN_OID_BASIC_CONSTRAINTS2) da coleção se o modelo indicar que elas não são críticas. Os OIDs marcados como críticos pelo modelo são adicionados.
  • Define a propriedade SmimeCapabilities se o modelo der suporte a algoritmos simétricos.
  • Define a propriedade AlternateSignatureAlgorithm se o modelo exigir um OID de algoritmo de assinatura discreto.
  • Cria um objeto IX509SignatureInformation .
  • Cria um algoritmo de hash OID se o algoritmo for especificado no modelo e o definir no objeto IX509SignatureInformation .
  • Cria um algoritmo de criptografia assimétrica OID se o algoritmo for especificado no modelo e o definir no objeto IX509SignatureInformation .
  • Popula muitas das propriedades IX509PrivateKey das configurações de modelo.

Se a propriedade CSPInformations for NULL, o método criará uma coleção ICspInformations dos provedores instalados no computador.

Por fim, o método define a solicitação PKCS #10 inicializada como o objeto de solicitação interna.

Requirements

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

Consulte também

IX509CertificateRequestPkcs7V2