Ошибка проверки подписи
(0 чел.) 
  • Страница:
  • 1

ТЕМА: Ошибка проверки подписи

Ошибка проверки подписи 4 года, 7 мес. назад #1431

  • EugeneOne
  • Новый участник
  • Постов: 8
  • Репутация: 0
Добрый день!

Подписываю сообщение с помощью апплета в pkcs7, содержимое отсоединенно. Проверка подписи на сервере стандартным способом, т.е.:

//byte[] signedData - подпись из апплета
//byte[] inData - данные для подписи

var signedCms = new SignedCms(new ContentInfo(inData), true);
signedCms.Decode(signedData);

SignerInfo current = signedCms.SignerInfos[0];
current.CheckSignature(true);

При подписи сертификатом из тестовых, приложенных к SDK, все проходит отлично. При попытке подписать с помощью удостоверения, падает на проверке с ошибкой Неверный хэш. В чем может быть причина?
Изменено: 4 года, 7 мес. назад от EugeneOne.

Re: Ошибка проверки подписи 4 года, 7 мес. назад #1434

  • EugeneOne
  • Новый участник
  • Постов: 8
  • Репутация: 0
при проверке вида:
const IOLACOM_OPERFLAGS flagsSign = IOLACOM_OPERFLAGS.SF_WITH_CERTS | IOLACOM_OPERFLAGS.CF_IN2_BASE64 | IOLACOM_OPERFLAGS.SF_DETACHED_DATA;

var iolaCom = new IolaCOM2();

iolaCom.VerifyData2("", (int)flagsSign, text, sig);

Подпись с помощью удостоверения верифицируется только если данные не содержат переходов на новую строку, также не верифицуются подписанные с помощью файла данные.
sig - подписанные данные из апплета в BASE64
text - те же данные, что и в апплете

Re: Ошибка проверки подписи 4 года, 6 мес. назад #1444

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Здравствуйте!

Выложите или пришлите на почту подписанные данные (sig) и исходный текст (text).
И что Вы имеете ввиду под "подписанные с помощью файла данные"?
Модератор

Re: Ошибка проверки подписи 4 года, 6 мес. назад #1445

  • EugeneOne
  • Новый участник
  • Постов: 8
  • Репутация: 0
Здравствуйте!

var sig = "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";

var text = "Документ: 39.0.2171.98.manifest\nАвтор создания: ele wise\nДата создания: 22.01.2015 12:30:48\nВерсия: 1\nАвтор создания: ele wise\nДата создания: 22.01.2015 12:30:55\nСодержимое: aea22658103c7028faae8c4166c0c6cb (md5)";


Подписанные с помощью файла - хранилище закрытыго ключа на локальном диске, в частности тестовые .p12

Re: Ошибка проверки подписи 4 года, 6 мес. назад #1446

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Какой тип у text?
У вас проблемы с кодировкой исходного текста. Возможно он у Вас в utf-16, необходим utf-8.
Либо же закодируйте исходный текст в base64 и добавляете флаг CF_IN_BASE64, тогда проверка успешно проходит.

text = "0JTQvtC60YPQvNC10L3RgjogMzkuMC4yMTcxLjk4Lm1hbmlmZXN0CtCQ0LLRgtC+0YAg0YHQvtC30LTQsNC90LjRjzogZWxlIHdpc2UK0JTQsNGC0LAg0YHQvtC30LTQsNC90LjRjzogMjIuMDEuMjAxNSAxMjozMDo0OArQktC10YDRgdC40Y86IDEK0JDQstGC0L7RgCDRgdC+0LfQtNCw0L3QuNGPOiBlbGUgd2lzZQrQlNCw0YLQsCDRgdC+0LfQtNCw0L3QuNGPOiAyMi4wMS4yMDE1IDEyOjMwOjU1CtCh0L7QtNC10YDQttC40LzQvtC1OiBhZWEyMjY1ODEwM2M3MDI4ZmFhZThjNDE2NmMwYzZjYiAobWQ1KQ=="
Модератор

Re: Ошибка проверки подписи 4 года, 6 мес. назад #1447

  • EugeneOne
  • Новый участник
  • Постов: 8
  • Репутация: 0
Пробовал как UTF8, так и UTF16.
Кодирование в BASE64 и выставление флага помогло, спасибо!
  • Страница:
  • 1
FaLang translation system by Faboba