Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,606   Сказал «Спасибо»: 565 раз Поблагодарили: 2280 раз в 1783 постах
|
ДанныеДляПодписи.ContentEncoding = 1; ДанныеДляПодписи.Content = СокрЛП(ПолучитьBase64СтрокуИзДвоичныхДанных(ПодписываемыеДвоичныеДанные));
При использовании СокрЛП есть сбой? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2021(UTC) Сообщений: 20  Сказал(а) «Спасибо»: 3 раз
|
Автор: Андрей *  ДанныеДляПодписи.ContentEncoding = 1; ДанныеДляПодписи.Content = СокрЛП(ПолучитьBase64СтрокуИзДвоичныхДанных(ПодписываемыеДвоичныеДанные));
При использовании СокрЛП есть сбой? Функция 1С СокрЛП (сокращение лишних пробелов) используется для удаления обобщенных пробельных символов в начале и в конце строки, передаваемой в качестве параметра - возвращается строка без пробелов в начале и конце строки. В моем случае никаких лишних пробелов нет т.к. использую функцию, которая конвертирует бинарник (двоичные данные) в строку в кодировке Base64, поэтому я не использую вызов СокрЛП(). В том-то и дело, что строка, закодированная в Base64 COM объектом принимается, а вот бинарник без перекодировки в Base64 не принимается COM объектом. Отредактировано пользователем 29 сентября 2021 г. 14:43:57(UTC)
| Причина: Исправлена опечатка
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,606   Сказал «Спасибо»: 565 раз Поблагодарили: 2280 раз в 1783 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,606   Сказал «Спасибо»: 565 раз Поблагодарили: 2280 раз в 1783 постах
|
Цитата: //ДанныеДляПодписи.ContentEncoding = 1; //ДанныеДляПодписи.Content = ПодписываемыеДвоичныеДанные;
вот это смущает.. Вы точно проверили правильно? ДанныеДляПодписи.ContentEncoding = 0; ДанныеДляПодписи.Content = ПодписываемыеДвоичныеДанные; |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2021(UTC) Сообщений: 20  Сказал(а) «Спасибо»: 3 раз
|
Автор: Андрей *  всё понятно, бинарный файл не принимает. Да, именно так, а нужно подписать бинарник.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,606   Сказал «Спасибо»: 565 раз Поблагодарили: 2280 раз в 1783 постах
|
Цитата:на этой строке возникает ошибка кодировки подписываемых данных - "Ошибка при установке значения атрибута контекста (Content): Типы не совпадают (0)", причем как ContentEncoding = 0 так и с ContentEncoding = 1. Я не читал исправления текста выше (38 минут назад)... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,606   Сказал «Спасибо»: 565 раз Поблагодарили: 2280 раз в 1783 постах
|
Автор: NAlexV  Автор: Андрей *  всё понятно, бинарный файл не принимает. Да, именно так, а нужно подписать бинарник. Он и будет подписан. Кодируете в base64, указаваете перед присваиванием, что закодировано - внутри будет декодировано и подписано бинарное представление. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2021(UTC) Сообщений: 20  Сказал(а) «Спасибо»: 3 раз
|
Автор: Андрей *  Автор: NAlexV  Автор: Андрей *  всё понятно, бинарный файл не принимает. Да, именно так, а нужно подписать бинарник. Он и будет подписан. Кодируете в base64, указываете перед присваиванием, что закодировано - внутри будет декодировано и подписано бинарное представление. Понятно, значит я не понял семантику значения CADESCOM_BASE64_TO_BINARY перечисления CADESCOM_CONTENT_ENCODING_TYPE. Получается, что смысл значения - подписать бинарник, закодированный в Base64. :) Спасибо.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.09.2021(UTC) Сообщений: 20  Сказал(а) «Спасибо»: 3 раз
|
Автор: Андрей *  Автор: NAlexV  Я так понимаю, что эта статья устарела т.к. в ней упоминается перечисление CAPICOM_ENCODING_TYPE, а в документации перечисление CADESCOM_CONTENT_ENCODING_TYPE
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,606   Сказал «Спасибо»: 565 раз Поблагодарили: 2280 раз в 1783 постах
|
Автор: NAlexV  Я так понимаю, что эта статья устарела т.к. в ней упоминается перечисление CAPICOM_ENCODING_TYPE, а в документации перечисление CADESCOM_CONTENT_ENCODING_TYPE Там в первых двух предложениях объяснено: Цитата: Ниже рассматриваются особенности представления данных при работе с объектом CAPICOM.SignedData. Аналогичное поведение характерно для объекта CadesSignedData.
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close