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.

PublishCRLs importantes não limpam 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] 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.

Valor Significado
CA_CRL_BASE
Uma CRL base será publicada ou a CRL base mais recente será republicada se CA_CRL_REPUBLISH estiver definida.
CA_CRL_DELTA
Uma CRL delta será publicada ou a CRL delta mais recente será republicada se CA_CRL_REPUBLISH estiver definida. Observe que, se a AC não tiver habilitado a publicação de CRL delta, o uso desse sinalizador resultará em um erro.
CA_CRL_REPUBLISH
A CRL base ou delta mais recente, conforme especificado por CA_CRL_BASE ou CA_CRL_DELTA, é republicada. A AC não publicará novamente uma CRL em um ponto de distribuição de CRL se a CRL no ponto de distribuição já for a CRL mais recente.

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