Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
И еще раз день добрый. Думал, что данная тема вопросов у меня не вызовет - ошибался. Тут сразу несколько вопросов возникло:
1) Какую необходимо использовать функцию. 2) Можно ли просмотреть ЭЦП в сертификате. 3) И можно ли узнать, подписан сертификат или нет.
Буду как всегда очень признателен =))
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
1) CryptSignAndEncodeCertificate 2-3) Можно декодировать сертификат с помощью CryptDecodeObject(.., X509_CERT,..) и работать с полученной структурой CERT_SIGNED_CONTENT_INFO. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Хм, я думал, что данная функция только создает и кодирует сертификат, то есть все те поля, которые мы заполняли для CERT_INFO. Подпись сертификата также заполняется через одно из таких полей? Если да, то какое?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Нет, в структуре CERT_INFO нет поля, содержащего подпись сертификата. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Тогда через что? Может еть какой-нибудь примерчик?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Я же написал - через CryptSignAndEncodeCertificate. Пример есть в makecert.c. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Хотел еще раз убедиться, что понял все правильно. Для того, чтобы подписать созданный сертификат с использованием закрытого ключа центра сертификации необходимо: 1) Создать провайдер1 и сгенерировать с его помощью пару ключей. Открытый ключ отдать в структуру CERT_INFO. 2) Создать "временный" провайдер2 и загрузить в него с помощью CryptImportKey секретный ключ центра сертификации. 3) Вызвать CryptSignAndEncodeCertificate для провайдер2. Таким образом у нас должен получиться сертификат с сгенерированным открытым и подписанный при помощи секретного ключа центра сертификации. Надеюсь, что все действительно так, а то я уже почти голову сломал =)) Только вот ещё в функцию CryptCreateHash для создания расширения szOID_SUBJECT_KEY_IDENTIFIER какой провайдер нужно использовать: провайдер1 или провайдер2 ? Отредактировано пользователем 5 ноября 2008 г. 21:18:07(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Сформировав сертификат по способу, описанному постом выше получил сертификат, в котором написано : "Целостность этого сертификата не гарантирована. Возможно он изменен ил поврежден". Что это означает? P.S. Хех, не посмотрел до конца. Написано, что цифровая подпись не действительна. получается, что я так и не подписал этот сертификат так как надо. Как же нужно то =( Отредактировано пользователем 5 ноября 2008 г. 22:13:46(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Если сертификат был подписан ключем ЦС, то и для проверки подписи окну просмотра нужен этот ключ - сертификат ЦС должен быть установлен в соответствующее хранилище. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close