Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Подпись неверна при подписание через CAPICOM в .Net при проверке далее через браузер
Статус: Активный участник
Группы: Участники
Зарегистрирован: 20.10.2011(UTC) Сообщений: 45 Откуда: Moscow
Сказал(а) «Спасибо»: 7 раз
|
Добились того, что подпись создаваемая в .Net успешно проходит проверку в csptest. Интересно другое, подпись созданная через браузер средствами Capicom проверку в csptest не проходит, но успешно проходит проверку в том же браузере средствами Capicom.
Как такое может быть? Куда нам копать?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 945  Откуда: Крипто-Про Поблагодарили: 117 раз в 106 постах
|
|
 1 пользователь поблагодарил Новожилова Елена за этот пост.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.07.2013(UTC) Сообщений: 4  Откуда: Санкт-Петербург
|
Столкнулся с такой же проблемой. Для CAPICOM и .NET нашёл решение вот здесь: http://www.codeproject.c...igital-Signatures-with-AОднако оно меня не устроило в связи с тем, что данные необходимо подписывать в браузере. Поэтому попытался использовать "КриптоПро ЭЦП Browser plug-in" http://www.cryptopro.ru/products/cades/plugin var oSigner = CreateObject("CAdESCOM.CPSigner"); oSigner.Certificate = certificate.Item(1); oSigner.TSAAddress = "http://cryptopro.ru/tsp/"; var oSignedData = CreateObject("CAdESCOM.CadesSignedData"); oSignedData.Content = dataToSign; try { oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY; sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true, CAPICOM_ENCODE_BASE64); } catch (err) { alert("Failed to create signature. Error: " + GetErrorMessage(err)); return; } oStore.Close(); return sSignedMessage; В качестве данных пытался передавать и сам XML и Base64(XML), однако результат один: подпись Крипто-Армом не валидируется.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.07.2013(UTC) Сообщений: 4  Откуда: Санкт-Петербург
|
Скажите хотя бы, правильно ли я понимаю, что исходный XML мне необходимо кодировать в Base64 (получать строку, содержащую Base64 от исходного XML). и в таком виде его запихивать в oSignedData.Content;
а плагин внутри вынет из Base64 исходный XML и получит для исходного XML подпись (если ContentEncoding выставить в CADESCOM_BASE64_TO_BINARY).
Если правильно, то ещё одни вопрос: строка содержащая Base64 может быть в любой кодировке? UTF-8 годится?
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.07.2013(UTC) Сообщений: 4  Откуда: Санкт-Петербург
|
Да, я всё правильно понимал, получилось.
очень важным оказался порядок строк
0)oSignedData.Content = dataToSign; 1 oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
присвоение свойства Content судя по всему сбрасывает значение ContentEncoding
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.07.2013(UTC) Сообщений: 4  Откуда: Санкт-Петербург
|
простите, наоборот
почему так - не знаю, даже предположить не могу
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
|
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Подпись неверна при подписание через CAPICOM в .Net при проверке далее через браузер
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close