Compartilhar via


Método IX509CertificateRequestPkcs10::InitializeFromPublicKey (certenroll.h)

O método InitializeFromPublicKey inicializa uma solicitação de certificado assinado em nulo usando um objeto IX509PublicKey e, opcionalmente, um modelo.

Sintaxe

HRESULT InitializeFromPublicKey(
  [in]           X509CertificateEnrollmentContext Context,
  [in]           IX509PublicKey                   *pPublicKey,
  [in, optional] BSTR                             strTemplateName
);

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.

[in] pPublicKey

Ponteiro para uma interface IX509PublicKey que representa a chave pública.

[in, optional] strTemplateName

Uma variável BSTR que contém o Nome Comum (CN) do modelo como ele aparece no Active Directory ou no identificador de objeto decimal pontilhado. Esse é um parâmetro opcional.

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 de certificado já foi inicializado.

Observações

Se você especificar um modelo, o método InitializeFromPublicKey executará as seguintes ações:

  • Adiciona as extensões especificadas no modelo opcional, se houver, à coleção IX509Extensions .
  • Cria uma coleção CriticalExtensions e a popula com os identificadores de objeto XCN_OID_KEY_USAGE e XCN_OID_BASIC_CONSTRAINTS2 padrão. Se um modelo for especificado e indicar que esses OIDs não são críticos, eles serão removidos da coleção. Os OIDs marcados como críticos pelo modelo, se houver, 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 .

Se você especificar um modelo ou não, se a propriedade CSPInformations não for especificada, o método criará uma coleção ICspInformations dos provedores instalados no computador.

O método não cria uma chave privada. O uso desse método implica que a solicitação é assinada em nulo. Portanto, o método define a propriedade NullSigned no objeto IX509SignatureInformation .

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

IX509CertificateRequestPkcs10