function SSO_EndpointOutput($result) { global $sso_encrypted, $sso_apikey_info, $sso_data, $sso_skipsleep; if (!$sso_skipsleep) { SSO_RandomSleep(); } $result = @json_encode($result); if ($sso_encrypted) { if ($sso_apikey_info["keyinfo"]["mode"] === "aes256") { $result = ExtendedAES::CreateDataPacket($result, $sso_apikey_info["keyinfo"]["key"], $sso_apikey_info["keyinfo"]["opts"]); } else { $result = Blowfish::CreateDataPacket($result, $sso_apikey_info["keyinfo"]["key"], $sso_apikey_info["keyinfo"]["opts"]); } $result = base64_encode($result); } echo $result; exit; }
function SSO_EncryptDBData($data) { global $sso_rng; $mode = defined("SSO_PRIMARY_CIPHER") && SSO_PRIMARY_CIPHER == "aes256" ? "aes256" : "blowfish"; $data = serialize($data); $key = pack("H*", SSO_BASE_RAND_SEED4); $options = array("prefix" => $sso_rng->GenerateString(), "mode" => "CBC", "iv" => pack("H*", SSO_BASE_RAND_SEED3)); if (!defined("SSO_DUAL_ENCRYPT") || SSO_DUAL_ENCRYPT) { $options["key2"] = pack("H*", SSO_BASE_RAND_SEED5); $options["iv2"] = pack("H*", SSO_BASE_RAND_SEED6); } if ($mode == "aes256") { $data = ExtendedAES::CreateDataPacket($data, $key, $options); } else { $data = Blowfish::CreateDataPacket($data, $key, $options); } $data = $mode . ":" . (!defined("SSO_DUAL_ENCRYPT") || SSO_DUAL_ENCRYPT ? "2" : "1") . ":" . base64_encode($data); return $data; }