summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2012-04-30 10:07:29 -0400
committerjim-p <jimp@pfsense.org>2012-04-30 10:09:19 -0400
commitcb8c684e8915b7a2eb4745e3bb38876018be0e24 (patch)
tree061b5de7af5442ab33aa42370372d41f9c6c1eae /etc
parentde6348e630d28ab892e22dc5684787e22cdf2f10 (diff)
downloadpfsense-cb8c684e8915b7a2eb4745e3bb38876018be0e24.zip
pfsense-cb8c684e8915b7a2eb4745e3bb38876018be0e24.tar.gz
Better error handling for crypt_data and also better password argument handling
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/crypt.inc15
1 files changed, 10 insertions, 5 deletions
diff --git a/etc/inc/crypt.inc b/etc/inc/crypt.inc
index 582a84c..8515c84 100644
--- a/etc/inc/crypt.inc
+++ b/etc/inc/crypt.inc
@@ -35,11 +35,16 @@
function crypt_data($val, $pass, $opt) {
$file = tempnam("/tmp", "php-encrypt");
file_put_contents("{$file}.dec", $val);
- exec("/usr/bin/openssl enc {$opt} -aes-256-cbc -in {$file}.dec -out {$file}.enc -k {$pass}");
- $result = file_get_contents("{$file}.enc");
- unlink($file);
- unlink("{$file}.dec");
- unlink("{$file}.enc");
+ exec("/usr/bin/openssl enc {$opt} -aes-256-cbc -in {$file}.dec -out {$file}.enc -k " . escapeshellarg($pass));
+ if (file_exists("{$file}.enc"))
+ $result = file_get_contents("{$file}.enc");
+ else {
+ $result = "";
+ log_error("Failed to encrypt/decrypt data!");
+ }
+ @unlink($file);
+ @unlink("{$file}.dec");
+ @unlink("{$file}.enc");
return $result;
}
OpenPOWER on IntegriCloud