Расширение Pycades предоставляет программный интерфейс, аналогичный КриптоПро
Project description
pycades
Данный проект создан для удобной установки pycades в свой проект, пока только для linux систем
pycades представляет собой расширение для Python3, которое реализует интерфейс, аналогичный CAdESCOM.
pip install pycades
Если не установлены зависимости КриптоПро CSP, то библиотека начинает вести себя непредсказуемо и некоторые методы перестают работать, для лучшей работы желательно установить все зависимости с оф сайта или найти в гите /libs (можно ограничиться КриптоПро CSP, /libs/linux-amd64_deb через install.sh)
Несколько примеров
больше можно посмотреть в директории с тестами
Загрузка сертификата из фала:
from pycades import pycades
if __name__ == "__main__":
with open('./certs/Kornevoy-sertifikat-GUTS-2022.CER', "rb") as f:
cert = pycades.Certificate()
cert.Import(f.read())
print(cert.IsValid().Result)
Получение данных сертификата:
from pycades import pycades
def test_get_info_method(cert):
# Возвращает имя субъекта.
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME) == 'Минцифры России'
# Возвращает имя издателя сертификата.
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME) == 'Минцифры России'
# Возвращает адрес электронной почты субъекта
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME) == 'dit@digital.gov.ru'
# Возвращает адрес электронной почты издателя сертификата.
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME) == 'dit@digital.gov.ru'
# Возвращает UPN субъекта сертификата
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_SUBJECT_UPN) == ''
# Возвращает UPN издателя сертификата
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_ISSUER_UPN) == ''
# Возвращает DNS-имя субъекта сертификата. .
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_SUBJECT_DNS_NAME) == 'Минцифры России'
# Возвращает DNS-имя издателя сертификата.
assert cert.GetInfo(pycades.CAPICOM_CERT_INFO_ISSUER_DNS_NAME) == 'Минцифры России'
def test_get_base_info(cert):
# Дата, с которой сертификат действителен.
assert cert.ValidFromDate == '08.01.2022 13:32:39'
# Дата, до которой сертификат действителен
assert cert.ValidToDate == '08.01.2040 13:32:39'
# Серийный номер.
assert cert.SerialNumber == '00951FA3477C61043AADFA858627823442'
name = (
'CN=Минцифры России, ИНН ЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры '
'России, STREET="Пресненская набережная, дом 10, строение 2", L=г. Москва, '
'S=77 Москва, C=RU, E=dit@digital.gov.ru'
)
# Издатель сертификата.
assert cert.IssuerName == name
# Имя субъекта.
assert cert.SubjectName == name
# Отпечаток.
assert cert.Thumbprint == '2F0CB09BE3550EF17EC4F29C90ABD18BFCAAD63A'
# Версия сертификата.
assert cert.Version == 3
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pycades-1.1.4-py3-none-any.whl
.
File metadata
- Download URL: pycades-1.1.4-py3-none-any.whl
- Upload date:
- Size: 55.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ee6cc528b98d846c54bbbfe076bf971d54e3eef9b78d640d0a9d34e3bd6e571 |
|
MD5 | b77736c7917849e6afb3cfa11c3cbdf5 |
|
BLAKE2b-256 | 96db72ff568ea952099677d371a4a30d29200a3e40b7905ebd101024539a6753 |