Skip to content

Библиотека для работы с Cryptopro CSP в python

Notifications You must be signed in to change notification settings

vvoznesensky/pycryptoprosdk

 
 

Repository files navigation

pycryptoprosdk

Библиотека для работы с Cryptopro CSP в python

Установка

  1. Установить КриптоПро CSP.
  2. Установить пакеты lsb-cprocsp-devel-.noarch.rpm и cprocsp-pki-amd64-cades.rpm из состава КриптоПро ЭЦП SDK.
  3. При необходимости, создать симлинк:
ln -s /opt/cprocsp/lib/amd64/libcades.so.2.0.0 /opt/cprocsp/lib/amd64/libcades.so

Пример установки пакетов можно посмотреть в pycryptoprosdk/compose/Dockerfile.

  1. Установить pycryptoprosdk:
python setup.py install

Примеры использования

from pycryptoprosdk import CryptoProSDK


sdk = CryptoProSDK()


# верификация отсоединенной подписи:
with open('doc.txt', 'rb') as f:
    content = b64encode(f.read())

with open('doc.txt.sig', 'rb') as f:
    signature = b64encode(f.read())

res = sdk.verify_detached(content, signature)


# создание хэша файла алгоритмом ГОСТ Р 34.11-94:
with open('doc.txt'), 'rb') as f:
    content = f.read()
h = sdk.create_hash(content, alg='CALG_GR3411')


# поиск сертификата в хранилище 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', b64encode(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)

Сборка образа и запуск тестов:

docker-compose up --build --force-recreate

About

Библиотека для работы с Cryptopro CSP в python

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 42.7%
  • Python 41.6%
  • Shell 13.3%
  • Dockerfile 2.4%