---
name: "keyctl_invalidate"
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_invalidate"
---

# keyctl\_invalidate(3)

invalidate a key

## NAME

keyctl\_invalidate - invalidate a key

## SYNOPSIS

```
#include <keyutils.h>

long keyctl_invalidate(key_serial_t key);
```

## DESCRIPTION

**keyctl\_invalidate**() invalidates a *key*. The key is scheduled for immediate removal from all the keyrings that point to it, after which it will be deleted.  The key will be ignored by all searches once this function is called even if it is not yet fully dealt with.

The caller must have **search** permission on a key to be able to invalidate it.

## RETURN VALUE

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

## ERRORS

- **ENOKEY**

  The key specified is invalid.

- **EKEYEXPIRED**

  The key specified has expired.

- **EKEYREVOKED**

  The key specified had been revoked.

- **EACCES**

  The key exists, but is not **searchable** 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)](/keyctl/1.md), [**add\_key**(2)](/add_key/2.md), [**keyctl**(2)](/keyctl/2.md), [**request\_key**(2)](/request_key/2.md), [**keyctl**(3)](/keyctl/3.md), [**keyrings**(7)](/keyrings/7.md), [**keyutils**(7)](/keyutils/7.md)
