2016-02-26 2 views
1

Я пытаюсь повторить эту команду OpenSSL с M2CryptoПроверьте подписанное сообщение с M2Crypto для самостоятельного сертификата

openssl smime -verify -in local_files/auth_data.pem.pk7 -inform PEM -certfile certificate.crt -noverify 

Моего кода выглядит следующим образом:

smime = M2Crypto.SMIME.SMIME() 

x509_store = M2Crypto.X509.X509_Store() 
x509_store.load_info(ca_file) 
smime.set_x509_store(x509_store) 

x509_stack = M2Crypto.X509.X509_Stack() 
x509_cert = M2Crypto.X509.load_cert(cert_file) 
x509_stack.push(x509_cert) 
smime.set_x509_stack(x509_stack) 

p7 = M2Crypto.SMIME.load_pkcs7_bio(M2Crypto.BIO.MemoryBuffer(cipher_text)) 

decrypted_data = smime.verify(p7) 

Но я получаю эту ошибку в последняя строка:

PKCS7_Error: certificate verify error 

Я не могу заставить M2Crypto вести себя как OpenSSL с '-noverify' флагом.

Я попытался загрузить тот же сертификат в X509_Store, но это был тот же результат.

ответ

1

Я взял меня некоторое время, но я нашел ответ в этом исходном коде https://pythonhosted.org/pysmime/pysmime.core-pysrc.html#verify

Это код, чтобы самостоятельно подписанный сертификат:

decrypted_data = smime.verify(p7, flags=M2Crypto.SMIME.PKCS7_NOVERIFY) 
Смежные вопросы