public function LoadDBData($data) { $options = array("mode" => "CBC"); $data2 = explode(":", $data); if (count($data2) == 3) { $mode = $data2[0] == "aes256" ? "aes256" : "blowfish"; $key = pack("H*", SSO_CLIENT_RAND_SEED11); $options["iv"] = pack("H*", SSO_CLIENT_RAND_SEED12); if ((int) $data2[1] === 2) { $options["key2"] = pack("H*", SSO_CLIENT_RAND_SEED13); $options["iv2"] = pack("H*", SSO_CLIENT_RAND_SEED14); } $data = $data2[2]; } else { $mode = "blowfish"; $compressed = function_exists("gzcompress") && function_exists("gzuncompress"); $key = pack("H*", SSO_CLIENT_RAND_SEED3); $options["iv"] = pack("H*", SSO_CLIENT_RAND_SEED2); } $data = @base64_decode($data); if ($data === false) { return false; } if ($mode == "aes256") { $data = SSO_ExtendedAES::ExtractDataPacket($data, $key, $options); } else { $data = SSO_Blowfish::ExtractDataPacket($data, $key, $options); } if ($data === false) { return false; } if (count($data2) != 3) { $compressed = false; } else { $compressed = (bool) (int) substr($data, 0, 1); $data = substr($data, 2); } if ($compressed) { $data = @gzuncompress($data); } if ($data === false) { return false; } if (count($data2) == 3) { $data = @json_decode($data, true); } else { $data = @unserialize($data); } if ($data === false) { return false; } $this->user_cache["dbdata"] = $data; return true; }