| ||||
| ||||
Есть проблема с хранением сертификатов в файловом хранилище. Открываю хранилище через CertOpenStore Перебираю все сертификаты через CertEnumCertificatesInStore - вижу что сертификат с заданным серийным номером существует. Пытаюсь проверить подпись сделанную этим сертификатом. Делаю так: CryptMsgOpenToDecode(CMSG_DETACHED_FLAG) для сообщения CryptMsgUpdate для подписи Достаю ссылку на сертификат CryptMsgGetParam(CMSG_SIGNER_CERT_INFO_PARAM) и наконец пытаюсь найти этот сертификат в моем хранилище CertGetSubjectCertificateFromStore Возвращается ошибка - E_NOT_FOUND. Хотя когда я смотрю какой именно сертификат ищется - в pSignerCertInfo после getparam - вижу точно такой-же серийный номер как и при переборе сертификатов. Т.е. вроде сертификат в хранилище есть, но функция находить его отказывается. В чем может быть проблема ? Спасибо. | ||||
Ответы: | ||||
| ||||
Попробуйте использовать функцию CertFindCertificateInStore(...,CERT_FIND_SUBJECT_CERT,...) | ||||
| ||||
А издатели у них тоже одинаковые? | ||||
| ||||
да, издатели тоже одинаковые. Это один и тот-же сертификат - я на нем тестируюсь. | ||||
| ||||
Тогда сложно сказать, должно работать... а код можно глянуть? | ||||