Добрый день!
Да, перепроверил. Корректно работает сборка и подписание.
Мне нужно было пойти дальше и реализовать возможность добавление сертификата в контейнер с usb-rutoken. Делал это как на базе примера из репозитория Pycades, так и на базе своего dockerfile.
Насколько я понял, необходимо установить дополнительные зависимости из предоставленных deb пакетов. В итоге пакеты, которые я устанавливаю выглядят так:
Код:
./linux-amd64_deb/cprocsp-rdr-gui-gtk-64*.deb \
./linux-amd64_deb/lsb-cprocsp-devel_*.deb \
./linux-amd64_deb/cprocsp-pki-cades*.deb \
./linux-amd64_deb/cprocsp-rdr-pcsc-64*.deb \
./linux-amd64_deb/cprocsp-rdr-rutoken-64*.deb
Дальше я столкнулся с проблемой, которая обернулась адом.
Проблема заключается в том, что я не могу собрать рабочий docker образ в котором было бы возможно корректно добавить сертификат с usb-rutoken и реализовать подписание с его помощью через pycades.
Лучшим результатом из всего, что у меня было, оказалось проброс рутокена, добавление сертификата в контейнер, подписание
cryptcp -sign -thumbprint и подписание pycades.SignedData(). Код не заканчивал корректное выполнение и выход из моего метода с разными ошибками. Самая частая -
corrupted size vs. prev_sizeНиже опишу что я пробовал
1. Разные версии Ubuntu -- 20.04, 22.04, 24.04
2. Разные версии Debian -- 11, 12, 13
3. Пробовал Python3.12 -- slim, python:3.12, alpine
В каждой ОС были свои проблемы. В новых версиях ОС нет бинарных зависимостей для deb пакетов, также их нет в репозиториях. В старых версиях ОС проблемы с Python3.12. Его либо нет в репозиториях, либо он ломает apt, либо иные проблемы
Пробовал по-разному собирать компоненты для контейнера:
- собирать Python3.12 под систему, устанавливать все apt пакеты, а потом менять системный python
- пробовал собирать бинарные зависимости из источников
- пробовал использовать альтернативные репозитории для получения зависимостей
- пробовал собирать GCC/G++ 12 версии с установкой зависимостей из источников
Так или иначе везде какие-то проблемы.
Подскажите, пожалуйста, возможно ли как-то настроить рабочее место внутри docker контейнера так, чтобы можно было прокидывать интерфейс pcscd, добавить сертификат в контейнер и выполнить подписание с помощью pycades?
Отредактировано пользователем 27 августа 2025 г. 18:31:34(UTC)
| Причина: Не указана