Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.12.2021(UTC) Сообщений: 261  Откуда: Новосибирск Сказал(а) «Спасибо»: 78 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день! Можно ли получить данные подписанта из отсоединённой подписи без подписываемого файла? (или хотя бы с его хешем, а то файл очень большой - php "валится" по памяти) пробую в PHPCades без set_Content - не пашет :( вообще теоретически можно? $signedData = new \CPSignedData(); $signedData->set_ContentEncoding(BASE64_TO_BINARY); $signedData->set_Content($content); $signedData->VerifyCades($signature, CADES_BES, 1); // получаем подписантов $signObject = $signedData->get_Signers(); .... Отредактировано пользователем 29 марта 2023 г. 19:03:26(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,664   Сказал «Спасибо»: 571 раз Поблагодарили: 2297 раз в 1798 постах
|
Здравствуйте.
try попытка проверить catch прочитать подписанта
|
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.12.2021(UTC) Сообщений: 261  Откуда: Новосибирск Сказал(а) «Спасибо»: 78 раз Поблагодарили: 1 раз в 1 постах
|
Автор: Андрей *  Здравствуйте.
try попытка проверить catch прочитать подписанта
вопрос в том как получить подписантов $signObject = $signedData->get_Signers(); без вызова $signedData->set_Content($content); $signedData->VerifyCades($signature, CADES_BES, 1); т.е. должен быть какой то отвязанный от самих данных метод, типа set_Signature($signature); чтобы саму отсоединённую подпись подгрузить кстати, а где полный список всех методов PHPCades можно глянуть? тут CPSignedData нету https://docs.cryptopro.r.../cadescom/cadescom_classинтересует дата подписания и сам подписант из отсоединённой подписи (без подгрузки самого подписываемого документа) Отредактировано пользователем 30 марта 2023 г. 4:04:21(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,664   Сказал «Спасибо»: 571 раз Поблагодарили: 2297 раз в 1798 постах
|
в $content передать произвольные данные и перехватить исключение, далее в цикле получить сертификаты подписантов. Signers инициализируется после выполнения VerifyCades |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.04.2023(UTC) Сообщений: 4 
|
Добрый день! Пытался по предложенному принципу вытащить данные подписантов, но получаю ошибку. Код:
def getSigners(_sign, cadesType=pycades.CADESCOM_CADES_BES, detached=False):
signedData = pycades.SignedData()
try:
signedData.VerifyCades(_sign, cadesType, detached)
except Exception as err:
print('Verify fail')
print(err)
signers = signedData.Signers
print("got signers")
print(signers)
return signers
signed_encoded_file = open('test.pdf.sig0', 'r').read()
_detached = True
signers = getSigners(signed_encoded_file, detached=_detached)
----------------
signers = signedData.Signers
Exception: Internal error. (0x800B0100)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,664   Сказал «Спасибо»: 571 раз Поблагодарили: 2297 раз в 1798 постах
|
Автор: v-t-b  Добрый день! Пытался по предложенному принципу вытащить данные подписантов, но получаю ошибку. Код:
def getSigners(_sign, cadesType=pycades.CADESCOM_CADES_BES, detached=False):
signedData = pycades.SignedData()
try:
signedData.VerifyCades(_sign, cadesType, detached)
except Exception as err:
print('Verify fail')
print(err)
signers = signedData.Signers
print("got signers")
print(signers)
return signers
signed_encoded_file = open('test.pdf.sig0', 'r').read()
_detached = True
signers = getSigners(signed_encoded_file, detached=_detached)
----------------
signers = signedData.Signers
Exception: Internal error. (0x800B0100)
...в $content передать произвольные данные ... почему этого нет в коде? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.04.2023(UTC) Сообщений: 4 
|
Удалось получить список сертификатов Код:
certs = signedData.Certificates
Вопрос: Насколько это соответствует использованным подписям? Есть ли способ извлечь дату подписи?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.04.2023(UTC) Сообщений: 4 
|
Цитата:...в $content передать произвольные данные ...
почему этого нет в коде? Добавил строку Код:signedData.Content = "sdfgfhfdghf"
перед получением списка подписантов. И преобразование файла Код: base64.b64encode(signed_encoded_file).decode()
. Всё равно выдаёт: Код:
Internal error. (0x8009200E)
------------------
Traceback (most recent call last):
File "py_test.py", line 117, in <module>
signers = signedData.Signers
Exception: Internal error. (0x800B0100)
Первая ошибка на валидации, вторая - получение списка подписантов.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.04.2023(UTC) Сообщений: 4 
|
После очередной итерации всё же заработало. Спасибо.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close