public static function factory($driver, $params = array())
{
/* Return a base Horde_Crypt object if no driver is specified. */
if (empty($driver) || strcasecmp($driver, 'none') == 0) {
return new Horde_Crypt();
}
/* Base drivers (in Crypt/ directory). */
$class = __CLASS__ . '_' . Horde_String::ucfirst(basename($driver));
if (class_exists($class)) {
return new $class($params);
}
/* Explicit class name, */
$class = $driver;
if (class_exists($class)) {
return new $class($params);
}
throw new Horde_Crypt_Exception(__CLASS__ . ': Class definition of ' . $driver . ' not found.');
}