PythonとM2Cryptoを使用して動的エンジンとしてEnginePKCS#11をロードする際に問題が発生しました。AladdinUSBeTokenにアクセスしようとしています。
これが私のPythonコードからの重要なステップです:
dynamic = Engine.load_dynamic_engine("pkcs11", "/usr/local/ssl/lib/engines/engine_pkcs11.so")
pkcs11 = Engine.Engine("pkcs11")
pkcs11.ctrl_cmd_string("MODULE_PATH", "/usr/lib/libeTPkcs11.so")
pkcs11.engine_init_custom() # initialize engine with custom M2Crypto patch
# next few steps which I deleted pass password and grab key & cert off token
Engine.cleanup()
これは、このメソッドを初めて実行するときに正常に機能します。2回目は、動的エンジンのロード時に失敗します(以下のエラーを参照)。
トレースバック(最後の最後の呼び出し):ファイル ""、1行目?ファイル"/usr/local/lib/python2.4/site-packages/M2Crypto/Engine.py"、行98、load_dynamic_engine e.ctrl_cmd_string( "LOAD"、None)ファイル "/ usr / local / lib/python2。 4 / site-packages / M2Crypto / Engine.py "、38行目、ctrl_cmd_stringのraise EngineError(Err.get_error())M2Crypto.Engine.EngineError:4002:error:260B606D:engineroutines:DYNAMIC_LOAD:init failed:eng_dyn.c :521:
Pythonセッションでエンジンを2回ロードすることは不可能ですか?ある種のエンジンのクリーンアップ/削除がありませんか?OpenSSLのドキュメントではengine_finish()について説明していますが、M2Cryptoがそれを提供しているとは思いません。エンジンがすでにロードされているかどうかを確認する方法はありますか?
ありがとう!