Я использую M2Crypto-0.20.2. Я хочу использовать engine_pkcs11 из проекта OpenSC и клиента PKI Aladdin для аутентификации на основе токенов, делая вызовы xmlrpc через ssl.
from M2Crypto import Engine
Engine.load_dynamic()
dynamic = Engine.Engine('dynamic')
# Load the engine_pkcs from the OpenSC project
dynamic.ctrl_cmd_string("SO_PATH", "/usr/local/ssl/lib/engines/engine_pkcs11.so")
Engine.cleanup()
Engine.load_dynamic()
# Load the Aladdin PKI Client
aladdin = Engine.Engine('dynamic')
aladdin.ctrl_cmd_string("SO_PATH", "/usr/lib/libeTPkcs11.so")
key = aladdin.load_private_key("PIN","password")
Это ошибка, которую я получаю:
key = pkcs.load_private_key("PIN","eT0ken")
File "/usr/local/lib/python2.4/site-packages/M2Crypto/Engine.py", line 70, in load_private_key
return self._engine_load_key(m2.engine_load_private_key, name, pin)
File "/usr/local/lib/python2.4/site-packages/M2Crypto/Engine.py", line 60, in _engine_load_key
raise EngineError(Err.get_error())
M2Crypto.Engine.EngineError: 23730:error:26096075:engine routines:ENGINE_load_private_key:not initialised:eng_pkey.c:112:
Для load_private_key()
, что должно быть передано в качестве первого аргумента? Документация M2Crypto не объясняет этого.
Я не получаю никаких ошибок при загрузке двигателей, но я не уверен, правильно ли я их загружаю. Кажется, что идентификатор двигателя должен быть конкретным именем, но я нигде не нахожу этот список. 'dynamic'
работает на меня.
Любая помощь будет оценена!