Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Не проверяется подпись от CAPICOM (Javascript)
Статус: Активный участник
Группы: Участники
Зарегистрирован: 02.07.2012(UTC) Сообщений: 58 Откуда: russia
Сказал(а) «Спасибо»: 1 раз
|
Я понимаю, что у меня проблема которая описана статье - http://www.cryptopro.ru/.../capicom-i-kriptopro-csp . Я уже сверял подписи и вижу какой именно текст подписывается.. я не могу понять, как это исправить. Т.е. я вижу xml Код:<?xml version="1.0" encoding="UTF-8?>
<ROOT>
<node1 atr="1">Value 1</node1>
<node2 atr="2">Value 2</node2>
</ROOT>
а на подпись идет Код: < ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 ? >
< R O O T >
< n o d e 1 a t r = " 1 " > V a l u e 1 < / n o d e 1 >
< n o d e 2 a t r = " 2 " > V a l u e 2 < / n o d e 2 >
< / R O O T >
При этом кириллица пропадает вовсе.. Отредактировано пользователем 11 января 2013 г. 15:35:54(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Я уже сверял подписи и вижу какой именно текст подписывается.. я не могу понять, как это исправить. Javascript работает исключительно с юникодными строками. Вы передаете для подписи юникодную строку. CAPICOM успешно подписывает юникодную строку. Что именно из этого Вы хотите исправить? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 02.07.2012(UTC) Сообщений: 58 Откуда: russia
Сказал(а) «Спасибо»: 1 раз
|
Цитата:Что именно из этого Вы хотите исправить? У меня получается, что сохраняемый документ не соответствует подписанному документу в юникоде. Содержание документа после подписи передается post'ом на php скрипт и сохраняется в файл. Как сохранить то, что подписал CAPICOM? вернее тот же текст.. не знаю как правильно выразиться.. Отредактировано пользователем 11 января 2013 г. 16:09:13(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Содержание документа после подписи передается post'ом на php скрипт и сохраняется в файл. Как сохранить то, что подписал CAPICOM? вернее тот же текст.. не знаю как правильно выразиться.. Преобразовываете в юникод и сохраняете, в 2008 это например умеет делать wordpad. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,518   Сказал «Спасибо»: 555 раз Поблагодарили: 2252 раз в 1757 постах
|
Автор: gagarin  Цитата:Что именно из этого Вы хотите исправить? У меня получается, что сохраняемый документ не соответствует подписанному документу в юникоде. Содержание документа после подписи передается post'ом на php скрипт и сохраняется в файл.Как сохранить то, что подписал CAPICOM? вернее тот же текст.. не знаю как правильно выразиться.. Выложите здесь пример текстового файла, который сохраняет php-скрипт на сервере. Кодировка UTF-8? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 02.07.2012(UTC) Сообщений: 58 Откуда: russia
Сказал(а) «Спасибо»: 1 раз
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:После подписи я шлю методом POST то, что подписал CAPICOM. Делаем detect_encoding(POST) и видим ASCII. Откуда??? Если Javascript работает исключительно с юникодными строками??
Именно в этом у меня проблема. Подписывается не юникод. Цитата:Выложите присоединенную и неприсоединенную подпись. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 02.07.2012(UTC) Сообщений: 58 Откуда: russia
Сказал(а) «Спасибо»: 1 раз
|
Большое спасибо всем кто откликнулся, проблема решена!
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,518   Сказал «Спасибо»: 555 раз Поблагодарили: 2252 раз в 1757 постах
|
Автор: gagarin  Большое спасибо всем кто откликнулся, проблема решена! Напишите решение вашей проблемы здесь для следующего поколения... |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 02.07.2012(UTC) Сообщений: 58 Откуда: russia
Сказал(а) «Спасибо»: 1 раз
|
Проект строится на PHP фреймворке. Все скрипты в кодировке UTF-8. После передачи POST'ом на контроллер, где то в недрах фреймворка идет непонятное преобразование ASCII но возвращает в UTF-8. Мое решение такое: К функции подписи добавляем "CAPICOM.Utilities" Код://после
SignedData.Content = content;
// подключаем "CAPICOM.Utilities"
var utils = new ActiveXObject("CAPICOM.Utilities");
//и конвертируем в Base64 что подписывает CAPICOM (ASCII)
var contentBase64 = utils.Base64Encode(content);
и полученный "contentBase64" отправляем POST'ом вместе с подписью. Далее в php скрипте который принимает POST данные... Код://Декодируем из Base64 без каких либо потерь
$data = base64_decode($_POST["contentBase64"]);
// и сохраняем в файл вашей функцией сохранения . В моем случае так
file_put_contents($file, iconv("UTF-8", "ASCII", $data));
P.S. Интересно, не могу вставить 2 блока кода в разных цветовых схемах (JavaScript и PHP). По одной вставляется. Отредактировано пользователем 14 января 2013 г. 15:50:41(UTC)
| Причина: Не указана
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Не проверяется подпись от CAPICOM (Javascript)
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close