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

Discussion in 'WASM.CRYPTO' started by Keva, Mar 20, 2007.

  1. Keva

    Keva New Member

    Blog Posts:
    0
    Как проверять отозван ли сертификат или нет?
     
  2. slow

    slow New Member

    Blog Posts:
    0
    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

    Blog Posts:
    0
    "Валидность на дату" - это ж не отозванность жэ...
    Можно вызвать функцию CertGetCertificateChain с флагом CERT_CHAIN_REVOCATION_CHECK_CHAIN
     
  4. slow

    slow New Member

    Blog Posts:
    0
    _Ursus_
    да я в курсе, собственно. Написал же про списки CRL
     
  5. Keva

    Keva New Member

    Blog Posts:
    0
    Вот так это делается:
    Code (Text):
    1. CertFindCertificateInCRL(
    2.                 pSignerCert,
    3.                 pCRLContext,
    4.                 NULL,
    5.                 NULL,
    6.                 &ppCrlEntry);
    7.         if(ppCrlEntry)
    8.         {
    9.                 ShowMessage("Сертификат отозван");
    10.                 break;
    11.         }