home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- from M2Crypto import m2, EVP, X509, Err
-
- class EngineError(Exception):
- pass
-
- m2.engine_init(EngineError)
-
- class Engine:
- m2_engine_free = m2.engine_free
-
- def __init__(self, id = None, _ptr = None, _pyfree = 1):
- if not _ptr and not id:
- raise ValueError('No engine id specified')
-
- self._ptr = _ptr
- if not self._ptr:
- self._ptr = m2.engine_by_id(id)
- if not self._ptr:
- raise ValueError('Unknown engine: %s' % id)
-
-
- self._pyfree = _pyfree
-
-
- def __del__(self):
- if getattr(self, '_pyfree', 0):
- self.m2_engine_free(self._ptr)
-
-
-
- def ctrl_cmd_string(self, cmd, arg, optional = 0):
- if not m2.engine_ctrl_cmd_string(self._ptr, cmd, arg, optional):
- raise EngineError(Err.get_error())
-
-
-
- def get_name(self):
- return m2.engine_get_name(self._ptr)
-
-
- def get_id(self):
- return m2.engine_get_id(self._ptr)
-
-
- def set_default(self, methods = m2.ENGINE_METHOD_ALL):
- return m2.engine_set_default(self._ptr, methods)
-
-
- def _engine_load_key(self, func, name, pin = None):
- ui = m2.ui_openssl()
- cbd = m2.engine_pkcs11_data_new(pin)
-
- try:
- kptr = func(self._ptr, name, ui, cbd)
- if not kptr:
- raise EngineError(Err.get_error())
-
- key = EVP.PKey(kptr, _pyfree = 1)
- finally:
- m2.engine_pkcs11_data_free(cbd)
-
- return key
-
-
- def load_private_key(self, name, pin = None):
- return self._engine_load_key(m2.engine_load_private_key, name, pin)
-
-
- def load_public_key(self, name, pin = None):
- return self._engine_load_key(m2.engine_load_public_key, name, pin)
-
-
- def load_certificate(self, name):
- cptr = m2.engine_load_certificate(self._ptr, name)
- if not cptr:
- raise EngineError('Certificate or card not found')
-
- return X509.X509(cptr, _pyfree = 1)
-
-
-
- def load_dynamic_engine(id, sopath):
- m2.engine_load_dynamic()
- e = Engine('dynamic')
- e.ctrl_cmd_string('SO_PATH', sopath)
- e.ctrl_cmd_string('ID', id)
- e.ctrl_cmd_string('LIST_ADD', '1')
- e.ctrl_cmd_string('LOAD', None)
- return e
-
-
- def load_dynamic():
- m2.engine_load_dynamic()
-
-
- def load_openssl():
- m2.engine_load_openssl()
-
-
- def cleanup():
- m2.engine_cleanup()
-
-