gpt4 book ai didi

xorg - 解析 X 服务器授权文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:56 25 4
gpt4 key购买 nike

是否有任何 API 或文档可以帮助解析 X 服务器的授权文件?

我正在使用 xcb 连接到显示器。它接受用于授权信息的 xcb_auth_info_t 结构。但是,我找不到有关如何构建此结构的任何信息。似乎没有任何关于 X 服务器授权文件格式的文档。

我解决的解决方案:

事实证明,对于 MIT-MAGIC-COOKIE-1 类型的 X 权限文件,Xauth 结构(来自 X11/Xauth.h) 成员直接映射到 xcb_auth_info_t 成员。因此,只需使用 XauReadAuth 从您的 X 授权文件中读取一个 Xauth 结构。然后复制 namename_lengthdatadata_length 成员。

如果你想要更便携的方式来解析X权限文件,可以引用xcb的源码。它非常困惑,但是根据您自己的目的调整他们的源代码应该不会太困难。有关如何打开显示套接字的详细信息,请参阅 xcb_util.c。获得套接字后,您可以使用 xcb_auth.c 中的方法创建 xcb_auth_info_t 结构(请参阅方法 _xcb_get_auth_infoget_auth_ptr compute_auth)。

我只需要通过 unix 套接字 (AF_UNIX) 进行连接,因此我移植的代码相当少。我主要只是使用 compute_auth 方法(及其依赖项)。

最佳答案

授权协议(protocol)和文件在 xauthXsecurity 手册页中有简要讨论,在 Xau 库中有更详细的讨论函数(XauWriteAuth 等)。 xcb_auth_info_t 结构似乎在 /usr/include/xcb/xcb.h 文件中定义如下:

/**
* @brief Container for authorization information.
*
* A container for authorization information to be sent to the X server.
*/
typedef struct xcb_auth_info_t {
int namelen; /**< Length of the string name (as returned by strlen). */
char *name; /**< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1". */
int datalen; /**< Length of the data member. */
char *data; /**< Data interpreted in a protocol-specific manner. */
} xcb_auth_info_t;

关于xorg - 解析 X 服务器授权文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28597471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com