/**
  * Class constructor
  *
  * @param	array	$params	Configuration parameters
  * @return	void
  */
 public function __construct(array $params = array())
 {
     $this->_drivers = array('mcrypt' => defined('MCRYPT_DEV_URANDOM'), 'openssl' => is_php('5.3.3') && extension_loaded('openssl'));
     if (!$this->_drivers['mcrypt'] && !$this->_drivers['openssl']) {
         show_error('Encryption: Unable to find an available encryption driver.');
     }
     isset(self::$func_override) or self::$func_override = extension_loaded('mbstring') && ini_get('mbstring.func_override');
     $this->initialize($params);
     if (!isset($this->_key) && self::strlen($key = config_item('encryption_key')) > 0) {
         $this->_key = $key;
     }
     log_message('info', 'Encryption Class Initialized');
 }