/**
 * Create a new consumer association
 * @param integer $expiration
 * @return array
 */
function new_assoc($expiration)
{
    if (isset($_SESSION) && is_array($_SESSION)) {
        $sid = session_id();
        $dat = session_encode();
        session_write_close();
    }
    session_start();
    session_regenerate_id('false');
    $id = session_id();
    $shared_secret = new_secret();
    debug('Started new assoc session: ' . $id);
    $_SESSION = array();
    $_SESSION['expiration'] = $expiration;
    $_SESSION['shared_secret'] = base64_encode($shared_secret);
    session_write_close();
    if (isset($sid)) {
        session_id($sid);
        session_start();
        $_SESSION = array();
        session_decode($dat);
    }
    return array($id, $shared_secret);
}
/**
 * Create a new consumer association
 * @param integer $expiration
 * @return array
 */
function new_assoc($expiration)
{
    if (isset($_SESSION) && is_array($_SESSION)) {
        $sid = session_id();
        $dat = session_encode();
        session_write_close();
    }
    if (OCP\Config::getSystemValue("forcessl", false)) {
        ini_set("session.cookie_secure", "on");
    }
    session_start();
    session_regenerate_id('false');
    $id = session_id();
    $shared_secret = new_secret();
    debug('Started new assoc session: ' . $id);
    $_SESSION = array();
    $_SESSION['expiration'] = $expiration;
    $_SESSION['shared_secret'] = base64_encode($shared_secret);
    session_write_close();
    if (isset($sid)) {
        session_id($sid);
        session_start();
        $_SESSION = array();
        session_decode($dat);
    }
    return array($id, $shared_secret);
}
 private function NewKeys(&$assoc_handle, &$shared_secret, &$lifetime)
 {
     $assoc_handle = md5uniq();
     $shared_secret = new_secret();
     $lifetime = time() + 1200;
     $this->keys[$assoc_handle] = array('secret' => $shared_secret, 'expired' => $lifetime);
     $this->save();
 }