Compartilhar via


Método ICertProperty::InitializeFromCertificate (certenroll.h)

O método InitializeFromCertificate inicializa o objeto usando um valor de propriedade associado a um certificado existente.

Sintaxe

HRESULT InitializeFromCertificate(
  [in] VARIANT_BOOL MachineContext,
  [in] EncodingType Encoding,
  [in] BSTR         strCertificate
);

Parâmetros

[in] MachineContext

Um valor VARIANT_BOOL que indica se o repositório de certificados é para o computador local ou para o usuário atual. Especifique VARIANT_TRUE para o computador e VARIANT_FALSE para o usuário.

[in] Encoding

Um valor de enumeração EncodingType que especifica o tipo de codificação Unicode aplicada ao certificado contido no parâmetro strCertificate .

[in] strCertificate

Uma variável BSTR que contém o certificado codificado em DER.

A partir do Windows 7 e do Windows Server 2008 R2, você pode especificar uma impressão digital do certificado ou um número de série em vez de um certificado codificado. Isso faz com que a função pesquise os repositórios locais apropriados para o certificado correspondente. Tenha em mente os seguintes pontos:

  • O BSTR deve ser um número par de dígitos hexadecimais.
  • O espaço em branco entre pares hexadecimais é ignorado.
  • O parâmetro Encoding deve ser definido como XCN_CRYPT_STRING_HEXRAW.
  • O parâmetro MachineContext determina se o usuário ou o computador armazena ou ambos são pesquisados.
  • Se uma chave privada for necessária, somente os repositórios pessoais e de solicitação serão pesquisados.
  • Se uma chave privada não for necessária, os repositórios de AC raiz e intermediária também serão pesquisados.

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
CRYPT_E_NOT_FOUND
Não foi possível encontrar o certificado.
CRYPT_E_UNEXPECTED_MSG_TYPE
O certificado foi encontrado, mas a chave privada não pôde ser carregada.

Comentários

Especifique a propriedade a ser inicializada chamando a propriedade PropertyId . Você pode chamar a propriedade RawData para recuperar uma cadeia de caracteres codificada que contém a propriedade .

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

Confira também

ICertProperties

ICertProperty