add_key() - Unix、Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

add_key() - Unix、Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

add_key - 将密钥添加到内核的密钥管理功能

语法

#include <keyutils.h> key_serial_t add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t keyring);

描述

add_key() 请求内核创建或更新给定类型描述的密钥,使用长度为plen有效负载对其进行实例化,并将其附加到指定的密钥环并返回其序列号。

如果密钥格式错误或以其他方式无效,则密钥类型可能会拒绝数据。

如果目标密钥环已包含与指定的类型描述匹配的密钥,则如果密钥类型支持,则将更新该密钥,而不是创建新密钥;否则,将创建一个新密钥,并且它将取代密钥环中对现有密钥的链接。

目标密钥环序列号可以是调用者具有写入权限的有效密钥环的序列号,也可以是特殊的密钥环 ID。

标签描述
KEY_SPEC_THREAD_KEYRING 这指定了调用者的线程特定密钥环。
KEY_SPEC_PROCESS_KEYRING 这指定了调用者的进程特定密钥环。
KEY_SPEC_SESSION_KEYRING 这指定了调用者的会话特定密钥环。
KEY_SPEC_USER_KEYRING 这指定了调用者的 UID 特定密钥环。
KEY_SPEC_USER_SESSION_KEYRING 这指定了调用者的 UID 会话密钥环。

密钥类型

核心密钥管理代码中提供了许多密钥类型,这些类型可以指定给此函数。

标签描述
“用户” 用户定义的密钥类型可以包含任意数据的 blob,并且描述可以是任何有效的字符串,但建议描述以表示密钥感兴趣的服务的字符串和冒号为前缀(例如“afs:mykey”)。此类型的密钥的有效负载可以为空或NULL
“密钥环” 密钥环是特殊的密钥类型,可以包含指向任何类型密钥序列的链接。如果此接口用于创建密钥环,则应指定NULL有效负载,并且plen应为零。

返回值

成功时,add_key() 返回其创建或更新的密钥的序列号。发生错误时,将返回值-1,并且 errno 将设置为相应的错误。

错误

标签描述
ENOKEY 密钥环不存在。
EKEYEXPIRED 密钥环已过期。
EKEYREVOKED 密钥环已被吊销。
EINVAL 有效负载数据无效。
ENOMEM 内存不足以创建密钥。
EDQUOT 创建此密钥或将其链接到密钥环将超过此用户的密钥配额。
EACCES 用户无法修改密钥环。

链接

虽然这是一个 Linux 系统调用,但它不存在于libc中,而是在libkeyutils中找到。链接时,应向链接器指定-lkeyutils

另请参阅



previous next Printer Friendly

广告


  

广告



广告