版权所有 © 2014 tutorialspoint
#include <keyutils.h> key_serial_t request_key(const char *type, const char *description, const char *callout_info, key_serial_t keyring);
key_serial_t request_key(const char *type, const char *description, const char *callout_info, key_serial_t keyring);
request_key() 首先递归搜索按线程特定密钥环、进程特定密钥环,然后是会话密钥环的顺序附加到调用进程的所有密钥环,以查找匹配的密钥。
如果request_key() 是从由request_key() 代表其他进程生成密钥调用的程序中调用,则接下来将搜索该其他进程的密钥环,使用该其他进程的 UID、GID、组和安全上下文来控制访问。
在递归搜索任何子密钥环之前,将检查每个密钥环中是否存在匹配的密钥。只有对调用方可搜索的密钥才能被找到,并且只有可搜索的密钥环才能被搜索。
如果找不到密钥,则如果设置了callout_info,则此函数将尝试进一步查找。在这种情况下,callout_info 将传递给用户空间服务(例如/sbin/request-key)以生成密钥。
如果这也失败,则将返回错误,并在指定的密钥环中安装一个临时的负密钥。这将在几秒钟后过期,但会导致后续对request_key() 的调用失败,直到它过期。
密钥环序列号可能是调用方具有写入权限的有效密钥环的序列号,也可能是特殊的密钥环 ID。
keyctl (1)
add_key (2)
keyctl (2)
request (8)
广告