Статус: Новичок
Группы: Участники
Зарегистрирован: 25.07.2022(UTC) Сообщений: 9
|
Доброго времени суток! Как правильно проверить отделенную подпись с использованием библиотеки pycades? Для проверки имею файл формата .pdf и .sig к нему. SignedData в качестве атрибута Content принимает только строковое значение, VerifyCades в качестве строки также принимает строку. Каким образом корректно использовать этот функционал при работе с потоком байтов? Отредактировано пользователем 26 июля 2022 г. 9:56:36(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2387 раз в 1878 постах
|
Здравствуйте.
Указать, что данные закодированы в base64, передать в контент pdf в base64, вызвать проверку. |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2387 раз в 1878 постах
|
|
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.07.2022(UTC) Сообщений: 9
|
Пробовал передавать значения в base64. При валидации получаю ошибку Exception: Internal error. (0x8009200E)
Вот такой код:
import pycades import base64
signedata = pycades.SignedData() signedata.ContentEncoding = pycades.CADESCOM_BASE64_TO_BINARY
data = open("report.pdf","rb").read() encd = base64.b64encode(data)
sgn = open("report.pdf.sig","rb").read() encs = base64.b64encode(sgn)
signedata.Content = encd.decode('utf-8')
signedata.VerifyCades(encs.decode('utf-8'), pycades.CADESCOM_CADES_DEFAULT, True)
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.07.2022(UTC) Сообщений: 9
|
Насолько я понимаю, ошибка имеет расшифровку The signed cryptographic message does not have a signer for the specified signer index. В чём может быть причина такой ошибки?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2387 раз в 1878 постах
|
Автор: Kokosjan  Насолько я понимаю, ошибка имеет расшифровку The signed cryptographic message does not have a signer for the specified signer index. В чём может быть причина такой ошибки? Перечисление CADESCOM_CADES_TYPEЕсли указать CADESCOM_CADES_BES - ошибка есть? |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2387 раз в 1878 постах
|
encs.decode('utf-8') - зачем? |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2387 раз в 1878 постах
|
+ проверить, что report.pdf.sig - бинарный, вероятно, он уже закодирован в base64? Если закодирован - не нужно повторно кодировать... |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.07.2022(UTC) Сообщений: 9
|
Цитата:Если указать CADESCOM_CADES_BES - ошибка есть? Да, ошибка та же самая Цитата:encs.decode('utf-8') - зачем? VerifyCades в качестве первого аргумента принимает только строку, таким образом массив в base64 из типа bytes перевожу в str Цитата:+ проверить, что report.pdf.sig - бинарный, вероятно, он уже закодирован в base64? Если закодирован - не нужно повторно кодировать... Не похоже на base64  report.pdf.sig (3kb) загружен 5 раз(а).
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2387 раз в 1878 постах
|
b64encode разве не строку возвращает? |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close