pykalkan
Установка:
pip install pykalkan
Начало работы
Для работы с ЭЦП (Электронной Цифровой Подписью) используется библиотека Kalkan Crypt. Вам необходимо выполнить следующие шаги:
-
Установите нужную версию библиотеки Kalkan Crypt из SDK (SDK/C/Linux/C/libs). Например:
sudo cp -f libkalkancryptwr-64.so.2.0.2 /usr/lib/libkalkancryptwr-64.so
-
Установите 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
Release files for pykalkan 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pykalkan-1.3.0.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pykalkan-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.3 kB
Release files / pykalkan-1.3.0.tar.gz
| Download URL | pykalkan-1.3.0.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7bb80384c9bc3b8b01b046037efb7c2cdab31b8ed1b1b8f90624bdd1389d7e73
|
|
BLAKE2b-256 checksum How to use checksums |
5c7e088edbcaa54496072a149b0a63bcb80d868a7292dac2b0493ec3062c2516
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pykalkan-1.3.0-py3-none-any.whl
| Download URL | pykalkan-1.3.0-py3-none-any.whl |
|---|---|
| Size | 18.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f6084fb6850cf217565f9fea659f050ced26470d3a5072c24936cb30df28637
|
|
BLAKE2b-256 checksum How to use checksums |
3d17d721702289cbb19b3e63015bd53a0ee1a109ac54cf6b9cccdbd3b3d7a786
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|