function wrap_bp_decrypt($cipher_id, $key, $text, $iv) { $bf = new Crypt_Blowfish('cbc'); $iv_size = strlen($iv); if ($iv_size !== false && $iv_size > 0) { $bf->setKey($key, $iv); } else { $bf->setKey($key); } $text = $bf->decrypt($text); if (PEAR::isError($text)) { $last_bp_error = 'blowfish_decrypt_error ' . $text->getMessage(); return false; } $text = rtrim($text, ""); return $text; }
public function __construct($secret) { $bf = new Crypt_Blowfish('cbc'); $bf->setKey($secret); if (PEAR::isError($bf)) { throw new Exception('init error'); } $this->blowfish = $bf; }
/** * * * @param * @return */ function decrypt($name, $encrypted_string) { if (!$name && !$encrypted_string) { return $encrypted_string; } global $application; $session_id = session_id(); $tables = $this->getTables(); $table = 'crypto_keys'; $k = $tables[$table]['columns']; $query = new DB_Select(); $query->addSelectField($k["key"], "crypto_key"); $query->WhereValue($k["id"], DB_EQ, $session_id); $query->WhereAnd(); $query->WhereValue($k["name"], DB_EQ, $name); $result = $application->db->getDB_Result($query); if (isset($result[0]['crypto_key']) && $result[0]['crypto_key']) { $key = $result[0]['crypto_key']; $query = new DB_Delete($table); $query->WhereValue($k["id"], DB_EQ, $session_id); $query->WhereAnd(); $query->WhereValue($k["name"], DB_EQ, $name); $application->db->getDB_Result($query); $blowfish = new Crypt_Blowfish($key); $blowfish->setKey($key); $string = $blowfish->decrypt($encrypted_string); } else { return ""; } return $string; }