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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline petr  
#1 Оставлено : 21 октября 2015 г. 11:51:01(UTC)
petr

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

Группы: Участники
Зарегистрирован: 09.10.2015(UTC)
Сообщений: 10

Добрый день.

Необходимо: создать электронную подпись в формате PKSC#7 detached или attached signature на заявку (байтовое представление данных заявки в формате UTF-8 до кодирования в base64).

Из контроллера получаем сообщение
Код:
json.Data = Encoding.UTF8.GetBytes(requestString);


Далее подписываем следующим образом

Код:
			
// Настройки
var CADES_BES = 1;
var CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;

// Данные на подпись ввели
if (dataToSign) {
yield oSignedData.propset_Content(dataToSign);
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY);
yield oSigner.propset_Certificate(certificate);

// Подписывание
try {
	Signature = yield oSignedData.SignCades(oSigner, CADES_BES, true);
}
catch (err) {
	errormes = 'Не удалось создать подпись из-за ошибки: ' + GetErrorMessage(err);
	throw errormes;
}


На получателе подпись не проходит проверку.
Цитата:
Неверная ЭП сообщения

Подскажите в чем может быть ошибка?
Offline Павел Смирнов  
#2 Оставлено : 21 октября 2015 г. 14:00:41(UTC)
Павел Смирнов

Статус: Вам и не снилось

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Техническую поддержку оказываем тут.
Наша база знаний.
Offline petr  
#3 Оставлено : 21 октября 2015 г. 15:22:02(UTC)
petr

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

Группы: Участники
Зарегистрирован: 09.10.2015(UTC)
Сообщений: 10

Цитата:
КриптоПро ЭЦП browser plug-in данные, переданные при создании подписи, будут перекодированы в UCS-2 little endian и именно в таком виде данные будут подписаны


тогда кодируем сообщение в base64
Код:
var bytes = Encoding.UTF8.GetBytes(requestString);
json.Data = Convert.ToBase64String(bytes);


я указываем что у нас base64 кодировка CADESCOM_BASE64_TO_BINARY
Код:
	
if (dataToSign) {
  oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
  oSignedData.Content = dataToSign;
  oSigner.Options = CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY;

Signature = oSignedData.SignCades(oSigner, CADES_BES, true);


И в результате та же ошибка
Цитата:
Неверная ЭП сообщения
Offline deniska68  
#4 Оставлено : 27 октября 2015 г. 16:10:51(UTC)
deniska68

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

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

Поблагодарили: 1 раз в 1 постах
Автор: petr Перейти к цитате
Цитата:
КриптоПро ЭЦП browser plug-in данные, переданные при создании подписи, будут перекодированы в UCS-2 little endian и именно в таком виде данные будут подписаны


тогда кодируем сообщение в base64
Код:
var bytes = Encoding.UTF8.GetBytes(requestString);
json.Data = Convert.ToBase64String(bytes);


я указываем что у нас base64 кодировка CADESCOM_BASE64_TO_BINARY
Код:
	
if (dataToSign) {
  oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
  oSignedData.Content = dataToSign;
  oSigner.Options = CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY;

Signature = oSignedData.SignCades(oSigner, CADES_BES, true);


И в результате та же ошибка
Цитата:
Неверная ЭП сообщения


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