ó ñ1Mc@s†dZddlmZmZmZmZdefd„ƒYZejeƒdd d„ƒYZ d„Z d„Z d „Z d „Z d S( sB M2Crypto wrapper for OpenSSL ENGINE API. Pavel Shramov IMEC MSU iÿÿÿÿ(tm2tEVPtX509tErrt EngineErrorcBseZRS((t__name__t __module__(((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyR stEnginecBsžeZdZejZdddd„Zd„Zd„Z d„Z dd„Z d„Z d „Z ejd „Zdd „Zdd „Zdd „Zd„ZRS(sWrapper for ENGINE object.icCsm| r| rtdƒ‚n||_|js`tj|ƒ|_|js`td|ƒ‚q`n||_dS(s5Create new Engine from ENGINE pointer or obtain by idsNo engine id specifiedsUnknown engine: %sN(t ValueErrort_ptrRt engine_by_idt_pyfree(tselftidR R ((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyt__init__s   cCs)t|ddƒr%|j|jƒndS(NR i(tgetattrtm2_engine_freeR (R ((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyt__del__scCstj|jƒS(sgObtain a functional reference to the engine. @return: 0 on error, non-zero on success.(Rt engine_initR (R ((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytinit#scCstj|jƒS(s<Release a functional and structural reference to the engine.(Rt engine_finishR (R ((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytfinish)sicCs4tj|j|||ƒs0ttjƒƒ‚ndS(sCall ENGINE_ctrl_cmd_stringN(Rtengine_ctrl_cmd_stringR RRt get_error(R tcmdtargtoptional((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytctrl_cmd_string-scCstj|jƒS(sReturn engine name(Rtengine_get_nameR (R ((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytget_name2scCstj|jƒS(sReturn engine id(Rt engine_get_idR (R ((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytget_id6scCstj|j|ƒS(syUse this engine as default for methods specified in argument Possible values are bitwise OR of m2.ENGINE_METHOD_*(Rtengine_set_defaultR (R tmethods((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyt set_default:scCs|tjƒ}tj|ƒ}zL||j|||ƒ}|sQttjƒƒ‚ntj|ddƒ}Wdtj |ƒX|S(s Helper function for loading keysR iN( Rt ui_openssltengine_pkcs11_data_newR RRRRtPKeytengine_pkcs11_data_free(R tfunctnametpintuitcbdtkptrtkey((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyt_engine_load_key?s cCs|jtj||ƒS(srLoad private key with engine methods (e.g from smartcard). If pin is not set it will be asked (R.Rtengine_load_private_key(R R(R)((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytload_private_keyLscCs|jtj||ƒS(s9Load public key with engine methods (e.g from smartcard).(R.Rtengine_load_public_key(R R(R)((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytload_public_keyRscCs=tj|j|ƒ}|s*tdƒ‚ntj|ddƒS(spLoad certificate from engine (e.g from smartcard). NOTE: This function may be not implemented by engine!sCertificate or card not foundR i(Rtengine_load_certificateR RR(R R(tcptr((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytload_certificateVsN(RRt__doc__Rt engine_freeRtNoneRRRRRRRtENGINE_METHOD_ALLR"R.R0R2R5(((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyRs         cCsZtjƒtdƒ}|jd|ƒ|jd|ƒ|jddƒ|jddƒ|S(s>Load and return dymanic engine from sopath and assign id to ittdynamictSO_PATHtIDtLIST_ADDt1tLOADN(Rtengine_load_dynamicRRR8(R tsopathte((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytload_dynamic_engine_s  cCstjƒdS(sLoad dynamic engineN(RR@(((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyt load_dynamicjscCstjƒdS(sLoad openssl engineN(Rtengine_load_openssl(((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyt load_openssloscCstjƒdS(sfIf you load any engines, you need to clean up after your application is finished with the engines.N(Rtengine_cleanup(((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pytcleanuptsN((R6tM2CryptoRRRRt ExceptionRtengine_init_errorRRCRDRFRH(((s5/usr/lib/python2.7/vendor-packages/M2Crypto/Engine.pyts" P