Проверка сертификата на отозванность

Тема в разделе "WASM.CRYPTO", создана пользователем Keva, 20 мар 2007.

  1. Keva

    Keva New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    130
    Как проверять отозван ли сертификат или нет?
     
  2. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    MSDN + форум на cryptopro.ru

    Я так проверяю валидность на дату
    function TCert.IsValidOnDate(date: TDateTime): Boolean;
    var ft: TFileTime;
    begin
    ft := DateTimeToFileTime(date);
    result := CertVerifyTimeValidity(Addr(ft), FCert.pCertInfo) = 0;
    end;

    А уж со списками CRL сам разбирайся, у меня еще руки не дошли
     
  3. _Ursus_

    _Ursus_ New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    4
    "Валидность на дату" - это ж не отозванность жэ...
    Можно вызвать функцию CertGetCertificateChain с флагом CERT_CHAIN_REVOCATION_CHECK_CHAIN
     
  4. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    _Ursus_
    да я в курсе, собственно. Написал же про списки CRL
     
  5. Keva

    Keva New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    130
    Вот так это делается:
    Код (Text):
    1. CertFindCertificateInCRL(
    2.                 pSignerCert,
    3.                 pCRLContext,
    4.                 NULL,
    5.                 NULL,
    6.                 &ppCrlEntry);
    7.         if(ppCrlEntry)
    8.         {
    9.                 ShowMessage("Сертификат отозван");
    10.                 break;
    11.         }