Мой код:
function OCSP_Verify(pParam : POINTER):dword; stdcall;
var cert:WideString;
begin
//---если проверка годности прошла, проверяем по OCSP
OCSP_frm.redt_data.Lines.Add('Системная проверка окончена.');
OCSP_frm.redt_data.Lines.Add('');
OCSP_frm.redt_data.Lines.Add('Начинается проверка OCSP. Пожалуйста подождите...');
try
cert := IolaCOM.ExportCertificate(form1.selectkey_combo.Text, CF_OUT_BASE64);
iolaCOM.ValidType := CC_USE_OCSP_ONLY;
iolaCOM.OcspUrl := 'http://ocsp.pki.kz:80';
//try
if iolaCOM.ValidateDoc(cert, now)=true then
begin
OCSP_frm.redt_data.Lines.Add('OCSP: Cертификат успешно подтвержден НУЦ РК');
St:='8756214';
OCSP_frm.close_btn.Caption:= 'Продолжить';
end;
finally
OCSP_frm.redt_data.Lines.Add(IolaCOM.GetLastErrorString);
end;
PulseEvent(Cardinal(pParam^));
end;
Я использую OCSP для проверки валидности сертификата. При просроченных сертификатах - дальше проверки дело не заходит, но как только поменяешь системную дату назад (на время действия сертификата), то проверка как ни странно проходит на ура!
используемый ключ: "...\SDK_KNCA_2014-11-05\test certificates\Просроченные\Физ.лиц.действ\RSA_99976127425c59b1b7d7a536d42613edc4d198a5"
Проверьте самостоятельно, если не верите. Пример моей программы в соседней теме "Подписывание файлов в XML"
И кстати, что на счет проверки сертификационного пути? Она автоматически проходит по ocsp или ее необходимо выполнить самостоятельно в IolaCOM??