0

我正在使用 M2Crypto-0.20.2。我想使用 OpenSC 项目中的 engine_pkcs11 和 Aladdin PKI 客户端进行基于令牌的身份验证,通过 ssl 进行 xmlrpc 调用。

我正在尝试加载 PKCS#11 引擎以及 Aladdin 模块(请参见下面的代码)。但我得到一个错误: AttributeError: 'module' object has no attribute 'load_dynamic_engine'

from M2Crypto import SSL, m2
m2.load_dynamic_engine("dynamic","/usr/local/ssl/lib/engines/engine_pkcs11.so")
m2.load_dynamic_engine("pkcs11","/usr/lib/libeTPkcs11.so")

根据 M2Crypto 文档,此功能应该可用。这是我正在阅读的文档: http ://www.heikkitoivonen.net/m2crypto/api/

谁能指出我正确的文档或帮助弄清楚如何加载引擎?

谢谢!

4

2 回答 2

0

我读错了文档。load_dynamic_engine() 属于 Engine 模块。

我更改了命令,现在得到一个不同的错误: Engine.load_dynamic_engine("dynamic","/usr/local/ssl/lib/engines/engine_pkcs11.so")

引擎 ID 错误 Engine.load_dynamic_engine("dynamic","/usr/local/ssl/lib/engines/engine_pkcs11.so") 文件 "/usr/local/lib/python2.4/site-packages/M2Crypto/Engine.py ",第 92 行,在 load_dynamic_engine e.ctrl_cmd_string("LOAD", None) 文件 "/usr/local/lib/python2.4/site-packages/M2Crypto/Engine.py",第 38 行,在 ctrl_cmd_string 中引发 EngineError(Err .get_error()) M2Crypto.Engine.EngineError: 23541:error:260B606D:engine routines:DYNAMIC_LOAD:init failed:eng_dyn.c:521:

知道这意味着什么吗?

于 2010-02-03T16:52:28.907 回答
0

我自己没有使用过Engine模块,所以我不能给你任何明确的答案。但是,您应该查看test_engine.py模块以获取一些指示。我猜想加载 OpenSSL 提供的引擎你不应该使用那种形式的load_dynamic_engine(), 但要么load_dynamic()要么load_openssl(). 您可能load_dynamic_engine()仅在加载第 3 方模块时才需要。

于 2010-02-03T17:52:28.267 回答