鍍金池/ 教程/ Linux/ add_key()函數 Unix/Linux
outb()函數 Unix/Linux
getpeername()函數 Unix/Linux
io_setup()函數 Unix/Linux
mknod()函數 Unix/Linux
arch_prctl()函數 Unix/Linux
inotify_add_watch()函數 Unix/Linux
chmod()函數 Unix/Linux
_exit()函數 Unix/Linux
epoll_ctl()函數 Unix/Linux
Unix/Linux系統(tǒng)調用
futimesat()函數 Unix/Linux
oldolduname()函數 Unix/Linux
sched_rr_get_interval()函數 Unix/Linux
oldstat()函數 Unix/Linux
pselect()函數 Unix/Linux
close()函數 Unix/Linux
add_key()函數 Unix/Linux
clone()函數 Unix/Linux
rename()函數 Unix/Linux
msgop()函數 Unix/Linux
getrlimit()函數 Unix/Linux
linkat()函數 Unix/Linux
ioprio_set()函數 Unix/Linux
insw()函數 Unix/Linux
munlock()函數 Unix/Linux
getgid()函數 Unix/Linux
chdir()函數 Unix/Linux
rmdir()函數 Unix/Linux
ioctl()函數 Unix/Linux
lchown()函數 Unix/Linux
execve()函數 Unix/Linux
epoll_wait()函數 Unix/Linux
fstatat()函數 Unix/Linux
truncate()函數 Unix/Linux
lock()函數 Unix/Linux
outsb()函數 Unix/Linux
chroot()函數 Unix/Linux
kexec_load()函數 Unix/Linux
afs_syscall()函數 Unix/Linux
dup2()函數 Unix/Linux
_newselect()函數 Unix/Linux
inotify_rm_watch()函數 Unix/Linux
recv()函數 Unix/Linux
msgsnd()函數 Unix/Linux
getdtablesize()函數 Unix/Linux
ioperm()函數 Unix/Linux
munmap()函數 Unix/Linux
getpriority()函數 Unix/Linux
sched_get_priority_min()函數 Unix/Linux
outw_p()函數 Unix/Linux
kill()函數 Unix/Linux
lookup_dcookie()函數 Unix/Linux
accept()函數 Unix/Linux
obsolete()函數 Unix/Linux
pread()函數 Unix/Linux
getgroups()函數 Unix/Linux
personality()函數 Unix/Linux
recvfrom()函數 Unix/Linux
putpmsg()函數 Unix/Linux
getgroups()函數 Unix/Linux
remap_file_pages()函數 Unix/Linux
request_key()函數 Unix/Linux
mount()函數 Unix/Linux
sched_setscheduler()函數 Unix/Linux
mkdirat()函數 Unix/Linux
nfsservctl()函數 Unix/Linux
getuid()函數 Unix/Linux
prof()函數 Unix/Linux
exit_group函數 Unix/Linux
io_cancel()函數 Unix/Linux
mmap()函數 Unix/Linux
mremap()函數 Unix/Linux
getitimer()函數 Unix/Linux
unimplemented()函數 Unix/Linux
read()函數 Unix/Linux
inl()函數 Unix/Linux
posix_fadvise()函數 Unix/Linux
open()函數 Unix/Linux
listen()函數 Unix/Linux
io_destroy()函數 Unix/Linux
acct()函數 Unix/Linux
fcntl()函數 Unix/Linux
recvmsg()函數 Unix/Linux
statfs()函數 Unix/Linux
oldlstat()函數 Unix/Linux
outb()函數 Unix/Linux
getpagesize()函數 Unix/Linux
sched_yield()函數 Unix/Linux
outw()函數 Unix/Linux
inw_p()函數 Unix/Linux
setpgid()函數 Unix/Linux
quotactl()函數 Unix/Linux
prctl()函數 Unix/Linux
fattach()函數 Unix/Linux
readahead()函數 Unix/Linux
msgget()函數 Unix/Linux
gethostname()函數 Unix/Linux
semctl()函數 Unix/Linux
munlockall()函數 Unix/Linux
iopl()函數 Unix/Linux
fdetach()函數 Unix/Linux
getuid()函數 Unix/Linux
gettid()函數 Unix/Linux
pwrite()函數 Unix/Linux
isastream()函數 Unix/Linux
get_thread_area()函數 Unix/Linux
mpx()函數 Unix/Linux
io_getevents()函數 Unix/Linux
lstat()函數 Unix/Linux
readv()函數 Unix/Linux
exit()函數 Unix/Linux
inw()函數 Unix/Linux
fchmod()函數 Unix/Linux
mq_getsetattr()函數 Unix/Linux
get_robust_list()函數 Unix/Linux
_llseek()函數 Unix/Linux
gettimeofday()函數 Unix/Linux
nice()函數 Unix/Linux
security()函數 Unix/Linux
sched_get_priority_max()函數 Unix/Linux
outb_p()函數 Unix/Linux
intro()函數 Unix/Linux
alarm()函數 Unix/Linux
putmsg()函數 Unix/Linux
fork()函數 Unix/Linux
getpgrp()函數 Unix/Linux
link()函數 Unix/Linux
getcwd()函數 Unix/Linux
insl()函數 Unix/Linux
getsockname()函數 Unix/Linux
dup()函數 Unix/Linux
connect()函數 Unix/Linux
select()函數 Unix/Linux
futex()函數 Unix/Linux
outsw()函數 Unix/Linux
query_module()函數 Unix/Linux
reboot()函數 Unix/Linux
create_module()函數 Unix/Linux
adjtimex()函數 Unix/Linux
mlock()函數 Unix/Linux
statvfs()函數 Unix/Linux
gtty()函數 Unix/Linux
epoll_create()函數 Unix/Linux
bind()函數 Unix/Linux
inl_p()函數 Unix/Linux
select_tut()函數 Unix/Linux
mincore()函數 Unix/Linux
getresuid()函數 Unix/Linux
getpmsg()函數 Unix/Linux
getcontext()函數 Unix/Linux
killpg()函數 Unix/Linux
olduname()函數 Unix/Linux
openat()函數 Unix/Linux
pause()函數 Unix/Linux
alloc_hugepages()函數 Unix/Linux
ioctl_list()函數 Unix/Linux
readlinkat()函數 Unix/Linux
mprotect()函數 Unix/Linux
getdomainname()函數 Unix/Linux
readlink()函數 Unix/Linux
madvise()函數 Unix/Linux
bdflush()函數 Unix/Linux
ipc()函數 Unix/Linux
ptrace()函數 Unix/Linux
getrusage()函數 Unix/Linux
msync()函數 Unix/Linux
faccessat()函數 Unix/Linux
modify_ldt()函數 Unix/Linux
get_kernel_syms()函數 Unix/Linux
getpid()函數 Unix/Linux
fsync()函數 Unix/Linux
msgctl()函數 Unix/Linux
break未實現 Unix/Linux
sched_setparam()函數 Unix/Linux
fchown()函數 Unix/Linux
cacheflush()函數 Unix/Linux
fdatasync()函數 Unix/Linux
flock()函數 Unix/Linux
pivot_root()函數 Unix/Linux
inotify_init()函數 Unix/Linux
fchmodat()函數 Unix/Linux
keyctl()函數 Unix/Linux
llseek()函數 Unix/Linux
outb()函數 Unix/Linux
pipe()函數 Unix/Linux
io_submit()函數 Unix/Linux
ppoll()函數 Unix/Linux
multiplexer()函數 Unix/Linux
access()函數 Unix/Linux
sched_getparam()函數 Unix/Linux
chown()函數 Unix/Linux
readdir()函數 Unix/Linux
inb_p()函數 Unix/Linux
outsl()函數 Unix/Linux
nanosleep()函數 Unix/Linux
alloc_hugepages()函數 Unix/Linux
sbrk()函數 Unix/Linux
move_pages()函數 Unix/Linux
fchdir()函數 Unix/Linux
renameat()函數 Unix/Linux
getppid()函數 Unix/Linux
getsid()函數 Unix/Linux
oldfstat()函數 Unix/Linux
lseek()函數 Unix/Linux
stat()函數 Unix/Linux
path_resolution()函數 Unix/Linux
getunwind()函數 Unix/Linux
getsockopt()函數 Unix/Linux
mmap2()函數 Unix/Linux
getdents()函數 Unix/Linux
fchownat()函數 Unix/Linux
mkdir()函數 Unix/Linux
perfmonctl()函數 Unix/Linux
open()函數 Unix/Linux
idle()函數 Unix/Linux
poll()函數 Unix/Linux
brk()函數 Unix/Linux
sched_setaffinity()函數 Unix/Linux
mlockall()函數 Unix/Linux

add_key()函數 Unix/Linux

名稱

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() 要求內核給定類型和描述來創(chuàng)建或更新一個鍵,它的有效載荷plen 長度實例,將它安裝到提名 keyringand,返回其序列號。

密鑰類型可能會拒絕該數據,如果它是在錯誤的格式或以其他方式無效。

如果目標的鑰匙圈已經包含匹配指定類型和描述,然后,如果密鑰類型支持一個鍵,該鍵將被更新,而不是創(chuàng)建一個新的密鑰,如果沒有,將創(chuàng)建一個新的密鑰,它將取代鏈接到現存的核心,從鑰匙圈。

目的地鑰匙圈序號可能是一個有效的鑰匙圈,主調用寫入權限,或者它可以是一個特殊的密鑰環(huán)ID:

標簽 描述
KEY_SPEC_THREAD_KEYRING This specifies the caller’s thread-specific keyring.
KEY_SPEC_PROCESS_KEYRING This specifies the caller’s process-specific keyring.
KEY_SPEC_SESSION_KEYRING This specifies the caller’s session-specific keyring.
KEY_SPEC_USER_KEYRING This specifies the caller’s UID-specific keyring.
KEY_SPEC_USER_SESSION_KEYRING This specifies the caller’s UID-session keyring.

密鑰類型

有很多可供選擇的核心密鑰管理代碼的密鑰類型,而這些可以被指定為這個函數:

標簽 描述
“user” Keys of the user-defined key type may contain a blob of arbitrary data, and thedescription may be any valid string, though it is preferred that the description be prefixed with a string representing the service to which the key is of interest and a colon (for instance “afs:mykey”). The payload may be empty or NULL for keys of this type.
“keyring” Keyrings are special key types that may contain links to sequences of other keys of any type. If this interface is used to create a keyring, then a NULL payload should be specified, andplen should be zero.

返回值

成功 add_key() 返回序列號密鑰,它創(chuàng)建或更新。錯誤將返回值-1并且errno將被設置為一個適當的錯誤。

錯誤

標簽 描述
ENOKEY The keyring doesn’t exist.
EKEYEXPIRED The keyring has expired.
EKEYREVOKED The keyring has been revoked.
EINVAL The payload data was invalid.
ENOMEM Insufficient memory to create a key.
EDQUOT The key quota for this user would be exceeded by creating this key or linking it to the keyring.
EACCES The keyring wasn’t available for modification by the user.

鏈接

雖然這是一個Linux系統(tǒng)調用,它是在libc中不存在,但可以發(fā)現合適的 libkey 工具。鏈接時,lkey 工具應指定給鏈接器。

另請參閱