Método IX509CertificateRequestCertificate2::InitializeFromPrivateKeyTemplate (certenroll.h)
O método InitializeFromPrivateKeyTemplate inicializa a solicitação de certificado usando um objeto IX509PrivateKey e um modelo de certificado.
Sintaxe
HRESULT InitializeFromPrivateKeyTemplate(
[in] X509CertificateEnrollmentContext Context,
[in] IX509PrivateKey *pPrivateKey,
[in] IX509EnrollmentPolicyServer *pPolicyServer,
[in] IX509CertificateTemplate *pTemplate
);
Parâmetros
[in] Context
Um valor de enumeração X509CertificateEnrollmentContext que especifica se o certificado solicitado destina-se a um usuário final, um computador ou um administrador agindo em nome do computador. Esse pode ser um dos valores a seguir. No entanto, se a propriedade MachineContext da chave privada estiver definida, você deverá especificar o valor de enumeração ContextMachine .
[in] pPrivateKey
Ponteiro para uma interface IX509PrivateKey que representa a chave privada.
[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.
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.
Código de retorno | Descrição |
---|---|
|
Os parâmetros pPrivateKey, pPolicyServer ou pTemplate são NULL. |
|
O objeto de solicitação de certificado já foi inicializado. |
Comentários
O método InitializeFromPrivateKeyTemplate executa as seguintes ações:
- Adiciona as extensões especificadas pelo modelo a uma coleção IX509Extensions .
- Cria uma coleção IObjectIds e a preenche com os identificadores de objeto XCN_OID_KEY_USAGE e XCN_OID_BASIC_CONSTRAINTS2 padrão. Se o modelo 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 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 .
- Recupera um OID de algoritmo de criptografia assimétrica, se existir, do modelo e o define no objeto IX509SignatureInformation .
- Preenche muitas das propriedades IX509PrivateKey das configurações do modelo.
Se a propriedade CSPInformations não for especificada, o método criará uma coleção ICspInformations dos provedores instalados no computador.
Nenhuma chave privada é criada neste momento. Se o objeto IX509PrivateKey passado para o método não representar uma chave existente, uma chave será criada quando o método Encode for chamado. A chave será criada usando o provedor padrão se nenhum modelo tiver sido especificado e a propriedade ProviderName no IX509PrivateKey não estiver definida. Quando existe uma chave privada, ela é definida na propriedade PrivateKey .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | certenroll.h |