KEYCTL_LINK
Section: Linux Key Management Calls (3)
Updated: 4 May 2006
Index
Return to Main Contents
NAME
keyctl_link - Link a key to a keyring
keyctl_unlink - Unlink a key from a keyring
SYNOPSIS
#include <keyutils.h>
long keyctl_link(key_serial_t key, key_serial_t keyring);
long keyctl_unlink(key_serial_t key, key_serial_t keyring);
DESCRIPTION
keyctl_link()
creates a link from
keyring
to
key,
displacing any link to another key of the same type and description in that
keyring if one exists.
keyctl_unlink()
removes the link from
keyring
to
key
if it exists.
The caller must have
write
permission on a keyring to be able create or remove links in it.
The caller must have
link
permission on a key to be able to create a link to it.
RETURN VALUE
On success
keyctl_link()
and
keyctl_unlink()
return
0.
On error, the value
-1
will be returned and errno will have been set to an appropriate error.
ERRORS
- ENOKEY
-
The key or the keyring specified are invalid.
- EKEYEXPIRED
-
The key or the keyring specified have expired.
- EKEYREVOKED
-
The key or the keyring specified have been revoked.
- EACCES
-
The keyring exists, but is not
writable
by the calling process.
For
keyctl_link()
only:
- ENOMEM
-
Insufficient memory to expand the keyring
- EDQUOT
-
Expanding the keyring would exceed the keyring owner's quota.
- EACCES
-
The key exists, but is not
linkable
by the calling process.
LINKING
This is a library function that can be found in
libkeyutils.
When linking,
-lkeyutils
should be specified to the linker.
SEE ALSO
keyctl(1),
add_key(2),
keyctl(2),
request_key(2),
keyctl_get_keyring_ID(3),
keyctl_join_session_keyring(3),
keyctl_update(3),
keyctl_revoke(3),
keyctl_chown(3),
keyctl_setperm(3),
keyctl_describe(3),
keyctl_clear(3),
keyctl_search(3),
keyctl_read(3),
keyctl_instantiate(3),
keyctl_negate(3),
keyctl_set_reqkey_keyring(3),
keyctl_set_timeout(3),
keyctl_assume_authority(3),
keyctl_describe_alloc(3),
keyctl_read_alloc(3),
request-key(8)