コード例 #1
0
ファイル: endpoint.php プロジェクト: marks2016/sso
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;
}
コード例 #2
0
ファイル: sso_functions.php プロジェクト: marks2016/sso
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;
}