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」は、終了ステータス「OK」で 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 を手動でインストールすると、テスト スイートは正常に動作します。
私の問題を解決するための助けをいただければ幸いです。
どうもありがとう
-つぼみ