$c = $this->lookup($a['module'], $a['name']);
- $o = clone($c);
+ $o = $c ? clone($c) : false;
- if(empty($c)) {
- $c = DB_DataObject::factory('core_setting');
- }
+ $c = $c ? $c : DB_DataObject::factory('core_setting');
$c->setFrom(array(
'module' => $a['module'],
'is_valid' => 1
));
- empty($o) ? $c->insert() : $c->update($o);
+ $o ? $c->update($o) : $c->insert();
}
//one key for encrypting all the settings
$key_dir = "{$this->getKeyDirectory()}/pub.key";
if(!file_exists($key_dir)) {
- print_r("Cannot find {$key_dir}");
- exit;
+ return false;
}
$pub_key = file_get_contents($key_dir);
if(!$pub_key) {
- return;
+ return false;
}
openssl_public_encrypt($v, $ciphertext, $pub_key);
return $ciphertext;
}
- function getDecryptVal()
+ function decrypt($v)
{
- $dir = $this->getKeyDirectory();
+ $key_dir = "{$this->getKeyDirectory()}/pri.key";
- if(!$dir) {
+ if(!file_exists($key_dir)) {
return false;
}
- if(empty($this->val)) {
+ $pri_key = file_get_contents($key_dir);
+
+ if(!$pri_key) {
return false;
}
- if(empty($this->is_encrypt)) {
- return $this->val;
- }
+ openssl_private_decrypt($v, $plaintext, $pri_key);
- $key_dir = "{$dir}/pri.key";
+ return $plaintext;
+ }
+
+ function getDecryptVal()
+ {
- if(!file_exists($key_dir)) {
+ if(empty($this->val)) {
return false;
}
- $pri_key = file_get_contents($key_dir);
-
- if(!$pri_key) {
- return false;
+ if(empty($this->is_encrypt)) {
+ return $this->val;
}
- openssl_private_decrypt($this->val, $plaintext, $pri_key);
-
- return $plaintext;
+ return $this->decrypt($this->val);
}
}