setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $pdo->exec("create table if not exists users (id integer primary key, name varchar(255))"); $pdo->exec("create table if not exists registrations (id integer primary key, user_id integer, keyHandle varchar(255), publicKey varchar(255), certificate text, counter integer)"); $scheme = isset($_SERVER['HTTPS']) ? "https://" : "http://"; $u2f = new u2flib_server\U2F($scheme . $_SERVER['HTTP_HOST']); session_start(); function createAndGetUser($name) { global $pdo; $sel = $pdo->prepare("select * from users where name = ?"); $sel->execute(array($name)); $user = $sel->fetch(); if(!$user) { $ins = $pdo->prepare("insert into users (name) values(?)"); $ins->execute(array($name)); $sel->execute(array($name)); $user = $sel->fetch(); } return $user; } function getRegs($user_id) { global $pdo; $sel = $pdo->prepare("select * from registrations where user_id = ?"); $sel->execute(array($user_id)); return $sel->fetchAll(); } function addReg($user_id, $reg) { global $pdo; $ins = $pdo->prepare("insert into registrations (user_id, keyHandle, publicKey, certificate, counter) values (?, ?, ?, ?, ?)"); $ins->execute(array($user_id, $reg->keyHandle, $reg->publicKey, $reg->certificate, $reg->counter)); } function updateReg($reg) { global $pdo; $upd = $pdo->prepare("update registrations set counter = ? where id = ?"); $upd->execute(array($reg->counter, $reg->id)); } ?>