J'utilise M2Crypto-0.20.2. Je veux utiliser engine_pkcs11 du projet OpenSC et le client PKI d'Aladdin pour l'authentification basée sur les jetons, ce qui rend les appels xmlrpc via ssl.Besoin d'aide en utilisant M2Crypto.Engine pour accéder à USB Token
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")
C'est l'erreur que je reçois:
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:
Pour load_private_key()
, ce qui devrait être adopté comme premier argument? La documentation M2Crypto ne l'explique pas.
Je ne reçois aucune erreur lors du chargement des moteurs, mais je ne suis pas sûr de les charger correctement. Il semble que l'identifiant du moteur doive être un nom spécifique mais je ne trouve cette liste nulle part. 'dynamic'
travaille pour moi.
Toute aide serait appréciée!
Bon travail! J'ai suivi vos instructions pour patcher M2Crypto et j'ai pu aussi passer l'erreur d'initialisation. Je vous remercie. – Becky
Bon travail! Pourriez-vous déposer un bug sur M2Crypto? De plus, pourriez-vous indiquer à quel moment 'ENGINE_init()' doit-il être appelé? –
J'ai changé l'actuel m2.engine_init en engine_init_error, exposé m2.engine_init et engine_finish et ajouté les méthodes init et finish à la classe Engine. Vérifié dans le tronc M2Crypto, s'il vous plaît tester avant de faire la prochaine version. –