KEYCTL_LINK
Section: Linux Key Management Calls (3)
Updated: 4 May 2006
Page Index
NAME
keyctl_link, keyctl_unlink - link/unlink a key to/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(3),
keyrings(7),
keyutils(7)