Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Костя  
#1 Оставлено : 4 ноября 2009 г. 13:38:38(UTC)
Костя

Статус: Новичок

Группы: Участники
Зарегистрирован: 04.11.2009(UTC)
Сообщений: 1
Откуда: хабаровск

Существует какой-нибудь способ преобразования присоединенной ЭЦП в содержимое подписанного документа и отсоединенную ЭЦП?
Offline Sergey M. Murugov  
#2 Оставлено : 5 ноября 2009 г. 17:13:40(UTC)
Sergey M. Murugov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.06.2008(UTC)
Сообщений: 230
Откуда: Москва

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 40 раз в 28 постах
Конечно существует, следует просто иметь средства работы с ASN.1 там даже работа с криптографией не потребуется.
Offline pavelvn  
#3 Оставлено : 5 ноября 2009 г. 18:59:44(UTC)
pavelvn

Статус: Эксперт

Группы: Администраторы, Участники
Зарегистрирован: 01.12.2008(UTC)
Сообщений: 54
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 14 раз в 9 постах
Да, в принципе это возможно, но простого способа нет.

Можно посмотреть в сторону CryptMsgControl(CMSG_CTRL_ADD_CMS_SIGNER_INFO), MSDN утверждает, что так можно добавлять к сообщению готовую подпись. То есть, надо будет создать отсоединённое CMS сообщение, а потом добавить к нему готовую подпись из старого сообщения. Отсоединённое CMS сообщение, возможно, придётся подписать какой-нибудь временной подписью, с использованием того же алгоритма хеширования (так как CMS хранит алгоритмы хеширования, кроме SignerInfo, ещё и в отдельном поле). После добавления настоящей подписи, временную можно будет удалить вызовом CryptMsgControl(CMSG_CTRL_DEL_SIGNER).

Еще можно попробовать декодировать сообщение с присоединённой ЭЦП с помощью CryptDecodeObject(X509_SEQUENCE_OF_ANY), добраться до вложенных данных в encapContentInfo, удалить это поле, и закодировать обратно с помощью CryptEncodeObject(X509_SEQUENCE_OF_ANY).

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.