| ||||
| ||||
Подскажите пожалуйста что такое X.509 и с чем его едят. Надо написать просмотрщик на С++ для сертификатов в формате Х.509 (если бредово сформировал вопрос, то извините пока только разбираюсь с понятиями). С чего начать? Заранее спасибо. | ||||
Ответы: | ||||
| ||||
Насчет Х.509 посмотрите здесь http://www.cryptopro.ru/CryptoPro/pki/dig_cert.asp - ссылки на RFC. Начать лучше всего с изучения CryptoAPI, той части которая касается работы с сертификатами. | ||||
| ||||
Спасиба разобрался!!! | ||||
| ||||
Если сертифика расположен в файле, то ничего вам писать не надо, просто щёлкаете по нему и всё. И ещё в винде есть оснастка для просмотра сертификатов в хранилищах. | ||||
| ||||
Для того чтобы перебрать весь состав сертификата (версия, серийный номер и т.д.) нужно обращаться к полям структуры CERT_INFO: CERT_INFO pCertContext; ... pCertContext->pCertInfo->dwVersion; pCertContext->pCertInfo->SerialNumber; pCertContext->pCertInfo->SignatureAlgorithm; а потом самому доставть оттуда данные или есть более продвинутые способы (типа GetCertVersion(), GetCertSerialNumber())? | ||||
| ||||
Есть но не для всех. Субъекта или издателя получить можно, а вот версию или номер - нет. | ||||
| ||||
Запустите MSDN и введите следующий URL: ms-help://MS.MSDNQTR.2003JUL.1033/wcecryp2/html/ceconEncodingandDecodingaCertificateContext.htm. И увидите как выглядит структура CERT_INFO. | ||||
| ||||
Получается если нада взять все возможные значения из сертификата то только руками... А функция CertEnumCertificateContextProperties (или ей подобная) не позволяет это сделать в цикле? | ||||