Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Володя  
#1 Оставлено : 12 февраля 2024 г. 21:02:33(UTC)
Володя

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.02.2024(UTC)
Сообщений: 1

Добрый день!

Подскажите, пожалуйста:
1. Как прописать аналоги -nochain -norev в pycades?
2. Почему в приведённом коде возникает ошибка при снятии подписи?
3. Мне ещё предстоит в бинарном виде снимать подпись, но методы Verify/VerifyCades настаивают, чтобы им передавали строку; что я упускаю?

Пока в питоне подписываем и снимаем подпись файлов командами
cryptcp -sign -nochain -norev -thumbprint some_thmbprint -der in out.sig
cryptcp -verify -nochain -norev out.sig out
так "всё работает"

В таком коде возникает ошибка "The revocation process could not continue - the certificate(s) could not be checked. (0x800B010E)":
Код:

import pycades


store = pycades.Store()
store.Open(pycades.CAPICOM_CURRENT_USER_STORE, pycades.CAPICOM_MY_STORE, pycades.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)

cert = store.Certificates.Find(pycades.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, "some_thumbprt").Item(1)

signer = pycades.Signer()
signer.Certificate = cert
# хз что это, тут предлагается поставить https://docs.cryptopro.ru/cades/pycades/pycades-samples/pycades-sign-verify,
# но описания этого аттра тут https://learn.microsoft.com/en-us/windows/win32/seccrypto/signer не нашёл
# без него, похоже, возникает Exception: The URL of TSP service is not specified. (0xC2100121)
# signer.CheckCertificate = True # <<< зачем это?

signed_data = pycades.SignedData()
signed_data.Content = "{'hello': 'salut'}"
signer.Options = pycades.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY  # <<< это -nochain?
# в доках предлагают вторым аргументом pycades.CADESCOM_CADES_BES. Хз, что зависит от этого
signature = signed_data.SignCades(signer, pycades.CADESCOM_PKCS7_TYPE, False) #, pycades.CAPICOM_ENCODE_BINARY)

print("--Signature--")
print(signature)
print("----")

_signed_data = pycades.SignedData()
# _signed_data.ContentEncoding = pycades.CAPICOM_ENCODE_BINARY
_signed_data.VerifyCades(signature, pycades.CADESCOM_PKCS7_TYPE)
print("Verified successfully")
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.