2017-04-11 21:19:54 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
if(function_exists('mcrypt_encrypt') && defined('MCRYPT_MODE_CFB')) {
|
|
|
|
class MCryptWrapper {
|
|
|
|
public $cipher, $key, $iv, $key_size, $block_size;
|
|
|
|
|
|
|
|
|
|
|
|
function __construct($cipher) {
|
|
|
|
$this->cipher = $cipher;
|
|
|
|
$this->key_size = mcrypt_module_get_algo_key_size($cipher);
|
|
|
|
$this->block_size = mcrypt_module_get_algo_block_size($cipher);
|
|
|
|
$this->iv = str_repeat("\0", mcrypt_get_iv_size($cipher, 'ncfb'));
|
|
|
|
}
|
|
|
|
|
2022-11-23 18:25:10 +01:00
|
|
|
function getBlockLengthInBytes()
|
|
|
|
{
|
|
|
|
return $this->block_size;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getKeyLength() {
|
|
|
|
return $this->key_size << 3;
|
|
|
|
}
|
|
|
|
|
2017-04-11 21:19:54 +02:00
|
|
|
function setKey($key) {
|
|
|
|
$this->key = $key;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setIV($iv) {
|
|
|
|
$this->iv = $iv;
|
|
|
|
}
|
|
|
|
|
|
|
|
function encrypt($data) {
|
|
|
|
return mcrypt_encrypt($this->cipher, $this->key, $data, 'ncfb', $this->iv);
|
|
|
|
}
|
|
|
|
|
|
|
|
function decrypt($data) {
|
|
|
|
return mcrypt_decrypt($this->cipher, $this->key, $data, 'ncfb', $this->iv);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|