Méthode ICertAdmin2 ::P ublishCRLs (certadm.h)

La méthode PublishCRLs publie des listes de révocation de certificats (CRL) pour une autorité de certification . Cette méthode a d’abord été définie dans l’interface ICertAdmin .

La méthode PublishCRLs publie une liste de révocation de certificats basée sur le certificat actuel de l’autorité de certification, ainsi que des listes de révocation de certificats basées sur les certificats d’autorité de certification qui ont été renouvelés et qui n’ont pas encore expiré.

Syntaxe

HRESULT PublishCRLs(
  [in] const BSTR strConfig,
  [in] DATE       Date,
  [in] LONG       CRLFlags
);

Paramètres

[in] strConfig

Représente une chaîne de configuration valide pour l’autorité de certification sous la forme COMPUTERNAME\CANAME, où COMPUTERNAME est le nom réseau du serveur des services de certificats et CANAME est le nom commun de l’autorité de certification, tel qu’entré lors de l’installation des services de certificats. Pour plus d’informations sur le nom de la chaîne de configuration, consultez ICertConfig.

ImportantPublishCRLs n’efface pas le cache interne lorsque la chaîne de configuration est modifiée. Lorsque vous modifiez la chaîne de configuration de l’autorité de certification, vous devez instancier un nouvel objet ICertAdmin et appeler à nouveau cette méthode avec la nouvelle chaîne de configuration.
 

[in] Date

Spécifie la valeur de mise à jour suivante de la liste de révocation de certificats en heure GMT. Si Date n’est pas zéro, la valeur de mise à jour suivante pour la liste de révocation de certificats est Date, sous réserve des limites d’arrondi ou de plafond appliquées par les services de certificats. Si Date est égal à zéro, la valeur de mise à jour suivante de la liste de révocation de certificats est calculée à partir de la période de publication de liste de révocation de certificats par défaut.

[in] CRLFlags

Valeur qui spécifie les options de publication de liste de révocation de certificats. Cette valeur peut être une combinaison au niveau du bit des indicateurs suivants.

Valeur Signification
CA_CRL_BASE
Une liste de révocation de certificats de base est publiée ou la liste de révocation de certificats de base la plus récente est republiée si CA_CRL_REPUBLISH est défini.
CA_CRL_DELTA
Une liste de révocation de certificats delta est publiée, ou la liste de révocation de certificats delta la plus récente est republiée si CA_CRL_REPUBLISH est défini. Notez que si l’autorité de certification n’a pas activé la publication de liste de révocation de certificats delta, l’utilisation de cet indicateur génère une erreur.
CA_CRL_REPUBLISH
La liste de révocation de certificats de base ou delta la plus récente, telle que spécifiée par CA_CRL_BASE ou CA_CRL_DELTA, est republiée. L’autorité de certification ne republiera pas une liste de révocation de certificats sur un point de distribution de liste de révocation de certificats si la liste de révocation de certificats au niveau du point de distribution est déjà la dernière liste de révocation de certificats.

Valeur de retour

None

Remarques

Pour déterminer si une autorité de certification a correctement publié des listes de révocation de certificats de base et delta, appelez ICertAdmin2 ::GetCAProperty avec les identificateurs de propriété CR_PROP_BASECRLPUBLISHSTATUS et CR_PROP_DELTACRLPUBLISHSTATUS, respectivement.

Exemples

L’exemple suivant montre les listes de révocation de certificats de publication.

    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);

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certadm.h (include Certsrv.h)
Bibliothèque Certidl.lib
DLL Certadm.dll