⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⣿⣿⣷⣼⣿⠀⣴⠾⠷⠶⠦⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⡤⢶⣦⣾⣿⣿⣿⣿⣿⣿⣿⠀⣿⣶⣶⣦⣄⠳⣤⣤⠄⠀⠀⠀
⠀⠀⠀⢀⣼⣳⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣗⠈⠙⠻⣶⣄⡀⠀⠀⠀
⠀⠀⠀⣰⠿⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠈⠳⣤⠀⠀
⠀⠀⢀⡟⠀⢰⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠁⠈⠻⣶⣄⠀⠀⠈⠛⢦   
⠀⣀⡼⠃⠀⣼⡟⠀⠀⢸⣿⡿⠉⣿⡿⠿⠛⣿⡄⠀⠀⠀⠙⠿⣆⠀⠀⠀⠈
⠈⠁⠀⠀⢸⡟⠀⠀⠀⢸⣿⠀⠀⣿⠁⠀⠀⠈⠃⠀⠀⠀⠀⠀⠘⢷⡄⠀⠀
⠀⠀⠀⠀⣼⠃⠀⠀⠀⢸⡟⠀⠀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡆⠀
⠀⠀⠀⣠⡏⠀⠀⠀⠀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠻⠃⠀⠀⠀⠀⣻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Current Dir: /usr/include/

[DIR] GL [ delete | rename ]
[DIR] KF5 [ delete | rename ]
[DIR] X11 [ delete | rename ]
[DIR] apache2 [ delete | rename ]
[DIR] arpa [ delete | rename ]
[DIR] asm [ delete | rename ]
[DIR] asm-generic [ delete | rename ]
[DIR] bind9 [ delete | rename ]
[DIR] bits [ delete | rename ]
[DIR] bsock [ delete | rename ]
[DIR] c++ [ delete | rename ]
[DIR] criu [ delete | rename ]
[DIR] db4.7.25 [ delete | rename ]
[DIR] drm [ delete | rename ]
[DIR] e2p [ delete | rename ]
[DIR] et [ delete | rename ]
[DIR] ext2fs [ delete | rename ]
[DIR] fontconfig [ delete | rename ]
[DIR] freetype2 [ delete | rename ]
[DIR] gdbm [ delete | rename ]
[DIR] gnu [ delete | rename ]
[DIR] google [ delete | rename ]
[DIR] gssapi [ delete | rename ]
[DIR] gssrpc [ delete | rename ]
[DIR] kadm5 [ delete | rename ]
[DIR] kde4 [ delete | rename ]
[DIR] krb5 [ delete | rename ]
[DIR] libdb [ delete | rename ]
[DIR] libexslt [ delete | rename ]
[DIR] libltdl [ delete | rename ]
[DIR] libpng15 [ delete | rename ]
[DIR] libxml2 [ delete | rename ]
[DIR] libxslt [ delete | rename ]
[DIR] linux [ delete | rename ]
[DIR] lzma [ delete | rename ]
[DIR] misc [ delete | rename ]
[DIR] mtd [ delete | rename ]
[DIR] mysql [ delete | rename ]
[DIR] ncurses [ delete | rename ]
[DIR] ncursesw [ delete | rename ]
[DIR] net [ delete | rename ]
[DIR] netash [ delete | rename ]
[DIR] netatalk [ delete | rename ]
[DIR] netax25 [ delete | rename ]
[DIR] neteconet [ delete | rename ]
[DIR] netinet [ delete | rename ]
[DIR] netipx [ delete | rename ]
[DIR] netiucv [ delete | rename ]
[DIR] netpacket [ delete | rename ]
[DIR] netrom [ delete | rename ]
[DIR] netrose [ delete | rename ]
[DIR] nfs [ delete | rename ]
[DIR] openssl [ delete | rename ]
[DIR] protobuf-c [ delete | rename ]
[DIR] protocols [ delete | rename ]
[DIR] python2.7 [ delete | rename ]
[DIR] python3.6m [ delete | rename ]
[DIR] quota [ delete | rename ]
[DIR] rdma [ delete | rename ]
[DIR] rpc [ delete | rename ]
[DIR] rpcsvc [ delete | rename ]
[DIR] sasl [ delete | rename ]
[DIR] scsi [ delete | rename ]
[DIR] security [ delete | rename ]
[DIR] selinux [ delete | rename ]
[DIR] sepol [ delete | rename ]
[DIR] sound [ delete | rename ]
[DIR] sys [ delete | rename ]
[DIR] uapi [ delete | rename ]
[DIR] uuid [ delete | rename ]
[DIR] video [ delete | rename ]
[DIR] xcb [ delete | rename ]
[DIR] xen [ delete | rename ]
[FILE] FlexLexer.h [ edit | delete | rename | download ]
[FILE] _G_config.h [ edit | delete | rename | download ]
[FILE] a.out.h [ edit | delete | rename | download ]
[FILE] aio.h [ edit | delete | rename | download ]
[FILE] aliases.h [ edit | delete | rename | download ]
[FILE] alloca.h [ edit | delete | rename | download ]
[FILE] ar.h [ edit | delete | rename | download ]
[FILE] argp.h [ edit | delete | rename | download ]
[FILE] argz.h [ edit | delete | rename | download ]
[FILE] assert.h [ edit | delete | rename | download ]
[FILE] autosprintf.h [ edit | delete | rename | download ]
[FILE] byteswap.h [ edit | delete | rename | download ]
[FILE] com_err.h [ edit | delete | rename | download ]
[FILE] complex.h [ edit | delete | rename | download ]
[FILE] cpio.h [ edit | delete | rename | download ]
[FILE] cpufreq.h [ edit | delete | rename | download ]
[FILE] crypt.h [ edit | delete | rename | download ]
[FILE] ctype.h [ edit | delete | rename | download ]
[FILE] curses.h [ edit | delete | rename | download ]
[FILE] cursesapp.h [ edit | delete | rename | download ]
[FILE] cursesf.h [ edit | delete | rename | download ]
[FILE] cursesm.h [ edit | delete | rename | download ]
[FILE] cursesp.h [ edit | delete | rename | download ]
[FILE] cursesw.h [ edit | delete | rename | download ]
[FILE] cursslk.h [ edit | delete | rename | download ]
[FILE] db.h [ edit | delete | rename | download ]
[FILE] db_185.h [ edit | delete | rename | download ]
[FILE] dbm.h [ edit | delete | rename | download ]
[FILE] dirent.h [ edit | delete | rename | download ]
[FILE] dlfcn.h [ edit | delete | rename | download ]
[FILE] elf.h [ edit | delete | rename | download ]
[FILE] endian.h [ edit | delete | rename | download ]
[FILE] entities.h [ edit | delete | rename | download ]
[FILE] envz.h [ edit | delete | rename | download ]
[FILE] err.h [ edit | delete | rename | download ]
[FILE] errno.h [ edit | delete | rename | download ]
[FILE] error.h [ edit | delete | rename | download ]
[FILE] eti.h [ edit | delete | rename | download ]
[FILE] etip.h [ edit | delete | rename | download ]
[FILE] execinfo.h [ edit | delete | rename | download ]
[FILE] expat.h [ edit | delete | rename | download ]
[FILE] expat_external.h [ edit | delete | rename | download ]
[FILE] fcntl.h [ edit | delete | rename | download ]
[FILE] features.h [ edit | delete | rename | download ]
[FILE] fenv.h [ edit | delete | rename | download ]
[FILE] fmtmsg.h [ edit | delete | rename | download ]
[FILE] fnmatch.h [ edit | delete | rename | download ]
[FILE] form.h [ edit | delete | rename | download ]
[FILE] fpu_control.h [ edit | delete | rename | download ]
[FILE] fstab.h [ edit | delete | rename | download ]
[FILE] fts.h [ edit | delete | rename | download ]
[FILE] ftw.h [ edit | delete | rename | download ]
[FILE] gconv.h [ edit | delete | rename | download ]
[FILE] gcrypt-module.h [ edit | delete | rename | download ]
[FILE] gcrypt.h [ edit | delete | rename | download ]
[FILE] gd.h [ edit | delete | rename | download ]
[FILE] gd_io.h [ edit | delete | rename | download ]
[FILE] gdbm.h [ edit | delete | rename | download ]
[FILE] gdcache.h [ edit | delete | rename | download ]
[FILE] gdfontg.h [ edit | delete | rename | download ]
[FILE] gdfontl.h [ edit | delete | rename | download ]
[FILE] gdfontmb.h [ edit | delete | rename | download ]
[FILE] gdfonts.h [ edit | delete | rename | download ]
[FILE] gdfontt.h [ edit | delete | rename | download ]
[FILE] gdfx.h [ edit | delete | rename | download ]
[FILE] gelf.h [ edit | delete | rename | download ]
[FILE] getopt.h [ edit | delete | rename | download ]
[FILE] gettext-po.h [ edit | delete | rename | download ]
[FILE] glob.h [ edit | delete | rename | download ]
[FILE] gnu-versions.h [ edit | delete | rename | download ]
[FILE] gpg-error.h [ edit | delete | rename | download ]
[FILE] grp.h [ edit | delete | rename | download ]
[FILE] gshadow.h [ edit | delete | rename | download ]
[FILE] gssapi.h [ edit | delete | rename | download ]
[FILE] iconv.h [ edit | delete | rename | download ]
[FILE] idn-free.h [ edit | delete | rename | download ]
[FILE] idn-int.h [ edit | delete | rename | download ]
[FILE] idna.h [ edit | delete | rename | download ]
[FILE] ieee754.h [ edit | delete | rename | download ]
[FILE] ifaddrs.h [ edit | delete | rename | download ]
[FILE] inttypes.h [ edit | delete | rename | download ]
[FILE] jconfig.h [ edit | delete | rename | download ]
[FILE] jerror.h [ edit | delete | rename | download ]
[FILE] jmorecfg.h [ edit | delete | rename | download ]
[FILE] jpeglib.h [ edit | delete | rename | download ]
[FILE] kdb.h [ edit | delete | rename | download ]
[FILE] keyutils.h [ edit | delete | rename | download ]
[FILE] krad.h [ edit | delete | rename | download ]
[FILE] krb5.h [ edit | delete | rename | download ]
[FILE] langinfo.h [ edit | delete | rename | download ]
[FILE] lastlog.h [ edit | delete | rename | download ]
[FILE] lauxlib.h [ edit | delete | rename | download ]
[FILE] lber.h [ edit | delete | rename | download ]
[FILE] lber_types.h [ edit | delete | rename | download ]
[FILE] ldap.h [ edit | delete | rename | download ]
[FILE] ldap_cdefs.h [ edit | delete | rename | download ]
[FILE] ldap_features.h [ edit | delete | rename | download ]
[FILE] ldap_schema.h [ edit | delete | rename | download ]
[FILE] ldap_utf8.h [ edit | delete | rename | download ]
[FILE] ldif.h [ edit | delete | rename | download ]
[FILE] libaio.h [ edit | delete | rename | download ]
[FILE] libelf.h [ edit | delete | rename | download ]
[FILE] libgen.h [ edit | delete | rename | download ]
[FILE] libintl.h [ edit | delete | rename | download ]
[FILE] libio.h [ edit | delete | rename | download ]
[FILE] limits.h [ edit | delete | rename | download ]
[FILE] link.h [ edit | delete | rename | download ]
[FILE] locale.h [ edit | delete | rename | download ]
[FILE] ltdl.h [ edit | delete | rename | download ]
[FILE] lua.h [ edit | delete | rename | download ]
[FILE] lua.hpp [ edit | delete | rename | download ]
[FILE] luaconf.h [ edit | delete | rename | download ]
[FILE] lualib.h [ edit | delete | rename | download ]
[FILE] lzma.h [ edit | delete | rename | download ]
[FILE] malloc.h [ edit | delete | rename | download ]
[FILE] math.h [ edit | delete | rename | download ]
[FILE] mcheck.h [ edit | delete | rename | download ]
[FILE] memory.h [ edit | delete | rename | download ]
[FILE] menu.h [ edit | delete | rename | download ]
[FILE] mntent.h [ edit | delete | rename | download ]
[FILE] monetary.h [ edit | delete | rename | download ]
[FILE] mqueue.h [ edit | delete | rename | download ]
[FILE] nc_tparm.h [ edit | delete | rename | download ]
[FILE] ncurses.h [ edit | delete | rename | download ]
[FILE] ncurses_dll.h [ edit | delete | rename | download ]
[FILE] ndbm.h [ edit | delete | rename | download ]
[FILE] netdb.h [ edit | delete | rename | download ]
[FILE] nl_types.h [ edit | delete | rename | download ]
[FILE] nlist.h [ edit | delete | rename | download ]
[FILE] nss.h [ edit | delete | rename | download ]
[FILE] obstack.h [ edit | delete | rename | download ]
[FILE] panel.h [ edit | delete | rename | download ]
[FILE] paths.h [ edit | delete | rename | download ]
[FILE] pcre.h [ edit | delete | rename | download ]
[FILE] pcre_scanner.h [ edit | delete | rename | download ]
[FILE] pcre_stringpiece.h [ edit | delete | rename | download ]
[FILE] pcrecpp.h [ edit | delete | rename | download ]
[FILE] pcrecpparg.h [ edit | delete | rename | download ]
[FILE] pcreposix.h [ edit | delete | rename | download ]
[FILE] png.h [ edit | delete | rename | download ]
[FILE] pngconf.h [ edit | delete | rename | download ]
[FILE] pnglibconf.h [ edit | delete | rename | download ]
[FILE] poll.h [ edit | delete | rename | download ]
[FILE] pr29.h [ edit | delete | rename | download ]
[FILE] printf.h [ edit | delete | rename | download ]
[FILE] profile.h [ edit | delete | rename | download ]
[FILE] pthread.h [ edit | delete | rename | download ]
[FILE] pty.h [ edit | delete | rename | download ]
[FILE] punycode.h [ edit | delete | rename | download ]
[FILE] pwd.h [ edit | delete | rename | download ]
[FILE] re_comp.h [ edit | delete | rename | download ]
[FILE] regex.h [ edit | delete | rename | download ]
[FILE] regexp.h [ edit | delete | rename | download ]
[FILE] resolv.h [ edit | delete | rename | download ]
[FILE] sched.h [ edit | delete | rename | download ]
[FILE] search.h [ edit | delete | rename | download ]
[FILE] semaphore.h [ edit | delete | rename | download ]
[FILE] setjmp.h [ edit | delete | rename | download ]
[FILE] sgtty.h [ edit | delete | rename | download ]
[FILE] shadow.h [ edit | delete | rename | download ]
[FILE] signal.h [ edit | delete | rename | download ]
[FILE] slapi-plugin.h [ edit | delete | rename | download ]
[FILE] spawn.h [ edit | delete | rename | download ]
[FILE] stab.h [ edit | delete | rename | download ]
[FILE] stdc-predef.h [ edit | delete | rename | download ]
[FILE] stdint.h [ edit | delete | rename | download ]
[FILE] stdio.h [ edit | delete | rename | download ]
[FILE] stdio_ext.h [ edit | delete | rename | download ]
[FILE] stdlib.h [ edit | delete | rename | download ]
[FILE] string.h [ edit | delete | rename | download ]
[FILE] stringprep.h [ edit | delete | rename | download ]
[FILE] strings.h [ edit | delete | rename | download ]
[FILE] syscall.h [ edit | delete | rename | download ]
[FILE] sysexits.h [ edit | delete | rename | download ]
[FILE] syslog.h [ edit | delete | rename | download ]
[FILE] tar.h [ edit | delete | rename | download ]
[FILE] tcpd.h [ edit | delete | rename | download ]
[FILE] term.h [ edit | delete | rename | download ]
[FILE] term_entry.h [ edit | delete | rename | download ]
[FILE] termcap.h [ edit | delete | rename | download ]
[FILE] termio.h [ edit | delete | rename | download ]
[FILE] termios.h [ edit | delete | rename | download ]
[FILE] tgmath.h [ edit | delete | rename | download ]
[FILE] thread_db.h [ edit | delete | rename | download ]
[FILE] tic.h [ edit | delete | rename | download ]
[FILE] tiff.h [ edit | delete | rename | download ]
[FILE] tiffconf-64.h [ edit | delete | rename | download ]
[FILE] tiffconf.h [ edit | delete | rename | download ]
[FILE] tiffio.h [ edit | delete | rename | download ]
[FILE] tiffio.hxx [ edit | delete | rename | download ]
[FILE] tiffvers.h [ edit | delete | rename | download ]
[FILE] time.h [ edit | delete | rename | download ]
[FILE] tld.h [ edit | delete | rename | download ]
[FILE] ttyent.h [ edit | delete | rename | download ]
[FILE] uchar.h [ edit | delete | rename | download ]
[FILE] ucontext.h [ edit | delete | rename | download ]
[FILE] ulimit.h [ edit | delete | rename | download ]
[FILE] unctrl.h [ edit | delete | rename | download ]
[FILE] unistd.h [ edit | delete | rename | download ]
[FILE] ustat.h [ edit | delete | rename | download ]
[FILE] utime.h [ edit | delete | rename | download ]
[FILE] utmp.h [ edit | delete | rename | download ]
[FILE] utmpx.h [ edit | delete | rename | download ]
[FILE] values.h [ edit | delete | rename | download ]
[FILE] verto-module.h [ edit | delete | rename | download ]
[FILE] verto.h [ edit | delete | rename | download ]
[FILE] wait.h [ edit | delete | rename | download ]
[FILE] wchar.h [ edit | delete | rename | download ]
[FILE] wctype.h [ edit | delete | rename | download ]
[FILE] wordexp.h [ edit | delete | rename | download ]
[FILE] xlocale.h [ edit | delete | rename | download ]
[FILE] zconf.h [ edit | delete | rename | download ]
[FILE] zlib.h [ edit | delete | rename | download ]

Viewing: /usr/include/keyutils.h

/* keyutils.h: key utility library interface
 *
 * Copyright (C) 2005,2011 Red Hat, Inc. All Rights Reserved.
 * Written by David Howells (dhowells@redhat.com)
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */

#ifndef KEYUTILS_H
#define KEYUTILS_H

#include <stdint.h>

extern const char keyutils_version_string[];
extern const char keyutils_build_string[];

/* key serial number */
typedef int32_t key_serial_t;

/* special process keyring shortcut IDs */
#define KEY_SPEC_THREAD_KEYRING		-1	/* - key ID for thread-specific keyring */
#define KEY_SPEC_PROCESS_KEYRING	-2	/* - key ID for process-specific keyring */
#define KEY_SPEC_SESSION_KEYRING	-3	/* - key ID for session-specific keyring */
#define KEY_SPEC_USER_KEYRING		-4	/* - key ID for UID-specific keyring */
#define KEY_SPEC_USER_SESSION_KEYRING	-5	/* - key ID for UID-session keyring */
#define KEY_SPEC_GROUP_KEYRING		-6	/* - key ID for GID-specific keyring */
#define KEY_SPEC_REQKEY_AUTH_KEY	-7	/* - key ID for assumed request_key auth key */

/* request-key default keyrings */
#define KEY_REQKEY_DEFL_NO_CHANGE		-1
#define KEY_REQKEY_DEFL_DEFAULT			0
#define KEY_REQKEY_DEFL_THREAD_KEYRING		1
#define KEY_REQKEY_DEFL_PROCESS_KEYRING		2
#define KEY_REQKEY_DEFL_SESSION_KEYRING		3
#define KEY_REQKEY_DEFL_USER_KEYRING		4
#define KEY_REQKEY_DEFL_USER_SESSION_KEYRING	5
#define KEY_REQKEY_DEFL_GROUP_KEYRING		6

/* key handle permissions mask */
typedef uint32_t key_perm_t;

#define KEY_POS_VIEW	0x01000000	/* possessor can view a key's attributes */
#define KEY_POS_READ	0x02000000	/* possessor can read key payload / view keyring */
#define KEY_POS_WRITE	0x04000000	/* possessor can update key payload / add link to keyring */
#define KEY_POS_SEARCH	0x08000000	/* possessor can find a key in search / search a keyring */
#define KEY_POS_LINK	0x10000000	/* possessor can create a link to a key/keyring */
#define KEY_POS_SETATTR	0x20000000	/* possessor can set key attributes */
#define KEY_POS_ALL	0x3f000000

#define KEY_USR_VIEW	0x00010000	/* user permissions... */
#define KEY_USR_READ	0x00020000
#define KEY_USR_WRITE	0x00040000
#define KEY_USR_SEARCH	0x00080000
#define KEY_USR_LINK	0x00100000
#define KEY_USR_SETATTR	0x00200000
#define KEY_USR_ALL	0x003f0000

#define KEY_GRP_VIEW	0x00000100	/* group permissions... */
#define KEY_GRP_READ	0x00000200
#define KEY_GRP_WRITE	0x00000400
#define KEY_GRP_SEARCH	0x00000800
#define KEY_GRP_LINK	0x00001000
#define KEY_GRP_SETATTR	0x00002000
#define KEY_GRP_ALL	0x00003f00

#define KEY_OTH_VIEW	0x00000001	/* third party permissions... */
#define KEY_OTH_READ	0x00000002
#define KEY_OTH_WRITE	0x00000004
#define KEY_OTH_SEARCH	0x00000008
#define KEY_OTH_LINK	0x00000010
#define KEY_OTH_SETATTR	0x00000010
#define KEY_OTH_ALL	0x0000003f

/* keyctl commands */
#define KEYCTL_GET_KEYRING_ID		0	/* ask for a keyring's ID */
#define KEYCTL_JOIN_SESSION_KEYRING	1	/* join or start named session keyring */
#define KEYCTL_UPDATE			2	/* update a key */
#define KEYCTL_REVOKE			3	/* revoke a key */
#define KEYCTL_CHOWN			4	/* set ownership of a key */
#define KEYCTL_SETPERM			5	/* set perms on a key */
#define KEYCTL_DESCRIBE			6	/* describe a key */
#define KEYCTL_CLEAR			7	/* clear contents of a keyring */
#define KEYCTL_LINK			8	/* link a key into a keyring */
#define KEYCTL_UNLINK			9	/* unlink a key from a keyring */
#define KEYCTL_SEARCH			10	/* search for a key in a keyring */
#define KEYCTL_READ			11	/* read a key or keyring's contents */
#define KEYCTL_INSTANTIATE		12	/* instantiate a partially constructed key */
#define KEYCTL_NEGATE			13	/* negate a partially constructed key */
#define KEYCTL_SET_REQKEY_KEYRING	14	/* set default request-key keyring */
#define KEYCTL_SET_TIMEOUT		15	/* set timeout on a key */
#define KEYCTL_ASSUME_AUTHORITY		16	/* assume authority to instantiate key */
#define KEYCTL_GET_SECURITY		17	/* get key security label */
#define KEYCTL_SESSION_TO_PARENT	18	/* set my session keyring on my parent process */
#define KEYCTL_REJECT			19	/* reject a partially constructed key */
#define KEYCTL_INSTANTIATE_IOV		20	/* instantiate a partially constructed key */
#define KEYCTL_INVALIDATE		21	/* invalidate a key */
#define KEYCTL_GET_PERSISTENT		22	/* get a user's persistent keyring */

/*
 * syscall wrappers
 */
extern key_serial_t add_key(const char *type,
			    const char *description,
			    const void *payload,
			    size_t plen,
			    key_serial_t ringid);

extern key_serial_t request_key(const char *type,
				const char *description,
				const char *callout_info,
				key_serial_t destringid);

extern long keyctl(int cmd, ...);

/*
 * keyctl function wrappers
 */
extern key_serial_t keyctl_get_keyring_ID(key_serial_t id, int create);
extern key_serial_t keyctl_join_session_keyring(const char *name);
extern long keyctl_update(key_serial_t id, const void *payload, size_t plen);
extern long keyctl_revoke(key_serial_t id);
extern long keyctl_chown(key_serial_t id, uid_t uid, gid_t gid);
extern long keyctl_setperm(key_serial_t id, key_perm_t perm);
extern long keyctl_describe(key_serial_t id, char *buffer, size_t buflen);
extern long keyctl_clear(key_serial_t ringid);
extern long keyctl_link(key_serial_t id, key_serial_t ringid);
extern long keyctl_unlink(key_serial_t id, key_serial_t ringid);
extern long keyctl_search(key_serial_t ringid,
			  const char *type,
			  const char *description,
			  key_serial_t destringid);
extern long keyctl_read(key_serial_t id, char *buffer, size_t buflen);
extern long keyctl_instantiate(key_serial_t id,
			       const void *payload,
			       size_t plen,
			       key_serial_t ringid);
extern long keyctl_negate(key_serial_t id, unsigned timeout, key_serial_t ringid);
extern long keyctl_set_reqkey_keyring(int reqkey_defl);
extern long keyctl_set_timeout(key_serial_t key, unsigned timeout);
extern long keyctl_assume_authority(key_serial_t key);
extern long keyctl_get_security(key_serial_t key, char *buffer, size_t buflen);
extern long keyctl_session_to_parent(void);
extern long keyctl_reject(key_serial_t id, unsigned timeout, unsigned error,
			  key_serial_t ringid);
struct iovec;
extern long keyctl_instantiate_iov(key_serial_t id,
				   const struct iovec *payload_iov,
				   unsigned ioc,
				   key_serial_t ringid);
extern long keyctl_invalidate(key_serial_t id);
extern long keyctl_get_persistent(uid_t uid, key_serial_t id);

/*
 * utilities
 */
extern int keyctl_describe_alloc(key_serial_t id, char **_buffer);
extern int keyctl_read_alloc(key_serial_t id, void **_buffer);
extern int keyctl_get_security_alloc(key_serial_t id, char **_buffer);

typedef int (*recursive_key_scanner_t)(key_serial_t parent, key_serial_t key,
				       char *desc, int desc_len, void *data);
extern int recursive_key_scan(key_serial_t key, recursive_key_scanner_t func, void *data);
extern int recursive_session_key_scan(recursive_key_scanner_t func, void *data);
extern key_serial_t find_key_by_type_and_desc(const char *type, const char *desc,
					      key_serial_t destringid);

#endif /* KEYUTILS_H */

Upload File: