Статус: Участник
Группы: Участники
Зарегистрирован: 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;
}
На получателе подпись не проходит проверку. Цитата:Неверная ЭП сообщения Подскажите в чем может быть ошибка?
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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);
И в результате та же ошибка Цитата:Неверная ЭП сообщения
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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);
И в результате та же ошибка Цитата:Неверная ЭП сообщения Каким образом на получателе проверяется подпись? Если проверить подпись тут же после создания на "клиенте", подпись верна?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close