Статус: Новичок
Группы: Участники
Зарегистрирован: 28.06.2014(UTC) Сообщений: 3 Откуда: Нижний Новгород
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.09.2014(UTC) Сообщений: 8 Поблагодарили: 1 раз в 1 постах
|
Здравствуйте, столкнулся с проблемой подписывания большого количества данных в цикле (>200 xml в base64) в IE. В остальных браузерах всё работает нормально, в IE же подписывание происходит удачно через раз: при создании некоторого количества подписей (обычно от 100 и выше), есть шанс, что возникает ошибка "-2147024809 Параметр задан неверно". При этом, если сделать ещё несколько попыток подписать эти же данные, то они подписываются корректно. Есть ли предположения, с чем это может быть связано? Отредактировано пользователем 30 сентября 2014 г. 8:44:17(UTC)
| Причина: Не указана
|
1 пользователь поблагодарил GLHF за этот пост.
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Здравствуйте! По описанию проблемы сложно предположить, в чем именно причина. Внимательно посмотрите на свой код - особенно внимательно нужно смотреть на те объекты, которые используются повторно. Попробуйте локализовать проблему - при какой именно операции возникает ошибка. Отредактировано пользователем 30 сентября 2014 г. 13:17:11(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.09.2014(UTC) Сообщений: 8 Поблагодарили: 1 раз в 1 постах
|
Ошибка происходит собственно при подписывании : var CAPICOM_ENCODE_BASE64 = 0; var CADESCOM_CADES_BES = 1; <...> this.SignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY; this.SignedData.Content=inputString; SignedData.SignCades(this.Signer, CADESCOM_CADES_BES, true, CAPICOM_ENCODE_BASE64);
Объекты SignedData, Signer пробовал создавать единовременно для повторного использования, и потом просто менял SignedData.Content, так и на каждой иттерации создавая новые, и заного получая сертификат из хранилища. В обоих случаях наблюдается эта ошибка.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.09.2014(UTC) Сообщений: 2
|
Создаю подпись браузере (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);
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Автор: GLHF Ошибка происходит собственно при подписывании : var CAPICOM_ENCODE_BASE64 = 0; var CADESCOM_CADES_BES = 1; <...> this.SignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY; this.SignedData.Content=inputString; SignedData.SignCades(this.Signer, CADESCOM_CADES_BES, true, CAPICOM_ENCODE_BASE64);
Объекты SignedData, Signer пробовал создавать единовременно для повторного использования, и потом просто менял SignedData.Content, так и на каждой иттерации создавая новые, и заного получая сертификат из хранилища. В обоих случаях наблюдается эта ошибка.
Тогда скорее всего проблема в подписываемых данных. Вы уверены, что каждый раз передаете правильно закодированные в BASE64 данные? И в зависимости от способа загрузки данных - что они успевают загрузиться?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Автор: 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.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.09.2014(UTC) Сообщений: 8 Поблагодарили: 1 раз в 1 постах
|
Цитата:Тогда скорее всего проблема в подписываемых данных. Вы уверены, что каждый раз передаете правильно закодированные в BASE64 данные? И в зависимости от способа загрузки данных - что они успевают загрузиться? Данные находятся на странице, проверял несколько раз данные из тех иттераций, на которых происходит ошибка, декодировал их в текст для проверки. Но всё работает нормально в других браузерах, проблема только в IE, данные использовал одинаковые.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
200 с лишним закодированных в BASE64 XML и все хранятся на одной странице? Или вы передаете одни и те же данные в цикле?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.09.2014(UTC) Сообщений: 8 Поблагодарили: 1 раз в 1 постах
|
все на одной страничке, они небольшого обьёма
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close