示例#1
0
 public function authorize_by_token($login, $sign, $text)
 {
     $user_info = $this->db->get_row("SELECT `User_ID`, `PublicKey` FROM `Auth_Token`\n                                     WHERE `Login` = '" . $this->db->escape($login) . "'", ARRAY_A);
     if (!$user_info) {
         return 0;
     }
     // публичный ключ, текст, компоненты ключа и эцп
     $pk = $user_info['PublicKey'];
     $Hash = strtoupper($text);
     $Qx = strtoupper(substr($pk, 0, 64));
     $Qy = strtoupper(substr($pk, 64));
     $R = strtoupper(substr($sign, 0, 64));
     $S = strtoupper(substr($sign, 64));
     $nc_auth_token = new nc_auth_token();
     if ($nc_auth_token->verify($Hash, $Qx, $Qy, $R, $S)) {
         return $this->authorize_by_id($user_info['User_ID'], NC_AUTHTYPE_TOKEN);
     }
     return 0;
 }