Python linux Ошибка

Добрый день
я интегрирую библиотек kalkan в superset
на windows используя KalkanCryptCOM.dll у меня все получилось

на теперь нужно все тоже самое сделать и на linux
что я сделал

  1. Скопировать libkalkancryptwr-64.so и libkalkancryptwr-64.so.1.1.1 в /usr/lib/.
    2)Пройти в папку SDK 2.0\C\Linux\libs_for_linux и скопировать папку kalkancrypt в каталог: /opt/
  2. Затем необходимо добавить в переменную окружения LD_LIBRARY_PATH путь к папке с библиотеками.

далее в python я использую библиотеку ctypes
import ctypes
далее я пытаюсь загрузить libkalkancryptwr-64.so
c.CDLL("/usr/lib/libkalkancryptwr-64.so")

но у меня выходит след ошибка
OSError: libkncagost.so: cannot open shared object file: No such file or directory
вопрос у вас есть пример на python для linux
заранее спасибо

Добрый день! У нас примера на python для linux нет.
Но, судя по ошибке, у вас динамические библиотеки с SDK 2.0\C\Linux\libs_for_linux не регистрированы в LD_LIBRARY_PATH

Гружу с помощью pathlib

libname = pathlib.Path(‘libkalkancryptwr-64.so’)
kc_lib = ctypes.CDLL(libname)

Да так и есть

но теперь иная ошибка

OSError: /lib/libkalkancryptwr-64.so: undefined symbol: xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass

Видимо, все еще не все библиотеки из SDK 2.0\C\Linux\libs_for_linux\kalkancrypt регистрированы. Так как, судя по ошибке, не определен метод из библиотеки xmlsec. Попробуйте посмотреть в строну прав доступа к библиотекам и какие права у python?

вы правы
установил все зависимости и все заработала
sudo apt-get install zlib1g-dev libpcsclite-dev libpcsclite1 libxml2-dev pkg-config libxmlsec1-openssl libxmlsec1-dev libxml2-dev

sudo pip3 install xmlsec
sudo pip3 install hypothesis

теперь выполняя код все ок
s=ctypes.CDLL(“libkalkancryptwr-64.so”)
s.Init()
GOST engine already loaded
0
теперь буду искать как получит нужные мне функция ))
и самым первым будет KC_LoadKeyStore как найду напишу
а если вы знаете как это сделать буду благодарен

1 Симпатия

Есть пример на С++ в SDK\C\Linux\C\test. По аналогии можете вызвать нужные функции.

По поводу xmlsec, надо установить именно нашу библиотеку xmlsec, а не скачивать в других местах. И включить ее в LD_LIBRARY_PATH. Библиотека также находится в пути SDK\C\Linux\libs_for_linux\kalkancrypt

Все понял спасибо буду проверять
как будут результаты отпишусь
потом сделаю пример на python

все получилось теперь я могу загружать и смотреть информацию про сертификат и отправлять на проверку
теперь вопрос а есть список кодов ошибок при проверке сертификата
то есть я проверяю сертификат и если просрочен мне он выдает 0x8f00042: Verify chain and certificates: - certificate has expired or is not yet valid
и вот мне интересно где можно взят список ошибок какой код у отозванного сертификата и т п

Добрый день!

Ошибки имеют тот же код, что и библиотеки для Windows.
В данном файле можете посмотреть описание методов и расшифровку ошибок: SDK 2.0\COM(Windows)\docs\Описание KalkanCryptCOM.docx

Благодарю
возник вопрос

я загружаю сертификат *.p12
через LoadKeyStore
загружаю сертификат через X509ExportCertificateFromStore
получаю данные через X509CertificateGetInfo
все работает

теперь делаю валидацию
через X509ValidateCertificate выходит ошибка
Load certificate from system store - failed to load root or intermediate certificate. Unable convert to X509.\r\n

при этом сертификаты как тестовые и боевые установлены
Но я думаю может дела в сроках этих сертификатах
как мне обновить тестовые и боевые сертификаты ?
так как они созданы 02,2020 года
а сертификат который я проверяю создан 03,2021

Итак на windows X509ValidateCertificate работает корректно выводит сообщение след
OCSP: check certificate status: good

а вот на ubuntu
я делаю тест SDK\SDK 2.0\C\Linux\C\test
и выходит след ошибка

> ERROR 0x8f00042: Load certificate from system store - failed to load root or intermediate certificate. Unable convert to X509.

при этом все сертификаты я установил (SDK\SDK 2.0\C\Linux\ca-certs\Ubuntu)
и тест и боевой
в чем может быть ошибка ?
прошу помочь

все решил проблему
проблема была в root учетке linux
то есть нужно была 2 раза делать установку сертификатов как под обычным пользователем и root

а также нужно было скачать все сертификаты с сайта и установить в папку /usr/local/share/ca-certificates/extra
затем нужно было также 2 раза делать update-ca-certificates под обычным и root

Добрый день!
Вы все верно сделали.
Инсталяторы для корневых сертификатов в Linux будут обновлены в SDK.