function drd_server_aes_decrypt in Drupal Remote Dashboard Server 6.2
Same name and namespace in other branches
- 7.2 drd_server.aes.inc \drd_server_aes_decrypt()
1 call to drd_server_aes_decrypt()
File
- ./
drd_server.aes.inc, line 42
Code
function drd_server_aes_decrypt($string, $base64encoded, $key, $cipher, $iv, $implementation) {
if ($base64encoded) {
$string = base64_decode($string);
}
if (empty($string)) {
return FALSE;
}
# Decode the key
$key = base64_decode($key);
if ($implementation == 'phpseclib') {
_drd_server_aes_load_phpsec();
$phpsec = new Crypt_AES();
$phpsec
->setKey($key);
if (!empty($iv)) {
$phpsec
->setIV($iv);
}
$decrypted = $phpsec
->decrypt($string);
}
else {
if ($implementation == 'mcrypt') {
$td = mcrypt_module_open($cipher, '', MCRYPT_MODE_CBC, '');
$ks = mcrypt_enc_get_key_size($td);
$key = substr(sha1($key), 0, $ks);
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $string);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}
else {
return FALSE;
}
}
return trim($decrypted);
}