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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline chainik  
#1 Оставлено : 18 июля 2014 г. 11:39:04(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Помогите пожалуйста. Что-то непонимаю.Brick wall
Собственно вопрос в теме.
Почему отделенная подпись сделанная с помощью browser plagin выглядит закодированной в base64?
Как можно на это повлиять?
Подписываю так
var CADES_BES = 1;
var CADESCOM_BASE64_TO_BINARY=1;
var CADESCOM_STRING_TO_UCS2LE=0;

if (txtDataToSign)
{
// Даные на подпись ввели
oSignedData.Content = txtDataToSign;
oSigner.Options = 1; //CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN=1
try {
var sSignedData = oSignedData.SignCades(oSigner, CADES_BES, true); //отделенная подпись
}
catch (e) {
alert("Не удалось создать подпись из-за ошибки: " + GetErrorMessage(e));
return;
}
document.getElementById(SignId).value = sSignedData;
} else { alert("Set data to Sign"); }

результат в sSignedData
подпись, похоже закодированная в base64
Offline chainik  
#2 Оставлено : 23 июля 2014 г. 10:03:55(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Ответов нет потому видимо что ответ очевиден. В base64 для нормальной передачи через Инет.
Тогда вопрос видоизменяется.
Какая кодировка получается после раскодирования подписи из base64?
windows-1251?

Отредактировано пользователем 23 июля 2014 г. 10:18:06(UTC)  | Причина: Не указана

Offline chainik  
#3 Оставлено : 25 июля 2014 г. 1:52:50(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Продолжаем самоотвечать на собственные чайниковские вопросы:
фрагменты русского текста из сертификата после декодирования из base64 в подписи в utf-8.
Зачем мне это сам теперь не знаю. Казалось нужно так как не могу понять почему подпись сделанная плагином
не проверяется, а сделаная cryptcp.exe поверяется.
Следующий вопрос чайника по той-же причине:
А почему в варианте подписи CADES_BES сделанной плагином нет signing-time? И как время туда воткнуть?

Отредактировано пользователем 25 июля 2014 г. 1:53:27(UTC)  | Причина: Не указана

Offline chainik  
#4 Оставлено : 25 июля 2014 г. 2:00:15(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
А вот почему (надо было посмотреть соседние примерчики)

var CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;

var oSigningTimeAttr = CreateObject("CADESCOM.CPAttribute");
oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
var oTimeNow = new Date();
oSigningTimeAttr.Value = ConvertDate(oTimeNow);


var oSigner = CreateObject("CAdESCOM.CPSigner");
oSigner.Certificate = oCertificate;
oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
Offline Андрей Писарев  
#5 Оставлено : 25 июля 2014 г. 2:23:29(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,762
Мужчина
Российская Федерация

Сказал «Спасибо»: 579 раз
Поблагодарили: 2307 раз в 1807 постах
Если кто-то будет искать - ссылка на пример в CPDN Добавление подписанных атрибутов, работа с датами
Техническую поддержку оказываем тут
Наша база знаний
Offline chainik  
#6 Оставлено : 25 июля 2014 г. 12:10:07(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Странно вот так подпись создается:
var oTimeNow = new Date();
oSigningTimeAttr.Value = "";

а так нет:

var oTimeNow = new Date();
oSigningTimeAttr.Value = ConvertDate(oTimeNow);
пишет ошибку : failed to create CAdESCOM.CPAttribute:-2146823279
Offline chainik  
#7 Оставлено : 25 июля 2014 г. 12:31:39(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Internet Explorer 11
alert-ы в нижеразмещенной функции показывают одинаковую строку.
Может в этом вопрос?
function ConvertDate(date) {
alert(date);
alert(date.getVarDate());
switch (navigator.appName) {
case "Microsoft Internet Explorer":
return date.getVarDate();
default:
return date;
}
}
...
Не в этом. А в том что IE11 прикидывается что он уже не тот.
В общем надо ConvertDate доработать для различения IE11.

Отредактировано пользователем 26 июля 2014 г. 1:25:20(UTC)  | Причина: Не указана

Offline chainik  
#8 Оставлено : 5 августа 2014 г. 11:37:07(UTC)
chainik

Статус: Участник

Группы: Участники
Зарегистрирован: 16.07.2014(UTC)
Сообщений: 16
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Еще долго промучался с вот этим:
Загружал клиентский файл в textarea через
...
var fl = new FileReader();
fl.onload = ( function(theFile ) {
return function(e) {
document.getElementById("idClientFile").innerHTML= e.target.result ;
};})(f);
fl.readAsText(f);
...
и потом создавал отделенную подпись.
Никак при этом не мог добится проверки этой подписи.
Похоже IE съедает то-ли переводы строки то-ли еще что, так пока до конца не понял.
Одним словом подписывается не исходный файл а нечто иное.

Решил пока вопрос тем что стал загружать файл сразу в base64

fl.onload = ( function(theFile ) {
return function(e) {
document.getElementById("idClientFile").innerHTML = e.target.result.replace("data:text/xml;base64,","");
};})(f);
fl.readAsDataURL(f);
Так все работает и подпись проверяется сторонним приложением.

Отредактировано пользователем 6 августа 2014 г. 0:17:47(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#9 Оставлено : 5 августа 2014 г. 12:37:18(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
Похоже IE сьедает то-ли переводы строки то-ли еще что, так пока до конца не понял.
Одним словом подписывается не исходный файл а нечто иное.

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