* session_set_save_handler(new \Mammut\Session\EncryptedFileSession('mykey'), true);
session_start();
*
* @author Stefan Daurer
* @package Mammut\Session
* @since 1.1.0.0
*/
class EncryptedFileSession extends \SessionHandler {
private $key;
public function __construct($key) {
$maxsize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
if (strlen($key > $maxsize))
$key = substr($key, 0, $maxsize);
$this->key = $key;
}
public function read($id) {
$data = parent::read($id);
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, $data, MCRYPT_MODE_ECB);
}
public function write($id, $data) {
$data = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $data, MCRYPT_MODE_ECB);
return parent::write($id, $data);
}
}