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.3.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pykalkan-1.3.0-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file pykalkan-1.3.0.tar.gz.

File metadata

  • Download URL: pykalkan-1.3.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pykalkan-1.3.0.tar.gz
Algorithm Hash digest
SHA256 7bb80384c9bc3b8b01b046037efb7c2cdab31b8ed1b1b8f90624bdd1389d7e73
MD5 f538bf78dfa38830e6839737d9643be8
BLAKE2b-256 5c7e088edbcaa54496072a149b0a63bcb80d868a7292dac2b0493ec3062c2516

See more details on using hashes here.

File details

Details for the file pykalkan-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: pykalkan-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pykalkan-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f6084fb6850cf217565f9fea659f050ced26470d3a5072c24936cb30df28637
MD5 95d67ae08cafd2124c48333c867dbadc
BLAKE2b-256 3d17d721702289cbb19b3e63015bd53a0ee1a109ac54cf6b9cccdbd3b3d7a786

See more details on using hashes here.

Supported by

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