Skip to main content

Адаптер(Python) для работы с ЭЦП РК

Project description

pykalkan

Установка:

pip install pykalkan

Начало работы

Для работы с ЭЦП (Электронной Цифровой Подписью) используется библиотека Kalkan Crypt. Вам необходимо выполнить следующие шаги:

  1. Установите нужную версию библиотеки Kalkan Crypt из SDK (SDK/C/Linux/C/libs). Например:

    sudo cp -f libkalkancryptwr-64.so.2.0.2 /usr/lib/libkalkancryptwr-64.so
    
  2. Установите CA (Certificate Authority) сертификаты из папки SDK/C/Linux/ca-certs. В этой папке находятся два типа сертификатов: production и test. Для установки сертификатов используйте предоставленные скрипты.

    Обратите внимание, что при установке сертификатов потребуются права суперпользователя (sudo).

Пример работы с библиотекой Kalkan Crypt

Вот пример использования библиотеки Kalkan Crypt для проверки ЭЦП на валидность:

Внимание! Динамическая библиотека не предназначена для одновременного обращения к ней


Подключение библиотеки и загрузка хранилища ключей

from pykalkan import Adapter

lib = "libkalkancryptwr-64.so"

# Инициализация происходит в контекстном менеждере
# При выходе из контекста происходит finalize()
with Adapter(lib) as adapter:
    adapter.load_key_store(CERT_PATH, CERT_PASSWORD)
    adapter.set_tsa_url()

Подпись данных в виде base64 строки

...
data = "SGVsbG8sIFdvcmxkIQ=="

signed_data = adapter.sign_data(data)
...

Проверка подписи на валидность и отозванность (OCSP или CRL)

...
res = adapter.verify_data(signed_data, data_to_verify)

cert = res.get("Cert").decode()

validate_result = adapter.x509_validate_certificate_ocsp(cert)  # OCSP
#  или
validate_result = adapter.x509_validate_certificate_crl(cert, path_to_crl_file)  # CRL
...

На данный момент (на 21.08.23) реализованы следующие функции из библиотеки:

  • KC_Init
  • KC_LoadKeyStore
  • KC_Finalize
  • KC_SignData
  • KC_VerifyData
  • X509ExportCertificateFromStore
  • X509LoadCertificateFromStore
  • X509CertificateGetInfo
  • X509ValidateCertificate (CRL + OCSP)
  • TSASetUrl
  • GetTimeFromSign

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pykalkan-1.2.0.tar.gz (14.0 kB view hashes)

Uploaded Source

Built Distribution

pykalkan-1.2.0-py3-none-any.whl (15.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page