Método ICertServerExit::GetCertificateProperty (certif.h)
O método GetCertificateProperty retorna uma propriedade nomeada de um certificado.
Sintaxe
HRESULT GetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[out] VARIANT *pvarPropertyValue
);
Parâmetros
[in] strPropertyName
Especifica a propriedade nomeada a ser recuperada. Há um conjunto de ações de propriedades de certificado, conhecidas como propriedades de nome, que são sempre válidas e podem ser recuperadas chamando esse método. Para obter informações sobre essas propriedades, consulte Propriedades do nome. Outras propriedades que podem ser recuperadas incluem as propriedades do certificado.
As propriedades a seguir são exclusivas para certificados e podem ser lidas por GetCertificateProperty.
Valor | Significado |
---|---|
|
Data de validade do início do certificado |
|
Data de validade do certificado |
|
OID ( subject key algorithm object identifier ) |
|
Bytes de certificado brutos |
|
Chave do assunto |
|
Parâmetros de algoritmo de chave de assunto |
|
ID da solicitação interna |
|
Número de série do certificado |
As propriedades DistinguishedName, RawName e SerialNumber do certificado são acessíveis por GetCertificateProperty somente depois que o módulo de política terminar de processar a solicitação e o certificado for emitido.
As propriedades a seguir se aplicam à autoridade de certificação. O contexto deve ser zero para ler qualquer uma dessas propriedades. O contexto é definido como zero quando o objeto ICertServerExit é criado inicialmente. Ele também pode ser definido como zero invocando o método SetContext .
Valor | Significado |
---|---|
|
Tipo de autoridade de certificação. Esse pode ser um dos seguintes valores (definidos em Certsrv.h): ENUM_ENTERPRISE_ROOTCA ENUM_ENTERPRISE_SUBCA ENUM_STANDALONE_ROOTCA ENUM_STANDALONE_SUBCA |
|
Número de certificados de autoridade de certificação. Esse valor será um mais o número de vezes que a AC foi renovada. Para obter informações sobre renovação, consulte Renovação da Autoridade de Certificação. |
|
Estado do certificado de autoridade de certificação. Esse valor pode ser um dos seguintes:
|
|
Sufixo para o certificado de autoridade de certificação. O sufixo é uma cadeia de caracteres vazia para certificados de AUTORIDADE com um índice de zero; caso contrário, o sufixo (na forma de "(nn)", em que nn é o índice de certificado) é aplicado a todas as URLs que apontam para certificados de AUTORIDADE armazenados em arquivos ou objetos de serviço de diretório. Para URLs não LDAP , o sufixo normalmente aparece antes do texto ".crt". Para URLs LDAP, o sufixo normalmente é acrescentado ao primeiro 'CN=' no nome diferenciado completo.
Esse nome de propriedade pode ser acrescentado com '.#', em que # representa um índice de certificado de AUTORIDADE (ou, no caso da propriedade CRLSuffix, um índice CRL). Para obter informações sobre índices de certificado e CRL, consulte Renovação da Autoridade de Certificação. |
|
Índice crl (lista de revogação de certificados). Acrescentar um índice de certificado a esse nome de propriedade permite que você recupere o índice CRL. O índice CRL não corresponde necessariamente ao índice de certificado. Para obter mais informações, consulte Certificação.
Esse nome de propriedade pode ser acrescentado com '.#', em que # representa um índice de certificado de AUTORIDADE (ou, no caso da propriedade CRLSuffix, um índice CRL). Para obter informações sobre índices de certificado e CRL, consulte Renovação da Autoridade de Certificação. |
|
Estado de CRL. Esse valor pode ser um dos seguintes:
|
|
Sufixo para a AC CRL. O sufixo é uma cadeia de caracteres vazia para CRLs com um índice de zero; caso contrário, o sufixo (na forma de "(nn)", em que nn é o índice CRL, é aplicado a todas as URLs que apontam para CRLs armazenadas em arquivos ou objetos de serviço de diretório. Para URLs não LDAP, o sufixo normalmente aparece antes do texto ".crl". Para URLs LDAP, o sufixo normalmente é acrescentado ao primeiro 'CN=' no nome diferenciado completo.
Esse nome de propriedade pode ser acrescentado com '.#', em que # representa um índice de certificado de AC (ou, no caso da propriedade CRLSuffix, um índice CRL). Para obter informações sobre índices de certificado e CRL, consulte Renovação da autoridade de certificação. |
|
Indica se a AC usa um serviço de diretório. Esse pode ser um dos seguintes valores:
|
|
Nome DNS do servidor que hospeda a AC. |
|
Local do Registro disponível para uso pelo módulo. |
|
Certificado de Autoridade de Certificação.
Esse nome de propriedade pode ser acrescentado com '.#', em que # representa um índice de certificado de AC (ou, no caso da propriedade CRLSuffix, um índice CRL). Para obter informações sobre índices de certificado e CRL, consulte Renovação da autoridade de certificação. |
|
CRL ( lista de certificados revogados ) da AC.
Esse nome de propriedade pode ser acrescentado com '.#', em que # representa um índice de certificado de AC (ou, no caso da propriedade CRLSuffix, um índice CRL). Para obter informações sobre índices de certificado e CRL, consulte Renovação da autoridade de certificação. |
|
Indica se o solicitante está autorizado a solicitar o certificado. Esse pode ser um dos seguintes valores:
|
|
Nome higienizado para a AC. Para obter informações sobre nomes de AC sanitizados, consulte ICertConfig::GetConfig. |
|
Nome higienizado para a AC, abreviado e contendo um valor de hash para garantir a exclusividade. |
[in] PropertyType
Especifica o tipo de propriedade. O tipo pode ser um dos seguintes.
Valor | Significado |
---|---|
|
Dados longos assinados |
|
Data/hora |
|
Dados binários |
|
Dados de cadeia de caracteres Unicode |
[out] pvarPropertyValue
Um ponteiro para um VARIANT que conterá o valor da propriedade. O valor retornado é codificado como um BSTR. Use a função SysStringByteLen para recuperar o comprimento do BSTR. O BLOB binário é armazenado como um certificado X.509 codificado em Distinguished Encoding Rules.
Valor retornado
C++
Se o método for bem-sucedido, o método retornará S_OK.Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.
VB
O valor retornado é o valor da propriedade solicitada.Comentários
Você deve chamar ICertServerExit::SetContext antes de usar esse método.
Exemplos
BSTR bstrPropName = NULL;
VARIANT varProp;
VariantInit(&varProp);
// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");
// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
PROPTYPE_LONG,
&varProp );
if (FAILED(hr))
{
printf("Failed GetCertificateProperty [%x]\n", hr);
goto error;
}
else
{
// Successfully retrieved property; use varProp as needed.
// ...
}
// Done processing.
if (NULL != bstrPropName)
SysFreeString(bstrPropName);
VariantClear(&varProp);
Requisitos
Cliente mínimo com suporte | Nenhum compatível |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | certif.h (inclua Certsrv.h) |
Biblioteca | Certidl.lib |
DLL | Certcli.dll |