Статус: Новичок
Группы: Участники
Зарегистрирован: 11.11.2018(UTC) Сообщений: 2
|
Адаптирую под Linux программу написанную для Windows. На Windows программа использует CryptoAPI, под Linux решил использовать CAPILite. Под Linux и CAPILite не срабатывает код для добавления второй подписи. Создание одиночной подписи на используемом сертификате срабатывает. Подписи используются отсоединенные. Применяю следующий алгоритм для добавления второй отсоединенной подписи. CryptSignMessage - создаем вторую отсоединенную подпись CryptMsgOpenToDecode - открываем сообщение для второй подписи CryptMsgUpdate - добавляем в сообщение BLOB со второй подписью CryptMsgGetParam - извлекаем из сообщения структуру CMSG_CMS_SIGNER_INFO со второй подписью CryptMsgOpenToDecode — открываем другое сообщение с первой исходной подписью CryptMsgUpdate - добавляем в сообщение BLOB с первой исходной подписью CryptMsgControl - добавляем в сообщение с первой исходной подписью структуру CMSG_CMS_SIGNER_INFO со второй подписью На этом этапе выдается ошибка 80091004 «Invalid cryptographic message type». На Windows и CryptoAPI код работает, а под Linux и CAPILite — нет. Пробовал также способ добавления подписи описанный тут https://www.cryptopro.ru...ts&m=38007#post38007Тоже самое на Windows и CryptoAPI код работает, а под Linux и CAPILite — нет. Дистрибутив Linux: AltLinux рабочая станция 8.2 32-бит. КриптоПРО 5.0 последнее скачано с сайта. В чем может быть причина сбоя выполнения кода на Linux и CAPILite?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,260
Сказал(а) «Спасибо»: 21 раз Поблагодарили: 442 раз в 322 постах
|
На unix мы пока не поддерживаем CryptMsgControl(CMSG_CTRL_ADD_CMS_SIGNER_INFO). Точно работает такой сценарий: CryptMsgOpenToDecode: открываем сообщение с первой отсоединённой подписью CryptMsgUpdate: данные с первой подписью CryptMsgUpdate: данные исходного сообщения CryptMsgControl(CMSG_CTRL_ADD_SIGNER): добавляем вторую подпись CryptMsgGetParam(CMSG_ENCODED_MESSAGE): получаем сообщение с двумя подписями
У этого подхода есть ограничение: нельзя добавить подпись, если среди подписей исходного сообщения нет ни одной с совпадающим алгоритмом хэширования. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.11.2018(UTC) Сообщений: 2
|
Не понял про второй вызов CryptMsgUpdate: Автор: Русев Андрей CryptMsgUpdate: данные исходного сообщения Что тут имелось ввиду? Вообще добавление второй подпись при помощи CryptMsgControl(CMSG_CTRL_ADD_SIGNER) описано, как я отмечал, здесь: https://www.cryptopro.ru...s&m=38007#post38007.На Windows и CryptoAPI данный код отрабатывает нормально, подписи после этого проверяются корректно. А вот на Linux и CAPILite код отрабатывает без ошибок, зато при последующей проверке добавленная вторая подпись не проходит проверку. Утилита cptools пишет ошибку 0x80090006: Неправильная подпись. Хотя отпечаток выводит, имя подписанта тоже. Можно поподробней о рабочем варианте добавления второй подписи для Linux и CAPILite?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,260
Сказал(а) «Спасибо»: 21 раз Поблагодарили: 442 раз в 322 постах
|
"данные исходного сообщения" - исходный текст. Рабочего варианта для CAPILite нет, я об этом сразу написал. |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,260
Сказал(а) «Спасибо»: 21 раз Поблагодарили: 442 раз в 322 постах
|
Начиная с 2019-09-24 КриптоПро CSP 4.0.9971 Copernicus и 2019-12-04 КриптоПро CSP 5.0.11635 Golem поддержка CryptMsgControl(CMSG_CTRL_ADD_SIGNER) есть и в CAPIlite на *nix (см. CPCSP-9673). |
|
1 пользователь поблагодарил Русев Андрей за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close