Método ICertAdmin2::GetCAProperty (certadm.h)

O método GetCAProperty recupera um valor de propriedade para a AC (autoridade de certificação ). Esse método foi definido pela primeira vez na interface ICertAdmin .

Sintaxe

HRESULT GetCAProperty(
  [in]  const BSTR strConfig,
  [in]  LONG       PropId,
  [in]  LONG       PropIndex,
  [in]  LONG       PropType,
  [in]  LONG       Flags,
  [out] VARIANT    *pvarPropertyValue
);

Parâmetros

[in] strConfig

Representa uma cadeia de caracteres de configuração válida para a AC no formato COMPUTERNAME\CANAME, em que COMPUTERNAME é o nome de rede do servidor dos Serviços de Certificados e CANAME é o nome comum da AC, conforme inserido durante a instalação dos Serviços de Certificado. Para obter informações sobre o nome da cadeia de caracteres de configuração, consulte ICertConfig.

GetCAPropertyimportante não limpa o cache interno quando a cadeia de caracteres de configuração é alterada. Ao alterar a cadeia de caracteres de configuração para a AC, você deve instanciar um novo objeto ICertAdmin e chamar esse método novamente com a nova cadeia de caracteres de configuração.
 

[in] PropId

Especifica um dos identificadores de propriedade a seguir.

Valor Significado
CR_PROP_ADVANCEDSERVER
Tipo de dados da propriedade: Long

Especifica se a AC está executando o Servidor Avançado.

CR_PROP_BASECRL
Tipo de dados da propriedade: Binário, indexado

A CRL ( lista de revogação de certificados) completa ou base da AC.

CR_PROP_BASECRLPUBLISHSTATUS
Tipo de dados da propriedade: Long, indexed

O status de publicação de CRL base. Para obter mais detalhes, confira Comentários.

CR_PROP_CABACKWARDCROSSCERT
Tipo de dados da propriedade: Binário, indexado

O certificado cruzado para trás. Um certificado cruzado com versões anteriores é o certificado emitido após a renovação da AC para si mesmo assinado com a nova chave da AC. O certificado cruzado com versões anteriores tem o identificador de chave de autoridade do novo certificado de AUTORIDADE e o identificador de chave de entidade do certificado de AUTORIDADE antigo.

Aplica-se somente a CAs raiz.

CR_PROP_CABACKWARDCROSSCERTSTATE
Tipo de dados da propriedade: Long, indexed

Se o certificado cruzado anterior é válido. Válido apenas para CAs raiz.

CR_PROP_CACERTSTATE
Tipo de dados da propriedade: Long

Estado do certificado de autoridade de certificação. Os valores podem ser:

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
CR_PROP_CACERTSTATUSCODE
Tipo de dados da propriedade: Long, indexed

Status do certificado de AUTORIDADE de Certificação, como UM HRESULT.

CR_PROP_CACERTVERSION
Tipo de dados da propriedade: Long, indexed

Versão do certificado de AUTORIDADE de Certificação, como um DWORD. A palavra de alta ordem é o índice de chave e a palavra de baixa ordem é o índice de certificado de AUTORIDADE.

CR_PROP_CAFORWARDCROSSCERT
Tipo de dados da propriedade: Binário, indexado

O certificado cruzado de encaminhamento. Um certificado cruzado de encaminhamento é um certificado emitido após a renovação da AC para si mesmo assinado com a chave anterior da AC. O certificado cruzado de encaminhamento tem o identificador de chave de autoridade do certificado de AUTORIDADE anterior e o identificador de chave de entidade do novo certificado de AUTORIDADE.

Aplica-se somente a CAs raiz.

CR_PROP_CAFORWARDCROSSCERTSTATE
Tipo de dados da propriedade: Long, indexed

Se o certificado cruzado de encaminhamento é válido. Válido apenas para CAs raiz.

CR_PROP_CANAME
Tipo de dados da propriedade: String

Nome da AC.

CR_PROP_CASIGCERT
Tipo de dados da propriedade: Binário, indexado

Certificado de autenticação de autoridade de certificação.

CR_PROP_CASIGCERTCHAIN
Tipo de dados da propriedade: Binário, indexado

Cadeia de certificados de assinatura da AC.

CR_PROP_CASIGCERTCOUNT
Tipo de dados da propriedade: Long

Número de certificados de assinatura para a AC.

CR_PROP_CASIGCERTCRLCHAIN
Tipo de dados da propriedade: Binário, indexado

A cadeia de CRL de certificado de autenticação da AC.

CR_PROP_CATYPE
Tipo de dados da propriedade: Long

Tipo de AC. Esse pode ser um dos seguintes valores (definidos em Certsrv.h):

  • ENUM_ENTERPRISE_ROOTCA
  • ENUM_ENTERPRISE_SUBCA
  • ENUM_STANDALONE_ROOTCA
  • ENUM_STANDALONE_SUBCA
CR_PROP_CAXCHGCERT
Tipo de dados da propriedade: Binário, indexado

Certificado de troca de autoridade de certificação.

CR_PROP_CAXCHGCERTCHAIN
Tipo de dados da propriedade: Binário, indexado

Cadeia de certificados de troca de autoridade de certificação.

CR_PROP_CAXCHGCERTCOUNT
Tipo de dados da propriedade: Long

Número de certificados de troca para a AC.

CR_PROP_CAXCHGCERTCRLCHAIN
Tipo de dados da propriedade: Binário, indexado

A cadeia de CRL de certificado de troca da AC.

CR_PROP_CERTAIAURLS
Tipo de dados da propriedade: Cadeia de caracteres, indexada

Especifica AS URLs de Acesso às Informações da Autoridade como o tipo de URL solicitado por um cliente.

Windows Server 2003: Não há suporte para esse sinalizador.

CR_PROP_CERTCDPURLS
Tipo de dados da propriedade: String, indexado

Especifica AS URLs do Ponto de Distribuição de CRL como o tipo de URL solicitado por um cliente.

Windows Server 2003: Não há suporte para esse sinalizador.

CR_PROP_CRLSTATE
Tipo de dados da propriedade: Long

Estado da CRL da AC. Os valores podem ser:

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
  • CA_DISP_ERROR
CR_PROP_DELTACRL
Tipo de dados da propriedade: Binário, indexado

A CRL delta da AC.

CR_PROP_DELTACRLPUBLISHSTATUS
Tipo de dados da propriedade: Longo, indexado

A status de publicação de CRL delta. Para obter mais detalhes, confira Comentários.

CR_PROP_DNSNAME
Tipo de dados da propriedade: String

O nome DNS da AC.

CR_PROP_EXITCOUNT
Tipo de dados da propriedade: Long

Número de módulos de saída em uso pela AC.

CR_PROP_EXITDESCRIPTION
Tipo de dados da propriedade: String

Descrição do módulo de saída.

CR_PROP_FILEVERSION
Tipo de dados da propriedade: String

A versão do arquivo dos Serviços de Certificados.

CR_PROP_KRACERT
Tipo de dados da propriedade: Binário, indexado

O certificado KRA (agente de recuperação de chave) da AC.

CR_PROP_KRACERTCOUNT
Tipo de dados da propriedade: Long

Número de certificados KRA para a AC.

CR_PROP_KRACERTSTATE
Tipo de dados da propriedade: Longo, indexado

O estado do certificado do KRA. O valor retornado é um dos seguintes:

  • KRA_DISP_EXPIRED
  • KRA_DISP_NOTFOUND
  • KRA_DISP_REVOKED
  • KRA_DISP_VALID
  • KRA_DISP_UNTRUSTED
  • KRA_DISP_NOTLOADED
  • KRA_DISP_INVALID
CR_PROP_KRACERTUSEDCOUNT
Tipo de dados da propriedade: Long

Número de certificados KRA usados pela AC.

CR_PROP_PARENTCA
Tipo de dados da propriedade: String

O nome da AC pai da AC.

CR_PROP_POLICYDESCRIPTION
Tipo de dados da propriedade: String

A descrição do módulo de política.

CR_PROP_PRODUCTVERSION
Tipo de dados da propriedade: String

A versão do produto na qual o arquivo foi enviado.

CR_PROP_ROLESEPARATIONENABLED
Tipo de dados da propriedade: Long

Valor que especifica se a separação de função está habilitada.

CR_PROP_SANITIZEDCANAME
Tipo de dados da propriedade: String

O nome higienizado da AC. Para obter uma definição de um nome de AC sanitizado, consulte ICertConfig2::GetConfig.

CR_PROP_SANITIZEDCASHORTNAME
Tipo de dados da propriedade: String

O nome curto higienizado da AC. Para obter uma definição de um nome curto de AC sanitizado, consulte ICertConfig2::GetConfig.

CR_PROP_SHAREDFOLDER
Tipo de dados da propriedade: String

O nome do diretório de pasta compartilhada.

CR_PROP_TEMPLATES
Tipo de dados da propriedade: String

Lista de modelos compatíveis com a AC.

[in] PropIndex

Se o parâmetro PropId for indexado, o índice baseado em zero a ser usado ao recuperar o valor da propriedade. Se PropId não for indexado, esse valor será ignorado.

[in] PropType

Especifica o tipo da propriedade, indicado na coluna Meaning da tabela PropId . O tipo pode ser um dos tipos a seguir.

Valor Significado
PROPTYPE_LONG
Dados longos assinados
PROPTYPE_DATE
Data/hora (reservada para uso futuro)
PROPTYPE_BINARY
Dados binários
PROPTYPE_STRING
Dados de cadeia de caracteres Unicode

[in] Flags

Os sinalizadores a seguir podem ser usados para especificar o formato do valor da propriedade retornada; esses sinalizadores têm significado apenas para dados binários (como certificados, cadeias de certificados ou listas de revogação de certificado) e são ignorados de outra forma.

Valor Significado
CV_OUT_BASE64
BASE64 sem BEGIN/END
CV_OUT_BASE64HEADER
BASE64 com BEGIN CERTIFICATE e END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 com BEGIN NEW CERTIFICATE REQUEST E END NEW CERTIFICATE REQUEST
CV_OUT_BASE64X509CRLHEADER
BASE64 com BEGIN X509 CRL e END X509 CRL
CV_OUT_BINARY
Binário
CV_OUT_HEX
Cadeia de caracteres hexadecimal
CV_OUT_HEXADDR
Cadeia de caracteres hexadecimal com endereço/deslocamento
CV_OUT_HEXASCII
Cadeia de caracteres hexadecimal com ASCII
CV_OUT_HEXASCIIADDR
Cadeia de caracteres hexadecimal com ASCII e endereço/deslocamento

[out] pvarPropertyValue

Um ponteiro para um buffer que recebe o valor da propriedade solicitada. É responsabilidade do chamador liberar esse recurso quando terminar chamando VariantClear.

Retornar valor

C++

O valor retornado é um HRESULT. Um valor de S_OK indica que o método foi bem-sucedido.

VB

O valor da propriedade solicitada.

Comentários

Os valores a seguir são retornados quando o identificador de propriedade é CR_PROP_BASECRLPUBLISHSTATUS ou CR_PROP_DELTACRLPUBLISHSTATUS. Esses valores podem ser combinados.

Valor Descrição
CPF_BADURL_ERROR Uma URL não é válida.
CPF_BASE Uma CRL base foi publicada.
CPF_CASTORE_ERROR Um erro de repositório de AC impediu a publicação.
CPF_COMPLETE Uma CRL completa foi publicada.
CPF_DELTA Uma CRL delta foi publicada.
CPF_FILE_ERROR Um erro de arquivo impediu a publicação.
CPF_FTP_ERROR Um erro FTP impediu a publicação.
CPF_HTTP_ERROR Um erro HTTP impediu a publicação.
CPF_LDAP_ERROR Um erro LDAP impediu a publicação.
CPF_MANUAL Uma CRL foi publicada manualmente.
CPF_SHADOW Uma CRL delta vazia foi publicada, juntamente com uma nova CRL BASE.
CPF_SIGNATURE_ERROR Um erro de assinatura impediu a publicação.
 

Para obter um exemplo de recuperação de uma CRL, consulte Recuperando uma lista de revogação de certificado.

Exemplos

O exemplo a seguir mostra a recuperação do certificado de assinatura da AC. O exemplo pressupõe que o ponteiro da interface ICertAdmin2 seja válido.

BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;

bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
    printf("Failed to allocate memory for bstrCA\n");
    exit(1);
}

VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
                                CR_PROP_CASIGCERT,
                                0,
                                PROPTYPE_BINARY,
                                CV_OUT_BASE64HEADER,
                                &var1);
if (FAILED(hr))
{
    printf("Failed GetCAProperty\n");
    SysFreeString(bstrCA);
    exit(1);  // Or other error action.
}

// Use the property as needed.
// ...

// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);

Requisitos

Requisito Valor
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 certadm.h (inclua Certsrv.h)
Biblioteca Certidl.lib
DLL Certadm.dll