(2019-10-15 12:51:43 отредактировано Binger)

Как проверить валидность сертификата C++?

Здравствуйте. Подскажите, пожалуйста, как можно проверить действителен ли сертификат на токене или нет? Например, зная CKA_ID пары сертификата, как я могу проверить его валидность? Можно ли в конечном итоге получить код статуса (Validity number)? Может хотя бы укажите на нужный пример из SDK. Я просмотрел все примеры и не нашёл ничего подобного. Спасибо.

Re: Как проверить валидность сертификата C++?

Здравствуйте, Binger.

Непонятно что в данном контексте является "Validity number", уточните, пожалуйста.
Что именно вы хотите проверять? Что сертификат правильно подписан или построить цепочку доверия+проверить списки отзыва?

(2019-10-15 16:11:47 отредактировано Binger)

Re: Как проверить валидность сертификата C++?

Ксения Шаврова, Validity number или  CertTrustStatus - статус сертификата, который получается путём логического сложения наборов бит указанных констант в WinCrypt.h:
https://forum.rutoken.ru/uploads/images/2019/10/eb7e057c9ea59fd5f675455da5d6e83f.png
Вот это я имел в виду. Скорее всего, я как-то неправильно высказываю, но, надеюсь, вы поняли о чём я) И проверить мне нужно: дата использования, построить цепочки, проверить подписи сертификатов, списки отзыва

Re: Как проверить валидность сертификата C++?

Задача передана разработчикам. Они помогут разобраться. Потребуется немного времени.

Re: Как проверить валидность сертификата C++?

Ксения Шаврова, хорошо. Спасибо.

Re: Как проверить валидность сертификата C++?

Ответ разработчиков:

Для построения цепочки и проверки CRL в windows есть функция CertGetCertificateChain.

Пример по использованию на MSDN.

Если планируется проверять ГОСТ-сертификат, потребуется ГОСТ-криптопровайдер (КриптоПРО, VipNet и т.д.)