Адаптер(Python) для работы с ЭЦП РК
Project description
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
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
Built Distribution
File details
Details for the file pykalkan-1.2.0.tar.gz
.
File metadata
- Download URL: pykalkan-1.2.0.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
b9d0533524ec4a672aea9b2c87af1e71cd7f2fa99bd955fd0d977d4cd57776fd
|
|
MD5 |
010722af0cd424675628f53a901a2c61
|
|
BLAKE2b-256 |
96dca95360845a01b400900c967a1e5d2d376ff4fb814722c135b6172575cad9
|
File details
Details for the file pykalkan-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: pykalkan-1.2.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
38a5b004eace6cc450b662de04916a0b398abfd476a4eed74eba7e6a5d68d4bb
|
|
MD5 |
e5145450a4f7f4178c4d43bb49aa4064
|
|
BLAKE2b-256 |
74474a7acbd4409a7b4ac04338f5e83bf6aad5eecb16dbbbea7445bc20919867
|