Статус: Новичок
Группы: Участники
Зарегистрирован: 22.04.2019(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
При выполнении подписания на строке Результат = ПодписанныеДанные.SignCades(Подписант,0,0); появляется ошибка Произошла исключительная ситуация (CAdESCOM.CadesSignedData.1): Не удается построить цепочку сертификатов для доверенного корневого центра. Причем сертификат личный установлен верно и цепочку он видит когда заходишь в сертификат, сертификат не просрочен. Не могу понять в чем причина sertifikat.png (9kb) загружен 7 раз(а). обХранСерт = Новый COMОбъект("CAdesCOM.Store"); обХранСерт.Open(2); СерийныйНомерСертификата = "01A8028D64013F02028F"; мсСерт = обХранСерт.Certificates; Серт = Неопределено; Для каждого текСерт Из мсСерт Цикл Если текСерт.ValidToDate > ТекущаяДата() И текСерт.SerialNumber = СерийныйНомерСертификата Тогда Серт = текСерт; Прервать; КонецЕсли; КонецЦикла; ВходнойПоток = Новый COMОбъект("ADODB.Stream"); ВходнойПоток.Type = 1; ВходнойПоток.Mode = 3; ВходнойПоток.Open(); ВходнойПоток.LoadFromFile("e:\1c-Equifax\Score_МНМН-00000069_out.xml"); ВходныеДанные = ВходнойПоток.Read(-1); Подписант = Новый COMОбъект("CAdesCOM.CPSigner"); Подписант.Certificate = Серт; Подписант.Options = 1; Подписант.TSAAddress = "http://cryptopro.ru/tsp/"; ПодписанныеДанные = Новый COMОбъект("CAdESCOM.CadesSignedData"); ПодписанныеДанные.Content = ВходныеДанные; Результат = ПодписанныеДанные.SignCades(Подписант,0,0); ДвоичныеДанные = Base64Значение(Результат); ДвоичныеДанные.Записать("e:\1c-Equifax\Score_МНМН-00000069_out.xml"+".sig");
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,375 Сказал «Спасибо»: 53 раз Поблагодарили: 773 раз в 715 постах
|
Здравствуйте.
Предположительно, нет доверия сертификату оператора указанной тестовой службы штампов времени.
Используйте службу штампов времени, сертификату оператора которой есть доверие,а не тестовую. |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 393 раз в 366 постах
|
Автор: fixer_gold ПодписанныеДанные.Content = ВходныеДанные; Насколько помню так делать нельзя, нужен промежуточный объект между стримом и SignedData. Суть в том, что при чтении ADODB.Stream в двоичном режиме возвращается закодированный "безопасный" массив, который неплохо бы раскодировать в "нормальные байты" перед подачей на подписание - иначе выйдет подпись совсем не того, что было в исходном файле (так как представление в оперативной памяти разное). Здесь на форуме был пример для 1С как это сделать, на VBS выполняется аналогично. Отредактировано пользователем 25 марта 2020 г. 5:18:21(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.04.2019(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Автор: two_oceans Автор: fixer_gold ПодписанныеДанные.Content = ВходныеДанные; Насколько помню так делать нельзя, нужен промежуточный объект между стримом и SignedData. Суть в том, что при чтении ADODB.Stream в двоичном режиме возвращается закодированный "безопасный" массив, который неплохо бы раскодировать в "нормальные байты" перед подачей на подписание - иначе выйдет подпись совсем не того, что было в исходном файле (так как представление в оперативной памяти разное). Здесь на форуме был пример для 1С как это сделать, на VBS выполняется аналогично. Так делать можно, по крайней мере с CAPICOM.DLL, но от него пришлось отказаться так как он не работает на 1Сх64, на х32 все нормально подписывается и штамп времени вообще указывать не нужно. Если я указываю ВходныеДанные = "какаяТаСтрока"; результат тот же от этого ошибка не исчезает. Тогда вопрос как мне узнать какой штамп времени я могу использовать вместо тестового? Или как я могу узнать где взять нужный мне? Отредактировано пользователем 25 марта 2020 г. 6:38:35(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,375 Сказал «Спасибо»: 53 раз Поблагодарили: 773 раз в 715 постах
|
Автор: fixer_gold Автор: two_oceans Автор: fixer_gold ПодписанныеДанные.Content = ВходныеДанные; Насколько помню так делать нельзя, нужен промежуточный объект между стримом и SignedData. Суть в том, что при чтении ADODB.Stream в двоичном режиме возвращается закодированный "безопасный" массив, который неплохо бы раскодировать в "нормальные байты" перед подачей на подписание - иначе выйдет подпись совсем не того, что было в исходном файле (так как представление в оперативной памяти разное). Здесь на форуме был пример для 1С как это сделать, на VBS выполняется аналогично. Так делать можно, по крайней мере с CAPICOM.DLL, но от него пришлось отказаться так как он не работает на 1Сх64, на х32 все нормально подписывается и штамп времени вообще указывать не нужно. Если я указываю ВходныеДанные = "какаяТаСтрока"; результат тот же от этого ошибка не исчезает. Тогда вопрос как мне узнать какой штамп времени я могу использовать вместо тестового? Или как я могу узнать где взять нужный мне? Здравствуйте. Вам действительно необходимо создавать подпись со штампом времени? Если да, то обратитесь в удостоверяющий центр с вопросом какую службу штампов времени Вам использовать при создании подписи. |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 393 раз в 366 постах
|
Действительно наиболее правильно узнать у УЦ. Не знаю подойдут ли, но процитирую список из соседней темы, который сохранил Цитата:А попробуйте с этим адресом: http://service.itk23.ru/tsp/tsp.srf . Данный адрес обрабатывает запросы как от ГОСТ 2001, так и от ГОСТ 2012. Только учтите, что сейчас в ответе TSP - с ГОСТ-2001 Отредактировано пользователем 25 марта 2020 г. 13:24:31(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close