---
name: "keyctl"
section: "3"
platform: "linux"
package: "keyutils"
version: "1.6.3-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/keyctl/3"
---

# keyctl(3)

key management function wrappers

## NAME

keyctl\_\*() - key management function wrappers

## DESCRIPTION

The **keyctl**() system call is a multiplexor for a number of key management functions.  These should be called via the wrappers in the libkeyutils library.

The functions can be compiled in by including the **keyutils** header file:

```
#include <keyutils.h>
```

and then telling the linker it should link in the library:

```
-lkeyutils
```

## KEYCTL FUNCTIONS

[**keyctl\_assume\_authority**(3)](/keyctl_assume_authority/3.md)\
 [**keyctl\_chown**(3)](/keyctl_chown/3.md)\
 [**keyctl\_capabilities**(3)](/keyctl_capabilities/3.md)\
 [**keyctl\_clear**(3)](/keyctl_clear/3.md)\
 [**keyctl\_describe**(3)](/keyctl_describe/3.md)\
 [**keyctl\_describe\_alloc**(3)](/keyctl_describe_alloc/3.md)\
 [**keyctl\_dh\_compute**(3)](/keyctl_dh_compute/3.md)\
 [**keyctl\_dh\_compute\_alloc**(3)](/keyctl_dh_compute_alloc/3.md)\
 [**keyctl\_get\_keyring\_ID**(3)](/keyctl_get_keyring_ID/3.md)\
 [**keyctl\_get\_persistent**(3)](/keyctl_get_persistent/3.md)\
 [**keyctl\_get\_security**(3)](/keyctl_get_security/3.md)\
 [**keyctl\_get\_security\_alloc**(3)](/keyctl_get_security_alloc/3.md)\
 [**keyctl\_instantiate**(3)](/keyctl_instantiate/3.md)\
 [**keyctl\_instantiate\_iov**(3)](/keyctl_instantiate_iov/3.md)\
 [**keyctl\_invalidate**(3)](/keyctl_invalidate/3.md)\
 [**keyctl\_join\_session\_keyring**(3)](/keyctl_join_session_keyring/3.md)\
 [**keyctl\_link**(3)](/keyctl_link/3.md)\
 [**keyctl\_move**(3)](/keyctl_move/3.md)\
 [**keyctl\_negate**(3)](/keyctl_negate/3.md)\
 [**keyctl\_pkey\_decrypt**(3)](/keyctl_pkey_decrypt/3.md)\
 [**keyctl\_pkey\_encrypt**(3)](/keyctl_pkey_encrypt/3.md)\
 [**keyctl\_pkey\_query**(3)](/keyctl_pkey_query/3.md)\
 [**keyctl\_pkey\_sign**(3)](/keyctl_pkey_sign/3.md)\
 [**keyctl\_pkey\_verify**(3)](/keyctl_pkey_verify/3.md)\
 [**keyctl\_read**(3)](/keyctl_read/3.md)\
 [**keyctl\_read\_alloc**(3)](/keyctl_read_alloc/3.md)\
 [**keyctl\_reject**(3)](/keyctl_reject/3.md)\
 [**keyctl\_restrict\_keyring**(3)](/keyctl_restrict_keyring/3.md)\
 [**keyctl\_revoke**(3)](/keyctl_revoke/3.md)\
 [**keyctl\_search**(3)](/keyctl_search/3.md)\
 [**keyctl\_session\_to\_parent**(3)](/keyctl_session_to_parent/3.md)\
 [**keyctl\_set\_reqkey\_keyring**(3)](/keyctl_set_reqkey_keyring/3.md)\
 [**keyctl\_set\_timeout**(3)](/keyctl_set_timeout/3.md)\
 [**keyctl\_setperm**(3)](/keyctl_setperm/3.md)\
 [**keyctl\_unlink**(3)](/keyctl_unlink/3.md)\
 [**keyctl\_update**(3)](/keyctl_update/3.md)\
 [**keyctl\_watch\_key**(3)](/keyctl_watch_key/3.md)

## UTILITY FUNCTIONS

[**find\_key\_by\_type\_and\_name**(3)](/find_key_by_type_and_name/3.md)\
 [**recursive\_key\_scan**(3)](/recursive_key_scan/3.md)\
 [**recursive\_session\_key\_scan**(3)](/recursive_session_key_scan/3.md)

## SEE ALSO

[**keyctl**(1)](/keyctl/1.md), [**add\_key**(2)](/add_key/2.md), [**keyctl**(2)](/keyctl/2.md), [**request\_key**(2)](/request_key/2.md), [**keyrings**(7)](/keyrings/7.md), [**keyutils**(7)](/keyutils/7.md)
