| ||||
| ||||
Какой функцией Crypto Api сертификат проверяется на неотозванность (через CRL)? | ||||
Ответы: | ||||
| ||||
CertFindCertificateInCRL | ||||
| ||||
Из тестового УЦ установил 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 не извлекается.В чём может быть проблема? | ||||
| ||||
GetLastError выдаёт при этом -2146885628 | ||||
| ||||
Либо подходящего CRL нет в этом хранилище, либо он просрочен. | ||||
| ||||
а CRL устанавливается именно в это хранилище? Как определить что он подходящий и непросроченный? | ||||
| ||||
Действительно просрочен. Скачиваю сертификат CRL с вашего сайта (http://www.cryptopro.ru/certsrv/certcarc.asp), а он Действителен до 30 августа 2006 г..Где-нибудь можно взять поновее? | ||||
| ||||
Если выбор хранилища автоматический, то CRL будет в Current User\CA. На http://www.cryptopro.ru/certsrv/certcarc.asp по ссылке "Загрузка последнего базового CRL" актуальный, специально сейчас проверил. | ||||
| ||||
Да сейчас обновил.Всё получилось.Спасибо. | ||||
| ||||
А реализована ли функция CertFindCertificateInCRL в CAPI Lite под Unix? Что-то не могу найти ее в мануале... | ||||