29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
try {
 | 
						|
  require_once("usertable.php");
 | 
						|
  $user = $db->real_escape_string($_REQUEST['user']);
 | 
						|
  $pubkey = $db->real_escape_string($_REQUEST['pubkey']);
 | 
						|
  $pgp = gnupg_init();
 | 
						|
  if (!$pgp) {
 | 
						|
    echo json_encode(array('success' => false, 'txt' => "pgp on server failed"));
 | 
						|
  } else {
 | 
						|
    $verify = gnupg_import($pgp, $_REQUEST['pubkey']);
 | 
						|
    if (!$verify) {
 | 
						|
      echo json_encode(array('success' => false, 'txt' => "wrong identity"));
 | 
						|
    } else {
 | 
						|
      $q = $db->query("select * from user where name='$user' and pubkey='$pubkey';");
 | 
						|
      if ($q->num_rows==1) {
 | 
						|
        echo json_encode(array('success' => true, 'txt' => "user verified"));
 | 
						|
      } elseif ($q->num_rows==0) {
 | 
						|
        $q = $db->query("insert into user (name, pubkey) values ('$user', '$pubkey');");
 | 
						|
        echo json_encode(array('success' => true, 'txt' => "user created"));
 | 
						|
      } else {
 | 
						|
        echo json_encode(array('success' => false, 'txt' => "server database defect"));
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
} catch (Exception $e) {
 | 
						|
  echo json_encode(array('success' => false, 'txt' => "login failed"));
 | 
						|
}
 | 
						|
?>
 |