Git Product home page Git Product logo

pycryptoprosdk's Introduction

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

pycryptoprosdk's People

Contributors

uishnik avatar pantyukhov avatar

Watchers

Vladimir Voznesenskiy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.