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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| pykalkan-1.3.0.tar.gz | 16.4 kB | Without provenance | Details for pykalkan-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pykalkan-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for pykalkan-1.3.0-py3-none-any.whl |
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
|
Security for pykalkan 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.