14.09.2006 11:10:28проверка сертификата на неотозванность Ответов: 9
Василий
Какой функцией Crypto Api сертификат проверяется на неотозванность (через CRL)?
 
Ответы:
14.09.2006 12:08:02Kirill Sobolev
CertFindCertificateInCRL
14.09.2006 12:54:02Василий
Из тестового УЦ установил CRL.
Делаю следующее:

fStoreContext := fContext := CertOpenStore(CERT_STORE_PROV_SYSTEM,
0,
0,
CERT_STORE_OPEN_EXISTING_FLAG or CERT_STORE_READONLY_FLAG or CERT_SYSTEM_STORE_LOCAL_MACHINE,
fStoreNameW); //fStoreNameW = 'MY'
dwFlags := CERT_STORE_SIGNATURE_FLAG or CERT_STORE_TIME_VALIDITY_FLAG;

pCrlStoreCont := CertGetCRLFromStore(fStoreContext,
pIssuerContext,//контекст сертификата издателя
nil,
@dwFlags);
....
В итоге pCrlStoreCont = nil, т.е CRL не извлекается.В чём может быть проблема?
14.09.2006 14:02:30Василий
GetLastError выдаёт при этом -2146885628
14.09.2006 14:54:47Kirill Sobolev
Либо подходящего CRL нет в этом хранилище, либо он просрочен.
14.09.2006 14:58:01Василий
а CRL устанавливается именно в это хранилище? Как определить что он подходящий и непросроченный?
14.09.2006 15:12:27Василий
Действительно просрочен. Скачиваю сертификат CRL с вашего сайта (http://www.cryptopro.ru/certsrv/certcarc.asp), а он
Действителен до 30 августа 2006 г..Где-нибудь можно взять поновее?
14.09.2006 15:20:38Kirill Sobolev
Если выбор хранилища автоматический, то CRL будет в Current User\CA.
На http://www.cryptopro.ru/certsrv/certcarc.asp по ссылке "Загрузка последнего базового CRL" актуальный, специально сейчас проверил.
15.09.2006 16:29:33Василий
Да сейчас обновил.Всё получилось.Спасибо.
16.03.2007 13:57:47Владимир
А реализована ли функция CertFindCertificateInCRL в CAPI Lite под Unix? Что-то не могу найти ее в мануале...