KEYCTL\_UPDATE(3) Linux Key Management Calls KEYCTL\_UPDATE(3)

# [NAME](#NAME)

keyctl\_update - update a key

# [SYNOPSIS](#SYNOPSIS)

```
#include <keyutils.h>

long keyctl_update(key_serial_t key, const void *payload,
size_t plen);
```

# [DESCRIPTION](#DESCRIPTION)

**keyctl\_update**() updates the payload of a key if the key type permits it.

The caller must have **write** permission on a key to be able to update it.

*payload* and *plen* specify the data for the new payload. *payload* may be NULL and *plen* may be zero if the key type permits that. The key type may reject the data if it's in the wrong format or in some other way invalid.

# [RETURN VALUE](#RETURN_VALUE)

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

# [ERRORS](#ERRORS)

[**ENOKEY**](#ENOKEY)

The key specified is invalid.

[**EKEYEXPIRED**](#EKEYEXPIRED)

The key specified has expired.

[**EKEYREVOKED**](#EKEYREVOKED)

The key specified had been revoked.

[**EINVAL**](#EINVAL)

The payload data was invalid.

[**ENOMEM**](#ENOMEM)

Insufficient memory to store the new payload.

[**EDQUOT**](#EDQUOT)

The key quota for this user would be exceeded by increasing the size of the key to accommodate the new payload.

[**EACCES**](#EACCES)

The key exists, but is not **writable** by the calling process.

[**EOPNOTSUPP**](#EOPNOTSUPP)

The key type does not support the update operation on its keys.

# [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), [**add\_key**(2)](/man/os/keyutils/add_key.2), [**keyctl**(2)](/man/os/keyutils/keyctl.2), [**request\_key**(2)](/man/os/keyutils/request_key.2), [**keyctl**(3)](/man/os/keyutils/keyctl.3), [**keyrings**(7)](/man/os/keyutils/keyrings.7), [**keyutils**(7)](/man/os/keyutils/keyutils.7)

4 May 2006 Linux

---

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