No project description provided
Project description
Библиотека для работы с Cryptopro CSP в python
Установка
Установить КриптоПро CSP.
Установить пакеты lsb-cprocsp-devel-.noarch.rpm и cprocsp-pki-amd64-cades.rpm из состава КриптоПро ЭЦП SDK.
При необходимости, создать симлинк:
ln -s /opt/cprocsp/lib/amd64/libcades.so.2.0.0 /opt/cprocsp/lib/amd64/libcades.so
Пример установки пакетов можно посмотреть в pycryptoprosdk/compose/Dockerfile.
Установить pycryptoprosdk:
pip install pycryptoprosdk
Примеры использования
>>> from pycryptoprosdk import CryptoProSDK
>>> sdk = CryptoProSDK()
# Создание и проверка отсоединенной подписи:
>>> content = 'test content'
>>> cert = sdk.get_cert_by_subject('MY', 'Ivan')
>>> signature = sdk.sign(content, cert.thumbprint, 'MY', detached=True)
>>> result = sdk.verify_detached(content, signature)
# статус проверки:
>>> result.verification_status
0
# 0: Успешная проверка подписи.
# 1: Отсутствуют или имеют неправильный формат атрибуты со ссылками и значениями доказательств подлинности.
# 2: Сертификат, на ключе которого было подписано сообщение, не найден.
# 3: В сообщении не найден действительный штамп времени на подпись.
# 4: Значения ссылок на доказательства подлинности и сами доказательства, вложенные в сообщение, не соответствуют друг другу.
# 5: Не удалось построить цепочку для сертификата, на ключе которого подписано сообщение.
# 6: Ошибка проверки конечного сертификата на отзыв.
# 7: Ошибка проверки сертификата цепочки на отзыв.
# 8: Сообщение содержит неверную подпись.
# 9: В сообщении не найден действительный штамп времени на доказательства подлинности подписи.
# 10: Значение подписанного атрибута content-type не совпадает со значением, указанным в поле encapContentInfo.eContentType.
# сертификат подписанта:
>>> result.cert.as_dict()
{'CN': 'Ivan'}
# создание хэша файла алгоритмом ГОСТ Р 34.11-94:
>>> sdk.create_hash('some text', alg='CALG_GR3411')
'046255290b0eb1cdd1797d9ab8c81f699e3687f3'
# поиск сертификата в хранилище MY по отпечатку:
>>> cert = sdk.get_cert_by_thumbprint('MY', '046255290b0eb1cdd1797d9ab8c81f699e3687f3')
# поиск сертификата по имени:
>>> cert = sdk.get_cert_by_subject('MY', 'CRYPTO-PRO Test Center 2')
# установка сертификата в хранилище MY:
>>> with open('certificate.cer'), 'rb') as f:
>>> cert_content = f.read()
>>> sdk.install_certificate('MY', cert_content)
# удаление сертификата из хранилища MY по отпечатку:
>>> sdk.delete_certificate('MY', '9e78a331020e528c046ffd57704a21b7d2241cb3')
# извлечение сертификата подписанта из подписи:
>>> with open('signature.sig', 'rb') as f:
>>> signature_content = f.read()
>>> cert = sdk.get_signer_cert_from_signature(signature_content)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pycryptoprosdk-1.0.0.tar.gz
(8.7 kB
view details)
File details
Details for the file pycryptoprosdk-1.0.0.tar.gz
.
File metadata
- Download URL: pycryptoprosdk-1.0.0.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e44f01b63bff4eecd1261b13ed55b1df988553a713b8ead7f55ba287f00e533 |
|
MD5 | 99570e30f4c9f8a992d1c397c0ed8f98 |
|
BLAKE2b-256 | 5f5574925376840196a328d6eb52bcfebce707d0232ec5d1eca063f692af7800 |