You are here

public function Mcrypt::decrypt in AES encryption 8.2

Recover previously scrambled string.

Overrides AESPluginBase::decrypt

File

src/Plugin/AES/Mcrypt.php, line 78

Class

Mcrypt
Mcrypt plugin implementation

Namespace

Drupal\aes\Plugin\AES

Code

public function decrypt($data, $key = FALSE, $cipher = FALSE) {
  $config = FileStorageFactory::getActive()
    ->read('aes.settings');
  $iv = base64_decode($config['mcrypt_iv']);
  if (!$key) {
    $key = $config['key'];
  }
  if (!$cipher) {
    $cipher = $config['cipher'];
  }
  $td = mcrypt_module_open($cipher, '', MCRYPT_MODE_CBC, '');
  $ks = mcrypt_enc_get_key_size($td);
  if (empty($iv)) {
    \Drupal::logger('aes')
      ->error('No initialization vector found while trying to decrypt with mcrypt. Aborting!');
    return FALSE;
  }
  $key = substr(sha1($key), 0, $ks);
  mcrypt_generic_init($td, $key, $iv);
  $decrypted = mdecrypt_generic($td, $data);
  mcrypt_generic_deinit($td);
  mcrypt_module_close($td);
  return trim($decrypted);
}