Найти - Пользователи
Полная версия: OpenSSL и проверка сертификата
Начало » Python для экспертов » OpenSSL и проверка сертификата
1
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 - они рабочие.
Как можно это сделать в питоне?
Код, который привел выше - не верно работает :(
Буду рад любой помощи.
llolla
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)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB