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
Notbefore
Data/Hora
Data de validade do início do certificado
NotAfter
Data/Hora
Data de validade do certificado
PublicKeyAlgorithm
String
OID ( subject key algorithm object identifier )
RawCertificate
Binário
Bytes de certificado brutos
RawPublicKey
Binário
Chave do assunto
RawPublicKeyAlgorithmParameters
Binário
Parâmetros de algoritmo de chave de assunto
RequestID
Long assinado
ID da solicitação interna
SerialNumber
String
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
CAType
long
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

CertCount
long
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.
CertState
long
Estado do certificado de autoridade de certificação. Esse valor pode ser um dos seguintes:
CA_DISP_ERROR: o certificado de autoridade de certificação nunca foi emitido.
CA_DISP_REVOKED: o certificado de autoridade de certificação foi revogado.
CA_DISP_VALID: o certificado de autoridade de certificação ainda é válido.
CA_DISP_INVALID: o certificado de autoridade de certificação expirou.
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.
CertSuffix
String
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.

CRLIndex
long
Í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.

CRLState
long
Estado de CRL. Esse valor pode ser um dos seguintes:
CA_DISP_ERROR: a CRL é gerenciada por outro certificado de AC.
CA_DISP_REVOKED: todos os certificados de AC não expirados que usam a CRL desse certificado de AC foram revogados.
CA_DISP_VALID: o certificado de AC ainda está sendo usado para publicar CRLs conforme necessário.
CA_DISP_INVALID: todos os certificados de autoridade de certificação que usam a CRL desse certificado de autoridade de certificação expiraram.
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.
CRLSuffix
String
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.

fUseDS
long
Indica se a AC usa um serviço de diretório. Esse pode ser um dos seguintes valores:
  • 0=não
  • 1=sim
MachineDNSName
String
Nome DNS do servidor que hospeda a AC.
ModuleRegistryLocation
String
Local do Registro disponível para uso pelo módulo.
RawCACertificate
Binário
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.

RawCRL
Binário
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.

RequesterCAAccess
long
Indica se o solicitante está autorizado a solicitar o certificado. Esse pode ser um dos seguintes valores:
  • 0=não
  • 1=sim
(O snap-in MMC da Autoridade de Certificação pode ser usado para controlar permissões de solicitação de certificado .)
SanitizedCAName
String
Nome higienizado para a AC. Para obter informações sobre nomes de AC sanitizados, consulte ICertConfig::GetConfig.
SanitizedShortName
String
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
PROPTYPE_LONG
Dados longos assinados
PROPTYPE_DATE
Data/hora
PROPTYPE_BINARY
Dados binários
PROPTYPE_STRING
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

Confira também

ICertServerExit

ICertServerExit::SetContext

Propriedades do nome