Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Delphi. Получить данные из файлов *.cer *.crt

Автор: fankhm
Дата сообщения: 12.04.2011 17:19
Доброго времени суток.

Необходимо в программе (разрабатывается в Delphi7) сделать вычитку данных из файлов сертификатов (*.crt, *.cer).
Данные :
- Версия
- Серийный номер
- Алгоритм подписи
- Поставщик
- Действителен с
- Действителен по
- Субъект
... и т.д.

То есть ту информацию, что выдаётся в окне "Сертификат" в трёх закладках при открытии в Windows вышеуказанного типа фалов

Просто вычитать данные из имеющихся файлов сертификатов.

"Копал" инет - везде только как подписать. Саму вычитку или описание формата файла (что и как в нём храниться) не нашёл

Добавлено:
вот такие данные надо вычитать:

Автор: Molniev
Дата сообщения: 16.04.2011 18:24
Все что вы видите на скриншоте и многое другое делаеться так: Cryptography Functions. Голова и/или перевотчик для ознакомления и вауля.
Единственная сложность - у майкрософта эти вещи для Си. Так что для каких то функций у вас могут отсутствовать заголовочные файлы - придеться либо составлять самостоятельно либо искать.
Начинать скорей всего стоит с CertCreateContext, CertCreateCertificateContext, CertEnumCertificateContextProperties.
Автор: fankhm
Дата сообщения: 18.04.2011 16:20
Спасибо. Буду пробовать разобраться...
Автор: Sota
Дата сообщения: 25.10.2011 13:34
Описания криптофункций можно использовать из проекта JEDI
http://sourceforge.net/projects/jedi-apilib/files/

Конкретно это JwaWinCrypt.

Но надо внимательно сравнивать объявления хотя бы с МСДН (а лучше из последней версии Visual Studio взять WinCrypt.h и с ним сверяться), т.к. в JwaWinCrypt есть ошибки.
Автор: fankhm
Дата сообщения: 25.10.2011 13:41
Спасибо. Пока ничего не получилось, но особо не прикладывался к решению - доделывал другие части проекта. Скоро буду вплотную приступать к этой части - разбор сертификатов. Посмотрю, что есть в JEDY по этому поводу.
Автор: Sota
Дата сообщения: 25.10.2011 16:28
В JEDI только объявления функций и структуры есть. А дальше как и что использовать в МСДН читать приходиться.

В любом случае начинать надо с получения контекста серта. Лучше всего подходит CryptQueryObject, т.к. сама определяет формат данных der (бинарный формат) или PEM (кодированный в base64 с тегами) или просто base64 без тегов (самому руками возни много все варианты перебирать).

А дальше контекст это уже заполненная структура, где часть данных серта уже и декодирована.

Дальше элементы DN или расширения декодируются в CryptDecodeObjectEx.

Цепочки сертов можно самому строить, при условии наличия в сертах расширений SubjectKeyIdentifier и AuthorityKeyIdentifier. В моей системе серты без таких расширений запрещено использовать (в общем-то по RFC они очень рекомендованы к использованию).
Автор: fankhm
Дата сообщения: 25.10.2011 16:33
понял. спасибо ещё раз. на днях попробую
Автор: dsk
Дата сообщения: 01.11.2011 17:23
Можно еще посмотреть в сторону OpenSSL. Посмотрите
http://www.disi.unige.it/person/FerranteM/delphiopenssl/
Я в свое время использовал нечто подобное
Автор: fankhm
Дата сообщения: 01.11.2011 17:36
спасибо

набираюсь данных тема для меня совсем новая, "с наскока" не пошла

Страницы: 1

Предыдущая тема: Распаковка zip-файла с использованием zlib.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.