Método ICertAdmin2::P ublishCRLs (certadm.h)
O método PublishCRLs publica CRLs ( listas de certificados revogados ) para uma AC (autoridade de certificação ). Esse método foi definido pela primeira vez na interface ICertAdmin .
O método PublishCRLs publica uma CRL com base no certificado atual da AC, bem como crls com base em todos os certificados de AC que foram renovados e ainda não expiraram.
Sintaxe
HRESULT PublishCRLs(
[in] const BSTR strConfig,
[in] DATE Date,
[in] LONG CRLFlags
);
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 autoridade de certificação, conforme inserido durante a instalação dos Serviços de Certificados. Para obter informações sobre o nome da cadeia de caracteres de configuração, consulte ICertConfig.
[in] Date
Especifica o próximo valor de atualização da CRL no horário GMT. Se Date for diferente de zero, o próximo valor de atualização para a CRL será Date, sujeito a limites de arredondamento ou de teto impostos pelos Serviços de Certificados. Se Date for zero, o próximo valor de atualização da CRL será calculado a partir do período de publicação de CRL padrão.
[in] CRLFlags
Valor que especifica as opções de publicação de CRL. Esse valor pode ser uma combinação bit a bit dos sinalizadores a seguir.
Retornar valor
Nenhum
Comentários
Para determinar se uma AC publicou com êxito CRLs base e delta, chame ICertAdmin2::GetCAProperty com os identificadores de propriedade CR_PROP_BASECRLPUBLISHSTATUS e CR_PROP_DELTACRLPUBLISHSTATUS, respectivamente.
Exemplos
O exemplo a seguir mostra a publicação de CRLs.
DATE ExpDate; // CRL expiration date.
SYSTEMTIME st;
BSTR bstrCA = NULL;
// Set the CRL expiration date to noon, July 1, 2001.
// Zero out values first (avoids setting minutes,
// seconds, and so on).
memset(&st, 0, sizeof(SYSTEMTIME));
st.wYear = 2001;
st.wMonth = 7; // July
st.wDay = 1; // first day of month
st.wHour = 12; // noon
// Place the date in required format.
if (!SystemTimeToVariantTime(&st, &ExpDate))
{
printf("Unable to convert time\n");
goto error;
}
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Memory allocation failed\n");
goto error;
}
// Publish the CRL.
// pCertAdmin is a previously instantiated ICertAdmin object.
hr = pCertAdmin2->PublishCRLs(bstrCA,
ExpDate,
CA_CRL_BASE);
if (FAILED(hr))
{
printf("Failed PublishCRLs [%x]\n", hr);
goto error;
}
else
printf("PublishCRLs succeeded\n");
// Done.
error:
// Free resources.
if (bstrCA)
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 |