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; }