kkey_assign_private 内核服务

用途

请求进行专用内核密钥分配。

语法

#include <sys/types.h>
#include <sys/skeys.h>
#include <sys/kerrno.h>
kerrno_t kkey_assign_private (id, instance, flags, kkey)
char *id;
long instance;
unsigned long flags;
kkey_t *kkey;

参数

描述
标识 指定以 null 结束的字符串。 kkey_assign_private 内核服务使用字符串值来分配专用密钥。 这通常包含与调用内核子系统关联的装入模块名称,但您可以指定任何唯一字符串。
实例 (instance) 指定子系统所请求的每个专用密钥的唯一编号。 此值必须是从 0 开始的整数值,并且随请求的每个内核键而增大。
标志 必须将此参数指定为零。
凯基 包含返回的已分配内核键。 有效指针必须是 4 字节对齐的地址 (kkey_t的自然对齐)。

描述

kkey_assign_private 内核服务将专用内核密钥分配给调用者。 专用内核密钥用于限制外部内核代码的数据可访问性。 kkey_assign_private 内核服务在预定范围 (从 KKEY_PRIVATE1 到 KKEY_PRIVATE32) 内分发对专用内核密钥的请求。 其目的是代表多个内核子系统的请求执行统一的分发。 根据 idinstance 参数进行分配,并可能将同一专用密钥返回给多个调用者。 当实例号不同时,它也可能返回相同的专用密钥。

kkey_assign_private 内核服务不执行资源分配。 它仅提供建议的内核密钥以用于数据保护。

执行环境

只能从 进程 环境调用 kkey_assign_private 内核服务。

返回值

描述
重大安全事件数量 指示成功完成。
einval_kkey_assign_private 指示该参数或执行环境无效。