Статус: Новичок
Группы: Участники
Зарегистрирован: 30.09.2014(UTC) Сообщений: 2
|
Автор: Новожилова Елена Автор: bvg Создаю подпись браузере (IE, хром) и добавляю к подписи атрибуты документа с таким кодом CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION. Все проходит без ошибок, но когда на dotnet прочитываю подпись, в атрибутах в конце текста часто находятся лишние символы (какой-то мусор, в основном отображаютсяя как иероглифы). В основном такое, когда в подписи несколько подписантов. Почему такое происходить может? Код:
var oDocAttr = ObjCreator("CADESCOM.CPAttribute", browserName);
oDocAttr.Name = CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME;
oDocAttr.Value = docName;
oSigner.AuthenticatedAttributes2.Add(oDocAttr);
Сохраните полученную подпись в файл, декодируйте из BASE64 и откройте в любой программе просмотре ASN1 (например ViewBERNT) Посмотрите, что действительно лежит в значении атрибута. Если все правильно - проверяете код на .Net. Если нет - проверяете, что передается в docName. Лежит вроде верно. Но.. Строка: zzzz преобразовалась в 04-08-7A-00-7A-00-7A-00-7A-00 - Из барузера 04-0A-7A-00-7A-00-7A-00-7A-00-00-00 - это если из dotnet в dotent лежит все это в Pkcs9DocumentDescription В итоге, когда декодируешь 04-08-7A-00-7A-00-7A-00-7A-00 (то что из браузера) всегда в конце дописывается мусор (может слова какое-то, а может быть куча спецсивмолов). Все выглядит, как будто не определяется конец строки и захватывается кусочек из буфера от предыдущего значения
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Автор: GLHF все на одной страничке, они небольшого обьёма Тогда мне сложно предположить, с чем такое поведение может быть связано.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Автор: bvg Лежит вроде верно. Но.. Строка: zzzz преобразовалась в
04-08-7A-00-7A-00-7A-00-7A-00 - Из браузера 04-0A-7A-00-7A-00-7A-00-7A-00-00-00 - это если из dotnet
в dotent лежит все это в Pkcs9DocumentDescription
В итоге, когда декодируешь 04-08-7A-00-7A-00-7A-00-7A-00 (то что из браузера) всегда в конце дописывается мусор (может слова какое-то, а может быть куча спецсивмолов). Все выглядит, как будто не определяется конец строки и захватывается кусочек из буфера от предыдущего значения
В .Net у вас NULL-терминированная строка, в браузере - нет. Скорее всего код, отвечающий за декодирование, ожидает только NULL-терминированную строку, несмотря на то, что в ASN1 явно передается длина строки (второе число - 08). Отредактировано пользователем 2 октября 2014 г. 14:02:18(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.06.2013(UTC) Сообщений: 12 Откуда: Eburg
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
поломал весь мозг 1. подписываю в вебе содержимое текстового файла Код:
var DetachedSign = true;
var oSigner = CreateObject("CAdESCOM.CPSigner");
oSigner.Certificate = oCertificate;
var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
oSignedData.Content = "TextTextText";
var sSignedMessage = oSignedData.SignCades(oSigner, CADES_BES, DetachedSign);
Проверка в браузер работает прекрасно, но проверка csptest.exe не проходит. 2. отправляю этот base64 на сервер и сохраняю в файл Код:
using (var sw = new FileStream(@"c:\Temp\sigs\file.txt.sig", FileMode.CreateNew))
{
var bts = Convert.FromBase64String(sign);
sw.Write(bts, 0, bts.Length);
}
3. Самый печальный пункт Код:C:\Program Files\Crypto Pro\CSP>csptest.exe -sfsign -verify -detached -in c:\Temp\sigs\file.txt -signature c:\Temp\sigs\file.txt.sig -my cryptopro
#0:
Subject: CN=my cryptopro test
Valid : 19.09.2014 20:20:00 - 19.12.2015 20:30:00 (UTC)
Issuer : ОГРН=1037700085444, ИНН=007717107991, STREET="ул. Сущёвский вал, д. 18", S=77 г. Москва, L=Москва, E=info@cryptopro.ru, C=RU, O="ООО ""КРИПТО-ПРО""", CN="Тестовый УЦ ООО ""КРИПТО-ПРО"""
PrivKey: 19.09.2014 20:20:00 - 19.12.2015 20:20:00 (UTC)
#0:
Subject: CN=my cryptopro test
Valid : 19.09.2014 20:20:00 - 19.12.2015 20:30:00 (UTC)
Issuer : ОГРН=1037700085444, ИНН=007717107991, STREET="ул. Сущёвский вал, д. 18", S=77 г. Москва, L=Москва, E=info@cryptopro.ru, C=RU, O="ООО ""КРИПТО-ПРО""", CN="Тестовый УЦ ООО ""КРИПТО-ПРО"""
PrivKey: 19.09.2014 20:20:00 - 19.12.2015 20:20:00 (UTC)
An error occurred in running the program.
signtsf.c:766:Detached Signature was NOT verified
Error number 0x80091007 (2148077575).
Неправильное значение хеша.
Total: SYS: 0,047 sec USR: 0,000 sec UTC: 0,224 sec
[ErrorCode: 0x80091007]
Не понятно почему два раза один и тот же сертификат #0 Куда копать? Может быть я неверно сохранил sig?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
|
1 пользователь поблагодарил Новожилова Елена за этот пост.
|
klima оставлено 13.10.2014(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.06.2013(UTC) Сообщений: 12 Откуда: Eburg
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
А можно ли как-то в Chrome и других не ИЕ браузерах вызывать certificate.Display() чтобы открыть сам сертификат? В ИЕ оно работает ;( Код:var certificate = GetCertificateByThumbprint(thumb);
certificate.Display();
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
В других браузерах - только если получать свойства сертификата и выводить аналогичное окно самостоятельно.
|
1 пользователь поблагодарил Новожилова Елена за этот пост.
|
klima оставлено 14.10.2014(UTC)
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2014(UTC) Сообщений: 42 Сказал «Спасибо»: 7 раз Поблагодарили: 4 раз в 4 постах
|
Автор: GLHF Здравствуйте, столкнулся с проблемой подписывания большого количества данных в цикле (>200 xml в base64) в IE. В остальных браузерах всё работает нормально, в IE же подписывание происходит удачно через раз: при создании некоторого количества подписей (обычно от 100 и выше), есть шанс, что возникает ошибка "-2147024809 Параметр задан неверно". При этом, если сделать ещё несколько попыток подписать эти же данные, то они подписываются корректно. Есть ли предположения, с чем это может быть связано? У нас наблюдается такая же проблема, уточню немного информацию, ошибка происходит в строке oSignedData.Content=doc и на текущий момент наблюдается только в IE8. Причина тоже не известна, пока прорабатываем версию что что то не верно в кодировке документа, остальные условия примерно такие же, подписываются HTML докменты малого объема в цикле по 10-20 штук, так же при повторном подписании ошибка не повторяется. Ошибка происходит при различных версия крипто про. В общем проблема пропала после вот такого финта ушами, был вот такой код Код:oSignedData.Content = documentdata[doc_id][4][/b];// стало быть documentdata - массив в Base64 документами
сделал такКод: doc=documentdata[doc_id][4];
oSignedData.Content = doc;
и ошибка пропала Отредактировано пользователем 18 ноября 2014 г. 15:56:35(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.02.2016(UTC) Сообщений: 7 Откуда: Perm
|
Добрый день! Есть ли в API КриптоПро ЭЦП Browser plug-in доступные методы для каноникализации xml? прошу указать, если таковые имеются, спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
нет, отдельных методов для каноникализации xml в плагине нет. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close