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

# find\_key\_by\_type\_and\_name(3)

find a key by type and name

## NAME

find\_key\_by\_type\_and\_name - find a key by type and name

## SYNOPSIS

```
#include <keyutils.h>

key_serial_t find_key_by_type_and_name(const char *type,
    const char *description, key_serial_t destringid);
```

## DESCRIPTION

**find\_key\_by\_type\_and\_name**() searches for a key with the given *type* and exact *description*, firstly in the thread, process and session keyrings to which a process is subscribed and secondly in */proc/keys*.

If a key is found, and *destringid* is not 0 and specifies a keyring, then the found key will be linked into it.

## RETURN VALUE

The function returns the ID of the key if a key was found or -1 otherwise.

## ERRORS

- **ENOKEY**

  No key was found or the keyring specified is invalid.

- **EKEYEXPIRED**

  The key or keyring have expired.

- **EKEYREVOKED**

  The key or keyring have been revoked.

- **EACCES**

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

## LINKING

When linking, **-lkeyutils** should be specified to the linker.

## SEE ALSO

[**request\_key**(2)](/request_key/2.md), [**keyctl**(3)](/keyctl/3.md), [**keyrings**(7)](/keyrings/7.md)
