KEYCTL\_RESTRICT\_KEYRING(3) Linux Key Management Calls KEYCTL\_RESTRICT\_KEYRING(3)

# [NAME](#NAME)

keyctl\_restrict\_keyring - restrict keys that may be linked to a keyring

# [SYNOPSIS](#SYNOPSIS)

```
#include <keyutils.h>

long keyctl_restrict_keyring(key_serial_t keyring,
const char *type, const char *restriction);
```

# [DESCRIPTION](#DESCRIPTION)

**keyctl\_restrict\_keyring**() limits the linkage of keys to the given *keyring* using a provided key *type* and *restriction* scheme. The available options vary depending on the key type, and typically contain a restriction name possibly followed by key ids or other data relevant to the restriction. If the type and restriction are both **NULL,** the keyring will reject all links.

# [RETURN VALUE](#RETURN_VALUE)

On success **keyctl\_restrict\_keyring**() returns **0**. On error, the value **-1** will be returned and *errno* will have been set to an appropriate error.

# [ERRORS](#ERRORS)

[**EDEADLK**](#EDEADLK)

A restriction cycle was avoided. Two keyrings cannot restrict each other.

[**EEXIST**](#EEXIST)

The keyring is already restricted.

[**EINVAL**](#EINVAL)

The restriction string is invalid or too large.

[**ENOKEY**](#ENOKEY)

The key type in the restriction is invalid or not available.

[**ENOTDIR**](#ENOTDIR)

The provided key id references an item that is not a keyring.

[**ENOENT**](#ENOENT)

The key type exists but does not support restrictions.

# [LINKING](#LINKING)

This is a library function that can be found in *libkeyutils*. When linking, **-lkeyutils** should be specified to the linker.

# [SEE ALSO](#SEE_ALSO)

[**keyctl**(1)](/man/os/keyutils/keyctl.1), [**keyctl**(2)](/man/os/keyutils/keyctl.2), [**keyctl**(3)](/man/os/keyutils/keyctl.3), [**keyutils**(7)](/man/os/keyutils/keyutils.7)

28 Feb 2017 Linux

---

Document: keyctl_restrict_keyring(3) from keyutils 1.6.3-r40 (Chainguard OS)
Source: https://kernel.googlesource.com/pub/scm/linux/kernel/git/dhowells/keyutils.git
