Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2012 12:05:09

Ariesua
От:
Зарегистрирован: 2011-06-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

OpenSSL и проверка сертификата

Два дня мучаюсь. Никак не получается проверить достоверность сертификата и сигнатуры.
Что имеется:

файл

f = """
-----BEGIN CERTIFICATE-----
MIID................................9qrAFkxoA==
-----END CERTIFICATE-----
"""
сигнатура
s = 'xjJwgeLAyWssZr3/gS7TI/xaajoF...wBoTnaPMQmKpxTI=
(сертификат и сигнатура приведена не полностью, у меня паранойя :))

Как можно проверить verify что сигнатура и сертификат рабочие?

Использовал такой код
import M2Crypto

cert = M2Crypto.X509.load_cert(f)
pk = cert.get_pubkey()
pk.reset_context(md='sha1')
pk.verify_init()

print pk.verify_final(s)
>>>0
Данный сертификат и сигнатуру проверял в PHP - они рабочие.
Как можно это сделать в питоне?
Код, который привел выше - не верно работает :(
Буду рад любой помощи.



Офлайн

#2 Авг. 1, 2012 09:07:12

llolla
От:
Зарегистрирован: 2011-06-24
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

OpenSSL и проверка сертификата

Ariesua
Два дня мучаюсь. Никак не получается проверить достоверность сертификата и сигнатуры.
Что имеется:

файл
f = """
-----BEGIN CERTIFICATE-----
MIID................................9qrAFkxoA==
-----END CERTIFICATE-----
"""
сигнатура
s = 'xjJwgeLAyWssZr3/gS7TI/xaajoF...wBoTnaPMQmKpxTI=
(сертификат и сигнатура приведена не полностью, у меня паранойя :))

Как можно проверить verify что сигнатура и сертификат рабочие?

Использовал такой код
import M2Crypto

cert = M2Crypto.X509.load_cert(f)
pk = cert.get_pubkey()
pk.reset_context(md='sha1')
pk.verify_init()

print pk.verify_final(s)
>>>0
Данный сертификат и сигнатуру проверял в PHP - они рабочие.
Как можно это сделать в питоне?
Код, который привел выше - не верно работает :(
Буду рад любой помощи.

похоже, ответ здесь - http://stackoverflow.com/questions/2848542/how-to-verify-a-signature-using-m2crypto-0-16
x509 = X509.load_cert_string(certificate)
pubkey = x509.get_pubkey()
pubkey.reset_context(md=sha1)
pubkey.verify_init()
pubkey.verify_update(content)
decoded_signature = signature.decode('base64')
if pubkey.verify_final(decoded_signature)==0:
    print 'error'
    sys.exit(1)



Отредактировано llolla (Авг. 1, 2012 15:26:42)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version