Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline icl_username  
#1 Оставлено : 9 июня 2025 г. 18:23:50(UTC)
icl_username

Статус: Участник

Группы: Участники
Зарегистрирован: 20.01.2025(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 2 раз
Добрый день!

Задача:
- необходимо реализовать удаление просроченных сертификатов и добавление новый сертификатов в форматах [pfx, p7b, cer] через Python Pycades.



Я начал с документации про Store (https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_class/store)
Дальше пошёл смотреть методы и интерфейсы в microsoft (https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_class/store)


В Microsoft увидел методы:
- Load для Certificate (https://learn.microsoft.com/en-us/windows/win32/seccrypto/certificate-load)
- Delete для Store (https://learn.microsoft.com/en-us/windows/win32/seccrypto/store-delete)
- Add для Store (https://learn.microsoft.com/en-us/windows/win32/seccrypto/store-add)


Но Pycades версии 0.1.58124 не позволяет использовать этим методы, так как нет их реализации в Pycades. Получаю ошибки обращения к несуществующим методам.
Метод Add существует. Но без Load нет возможности получить объект Certificate из pfx сертификата с использованием пароля.


Я понимаю, что могу использовать проброс значений сертификатов и паролей к ним в bash и нативно использовать certmgr и его команды, но очень не хочется это делать, учитывая то, что есть пакет для питона.


Подскажите, пожалуйста, как я могу решить проблему для реализации моей задачи::
1. Как импортировать .pfx сертификаты с паролем?
2. Как удалять сертификаты из хранилища Store?

Отредактировано пользователем 9 июня 2025 г. 18:27:13(UTC)  | Причина: Не указана

Offline Ситдиков Денис  
#2 Оставлено : 10 июня 2025 г. 12:58:11(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 131
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 55 раз в 40 постах
Добрый день!
Цитата:
Pycades версии 0.1.58124
У вас используется старая версия pycades.
Некоторое время назад pycades был выложен на github, рекомендуем этот репозиторий для использования актуальных версий:
https://github.com/CryptoPro/pycades

В плагине версии 2.0.14589 был добавлен метод Store.Remove для удаления сертификатов из открытого хранилища.
В плагине версии 2.0.15400 был добавлен метод Store.ImportPFX для импорта .pfx. Документацию обновили.

Этих методов не было в pycades, добавили в коммите
https://github.com/Crypt...adea2c1a016e1a781a507286

Для добавления сертификатов в хранилища Root, CA, AddressBook можно воспользоваться методом Store.Add.
Добавить сертификат в My средствами pycades на данный момент нельзя.

Примеров использования перечисленных методов на python нет, можно воспользоваться кодом из WebTools (аналогичный код для javascript)
https://cryptopro.ru/sit...age/webtools.js?v=290886
thanks 1 пользователь поблагодарил Ситдиков Денис за этот пост.
Андрей * оставлено 07.08.2025(UTC)
Offline icl_username  
#3 Оставлено : 24 июля 2025 г. 10:20:03(UTC)
icl_username

Статус: Участник

Группы: Участники
Зарегистрирован: 20.01.2025(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 2 раз
Автор: Ситдиков Денис Перейти к цитате

Цитата:
Pycades версии 0.1.58124
У вас используется старая версия pycades.
Некоторое время назад pycades был выложен на github, рекомендуем этот репозиторий для использования актуальных версий:
https://github.com/CryptoPro/pycades

В плагине версии 2.0.14589 был добавлен метод Store.Remove для удаления сертификатов из открытого хранилища.
В плагине версии 2.0.15400 был добавлен метод Store.ImportPFX для импорта .pfx. Документацию обновили.

Этих методов не было в pycades, добавили в коммите
https://github.com/Crypt...adea2c1a016e1a781a507286



Добрый день!

Наконец-то разобрался со сборкой новой версии pycades.
Столкнулся с рядом проблем и вопросов:
1. pycades.ModuleVersion() выводит версию 0.1.70195. (хотя я брал исходники с гитхаба по вашей ссылке и сегодня перепроверил снова)
2. методы ImportPFX() и Remove() не распознаются:
2.1 AttributeError: type object 'pycades.Store' has no attribute 'Remove'
2.2 AttributeError: type object 'pycades.Store' has no attribute 'ImportPFX'


также в сообщении об обновлении пакета нет информации о добавлении этих методов https://cryptopro.ru/for...&m=153003#post153003

подскажите, пожалуйста, что я делаю не так?



Также есть вопрос -- возможно ли как-то проверить через pycades наличие или отсутствие пароля у сертификата?
Перед подписанием с помощью сертификата нужно указывать signer.KeyPin. Однако, если его не указать, а у сертификата есть пароль, то блокируется поток работы приложения.
Хочется это избежать, но не могу найти чего-либо, что позволяло бы делать проверку на "ожидаемость" пароля для конкретного сертификата.
Буду благодарен за любую информацию

Отредактировано пользователем 25 июля 2025 г. 13:58:11(UTC)  | Причина: Не указана

Offline Ситдиков Денис  
#4 Оставлено : 7 августа 2025 г. 16:23:46(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 131
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 55 раз в 40 постах
Добрый день!
Цитата:
1. pycades.ModuleVersion() выводит версию 0.1.70195. (хотя я брал исходники с гитхаба по вашей ссылке и сегодня перепроверил снова)
pycades не является частью плагина, их версии не должны совпадать. Актуальная версия pycades - на гитхабе.

Цитата:
2. методы ImportPFX() и Remove() не распознаются:
2.1 AttributeError: type object 'pycades.Store' has no attribute 'Remove'
2.2 AttributeError: type object 'pycades.Store' has no attribute 'ImportPFX'
Какая версия плагина используется? Она выводится при вызове cmake (https://docs.cryptopro.ru/cades/pycades/pycades-build):
Код:
~/build$ cmake ..
-- The CXX compiler identification is GNU 11.4.0
...
-- cprocsp-pki-cades: 2.0.15400


Цитата:
также в сообщении об обновлении пакета нет информации о добавлении этих методов
plugin: В плагин добавлен метод Store.Remove (CADES-2292) (2.0.14589)
plugin: Исправлена ошибка при использовании кириллицы в пароле на pfx в Store.ImportPFX (CADES-2698) (2.0.15400)
Информации о добавлении этих методов в pycades не будет, ее можно посмотреть только в истории коммитов на гитхабе (ссылка)
Цитата:
Также есть вопрос -- возможно ли как-то проверить через pycades наличие или отсутствие пароля у сертификата?
Пароль задается не для сертификата, а для контейнера закрытого ключа.
Проверить, является ли пароль на контейнер паролем по умолчанию можно с помощью метода PrivateKey.IsDefaultPin.
Offline icl_username  
#5 Оставлено : 8 августа 2025 г. 11:49:42(UTC)
icl_username

Статус: Участник

Группы: Участники
Зарегистрирован: 20.01.2025(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 2 раз
Добрый день!

Цитата:
Какая версия плагина используется? Она выводится при вызове cmake (https://docs.cryptopro.ru/cades/pycades/pycades-build):
Код:
~/build$ cmake ..
-- The CXX compiler identification is GNU 11.4.0
...
-- cprocsp-pki-cades: 2.0.15400



Да, вы правы. У меня версия старше стоит.
Но я не понимаю где найти свежую.

Подскажите, пожалуйста, где я могу найти все свежие пакеты, а именно:
1. Плагин cades
2. pycades
3. КриптоПро CSP
?


По проверки пароля к контейнеру понял, спасибо большое!
Offline Ситдиков Денис  
#6 Оставлено : 8 августа 2025 г. 13:49:32(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 131
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 55 раз в 40 постах
1. Комплект КриптоПро CSP + Плагин (кнопка "Актуальный криптопровайдер и плагин") - Страница загрузки
2. pycades - github
Offline icl_username  
#7 Оставлено : 12 августа 2025 г. 17:18:56(UTC)
icl_username

Статус: Участник

Группы: Участники
Зарегистрирован: 20.01.2025(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 2 раз
Автор: Ситдиков Денис Перейти к цитате
1. Комплект КриптоПро CSP + Плагин (кнопка "Актуальный криптопровайдер и плагин") - Страница загрузки
2. pycades - github



Спасибо за ответ!

Я таки разобрался с плагином и pycades. Оказалось, что не ту версию плагина устанавливал.


Но я столкнулся с другой проблемой. При попытке импорта pycades.so получаю такую ошибку:
Цитата:
undefined symbol: _ZN9CryptoPro3PKI5CAdES21CPPCadesCPStoreObject16get_CertificatesERN5boost10shared_ptrINS1_28CPPCadesCPCertificatesObjectEEE

это происходит на версии плагина
Цитата:
cprocsp-pki-cades: 2.0.15400



Из информации что я нашёл на форуме и гитхабе phpcades, понял, что рекомендация одна - откатить версию плагина.
Я попробовал откатиться на
Цитата:
cprocsp-pki-cades: 2.0.15000
и ошибка что я описал выше прошла.
Но при этом я не могу получить версию
Цитата:
pycades 0.1.70196
, в которой был добавлен метод для проверки наличия пароля у контейнера.


В результате
Цитата:
cprocsp-pki-cades: 2.0.15000
и
Цитата:
0.1.70195
работают корректно, а
Цитата:
cprocsp-pki-cades: 2.0.15400
и
Цитата:
0.1.70196
- нет. Полагаю, что дело в плагине.

Подскажите, пожалуйста, что я могу сделать с этим ?

Отредактировано пользователем 12 августа 2025 г. 17:19:42(UTC)  | Причина: Не указана

Offline Ситдиков Денис  
#8 Оставлено : 12 августа 2025 г. 18:33:27(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 131
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 55 раз в 40 постах
Цитата:
Но я столкнулся с другой проблемой. При попытке импорта pycades.so получаю такую ошибку:
Цитата:
undefined symbol: _ZN9CryptoPro3PKI5CAdES21CPPCadesCPStoreObject16get_CertificatesERN5boost10shared_ptrINS1_28CPPCadesCPCertificatesObjectEEE
Какая версия CSP у Вас используется? Что возвращает
Код:
dpkg -l | grep cprocsp

Отредактировано пользователем 12 августа 2025 г. 18:39:06(UTC)  | Причина: Не указана

Offline icl_username  
#9 Оставлено : 13 августа 2025 г. 9:45:36(UTC)
icl_username

Статус: Участник

Группы: Участники
Зарегистрирован: 20.01.2025(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 2 раз
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Но я столкнулся с другой проблемой. При попытке импорта pycades.so получаю такую ошибку:
Цитата:
undefined symbol: _ZN9CryptoPro3PKI5CAdES21CPPCadesCPStoreObject16get_CertificatesERN5boost10shared_ptrINS1_28CPPCadesCPCertificatesObjectEEE
Какая версия CSP у Вас используется? Что возвращает
Код:
dpkg -l | grep cprocsp



Output:
Код:
dpkg -l | grep cprocsp
ii  cprocsp-curl-64                        5.0.13455-7                          amd64        CryptoPro cURL shared library and application. Build 13455.
ii  cprocsp-pki-cades-64                   2.0.15400-1                          amd64        CryptoPro ECP SDK
ii  lsb-cprocsp-base                       5.0.13455-7                          all          CryptoPro CSP directories and scripts. Build 13455.
ii  lsb-cprocsp-ca-certs                   5.0.13455-7                          all          CryptoPro CA certificates. Build 13455.
ii  lsb-cprocsp-capilite-64                5.0.13455-7                          amd64        CryptoPro CSP. CryptoAPI Lite libraries and applications. Build 13455.
ii  lsb-cprocsp-devel                      5.0.13455-7                          all          CryptoPro CSP developer headers and examples. Build 13455.
ii  lsb-cprocsp-kc1-64                     5.0.13455-7                          amd64        CryptoPro CSP KC1. Build 13455.
ii  lsb-cprocsp-rdr-64                     5.0.13455-7                          amd64        CryptoPro CSP common libraries and utilities. Build 13455.



Скачиваю эту версию:

Код:
КриптоПро CSP 5.0 R4 для Linux со встроенным cades/plugin
Для Linux (x64, deb) - Astra Linux, Ubuntu

Контрольная сумма
ГОСТ: A7A86E6C50908C7B900CA7CA762E71BBD7A75D756A1C68578D4B9EEB41C0BADB
MD5: 1b1ade4d008c5e8c78407d332553c9b4

Отредактировано пользователем 13 августа 2025 г. 9:54:41(UTC)  | Причина: Не указана

Offline Ситдиков Денис  
#10 Оставлено : 15 августа 2025 г. 2:26:01(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 131
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 55 раз в 40 постах
Автор: icl_username Перейти к цитате
Но я столкнулся с другой проблемой. При попытке импорта pycades.so получаю такую ошибку:
Цитата:
undefined symbol: _ZN9CryptoPro3PKI5CAdES21CPPCadesCPStoreObject16get_CertificatesERN5boost10shared_ptrINS1_28CPPCadesCPCertificatesObjectEEE
При комплектной установке актуальных криптопровайдера и плагина такой ошибки возникать не должно, воспроизвести не удалось.

В качестве примера сборки добавлен Dockerfile
https://github.com/Crypt...des/blob/main/Dockerfile

Попробуйте собрать этот образ, предварительно скопировав папку с дистрибутивом:
Код:
# cp -r ~/linux-amd64_deb/ .
# docker build -t pycades-build .

И запустить пример после сборки:
Код:
# docker run -it pycades-build
# /opt/cprocsp/bin/amd64/cryptcp -createcert -dn "CN=test" -provtype 80 -cont '\\.\HDIMAGE\test' -ca https://cryptopro.ru/certsrv
# python3 sample_sign_verify.py
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.