27.08.2004 12:21:28Файловое хранилище сертификатов Ответов: 4
Михаил
Есть проблема с хранением сертификатов в файловом хранилище.
Открываю хранилище через CertOpenStore
Перебираю все сертификаты через CertEnumCertificatesInStore - вижу что сертификат с заданным серийным номером существует.
Пытаюсь проверить подпись сделанную этим сертификатом. Делаю так:
CryptMsgOpenToDecode(CMSG_DETACHED_FLAG) для сообщения
CryptMsgUpdate для подписи
Достаю ссылку на сертификат
CryptMsgGetParam(CMSG_SIGNER_CERT_INFO_PARAM)
и наконец пытаюсь найти этот сертификат в моем хранилище
CertGetSubjectCertificateFromStore
Возвращается ошибка - E_NOT_FOUND.
Хотя когда я смотрю какой именно сертификат ищется - в pSignerCertInfo после getparam - вижу точно такой-же серийный номер как и при переборе сертификатов. Т.е. вроде сертификат в хранилище есть, но функция находить его отказывается. В чем может быть проблема ?
Спасибо.
 
Ответы:
27.08.2004 13:12:06Александр
Попробуйте использовать функцию CertFindCertificateInStore(...,CERT_FIND_SUBJECT_CERT,...)
27.08.2004 14:54:35Kirill Sobolev
А издатели у них тоже одинаковые?
27.08.2004 18:24:16Михаил
да, издатели тоже одинаковые. Это один и тот-же сертификат - я на нем тестируюсь.
30.08.2004 17:22:52Kirill Sobolev
Тогда сложно сказать, должно работать... а код можно глянуть?