Example #1
0
function link_region($method_name, $params, $user_data)
{
    log_message('info', "link_region called");
    $config =& get_config();
    $req = $params[0];
    if (isset($req['region_name']) && strlen($req['region_name']) > 0) {
        $region_name = $req['region_name'];
        log_message('debug', "Using specified region name {$region_name}");
    } else {
        $region_name = $config['hypergrid_default_region'];
        log_message('debug', "No region name specified - using {$region_name}");
    }
    $scene = lookup_scene_by_name($region_name);
    $response = array();
    if ($scene == null) {
        log_message('warn', "Unable to link to unknown region {$region_name} - no scene found");
        $response['result'] = 'false';
    } else {
        $response['result'] = 'true';
        $response['uuid'] = $scene->SceneID;
        // Yay for 64-bit integer bitmath in PHP
        $x = $scene->MinPosition->X;
        $y = $scene->MinPosition->Y;
        $handle = bitShift($x, 32);
        $handle = bitOr($handle, (string) $y, 0);
        $response['handle'] = (string) $handle;
        $response['region_image'] = "http://" . $scene->ExtraData['ExternalAddress'] . ":" . ($response['server_uri'] = $scene->Address);
        $response['external_name'] = $scene->Name;
        log_message('debug', "Succesfully linked to {$region_name}@" . $scene->Address);
    }
    return $response;
}
Example #2
0
function rsa_decrypt($enc_data, $p, $q, $d)
{
    $enc_data = int2bin($enc_data);
    $exp = $d;
    $modulus = bcmul($p, $q);
    $data_len = strlen($enc_data);
    $chunk_len = bitLen($modulus) - 1;
    $block_len = (int) ceil($chunk_len / 8);
    $curr_pos = 0;
    $bit_pos = 0;
    $plain_data = 0;
    while ($curr_pos < $data_len) {
        $tmp = bin2int(substr($enc_data, $curr_pos, $block_len));
        $tmp = bcpowmod($tmp, $exp, $modulus);
        $plain_data = bitOr($plain_data, $tmp, $bit_pos);
        $bit_pos += $chunk_len;
        $curr_pos += $block_len;
    }
    return int2bin($plain_data);
}