我在加载 pkcs#7 文件时遇到问题,请您帮忙找出我做错了什么。
我使用 OpenSSL 0.9.8g(如 Ubuntu 9.4 中存在的)运行 M2Crypto-0.21.1,并使用 SWIG 1.3.36 和 python 2.6.2 构建。
“python setup.py test --test-suite=tests.test_smime”运行 15 个测试,退出状态为“OK”;所以安装似乎没问题。
我使用数字签名程序创建了一个 PEM 格式的 pkcs#7 文件,并从命令行使用 OpenSSL 对其进行了测试:
openssl smime -verify -inform PEM -in mandato-PEM.p7m -noverify
打印信封中包含的内容(我签名的文本文件)和“验证成功”。所以 OpenSSL(与 M2Crypto 使用的版本相同)似乎喜欢我的文件。
但是,当我在 M2Crypto 中尝试相同的操作时,它会在一开始就阻塞:
p7, 数据 = 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,测试套件运行良好。
对解决我的问题的任何帮助将不胜感激!
非常感谢
-芽