У меня проблемы с загрузкой файла pkcs # 7 и прошу вашей помощи выяснить, что я делаю неправильно.
Я запускаю M2Crypto-0.21.1 с OpenSSL 0.9.8g (как представлено в Ubuntu 9.4) и собран с SWIG 1.3.36 и python 2.6.2.
«python setup.py test --test-suite = tests.test_smime» запускает 15 тестов со статусом выхода «OK»; так что установка вроде бы в порядке.
Я создал файл pkcs # 7 в формате PEM с помощью программы для цифровой подписи и протестировал его с помощью OpenSSL из командной строки:
openssl smime -verify -inform PEM -in mandato-PEM.p7m -noverify
, который печатает содержимое, содержащееся в конверте (текстовый файл, который я подписал) и «Проверка успешна». Так что OpenSSL (та же версия, что и в M2Crypto), похоже, нравится мой файл.
Тем не менее, когда я пытаюсь сделать то же самое в M2Crypto, он сразу начинает подаваться:
p7, data = SMIME.smime_load_pkcs7 ('mandato-PEM.p7m')
Я получаю следующее исключение:
Traceback (most recent call last):
File "./sign.py", line 110, in <module>
p7, data = SMIME.smime_load_pkcs7('mandato-PEM.p7m')
File "/usr/local/lib/python2.6/dist-packages/M2Crypto-0.21.1-py2.6-linux-i686.egg/M2Crypto/SMIME.py", line 91, in smime_load_pkcs7
p7_ptr, bio_ptr = m2.smime_read_pkcs7(bio)
M2Crypto.SMIME.SMIME_Error: no content type
Хотя я нашел информацию о проблеме в Ubuntu (https://lists.ubuntu.com/archives/ubuntu-server-bugs/2010-July/038683.html),, мне кажется, что это не может быть применимо здесь, поскольку я собрал последнюю версию M2Crypto вручную, а набор тестов работает нормально.
Любая помощь в решении моей проблемы будет принята с благодарностью!
большое спасибо
-СТРОЙ