NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |VERSIONS |STANDARDS |HISTORY |SEE ALSO |COLOPHON | |
KEYCTL_GET_KEYRING_ID(2const)KEYCTL_GET_KEYRING_ID(2const)KEYCTL_GET_KEYRING_ID - map a special key ID to a real key ID for this process
Standard C library (libc,-lc)
#include <linux/keyctl.h>/* Definition ofKEY*constants */#include <sys/syscall.h>/* Definition ofSYS_*constants */#include <unistd.h>long syscall(SYS_keyctl, KEYCTL_GET_KEYRING_ID, key_serial_tkey,intarg3);
Map a special key ID to a real key ID for this process. This operation looks up the special key whose ID is provided inkey. If the special key is found, the ID of the corresponding real key is returned as the function result. The following values may be specified inkey:KEY_SPEC_THREAD_KEYRING This specifies the calling thread's thread-specific keyring. Seethread-keyring(7).KEY_SPEC_PROCESS_KEYRING This specifies the caller's process-specific keyring. Seeprocess-keyring(7).KEY_SPEC_SESSION_KEYRING This specifies the caller's session-specific keyring. Seesession-keyring(7).KEY_SPEC_USER_KEYRING This specifies the caller's UID-specific keyring. Seeuser-keyring(7).KEY_SPEC_USER_SESSION_KEYRING This specifies the caller's UID-session keyring. Seeuser-session-keyring(7).KEY_SPEC_REQKEY_AUTH_KEY(since Linux 2.6.16) This specifies the authorization key created byrequest_key(2) and passed to the process it spawns to generate a key. This key is available only in arequest-key(8)-style program that was passed an authorization key by the kernel and ceases to be available once the requested key has been instantiated; seerequest_key(2).KEY_SPEC_REQUESTOR_KEYRING(since Linux 2.6.29) This specifies the key ID for therequest_key(2) destination keyring. This keyring is available only in arequest-key(8)-style program that was passed an authorization key by the kernel and ceases to be available once the requested key has been instantiated; seerequest_key(2). The behavior if the key specified inkey does not exist depends on the value ofarg3. Ifarg3 contains a nonzero value, then —if it is appropriate to do so (e.g., when looking up the user, user- session, or session key)— a new key is created and its real key ID returned as the function result. Otherwise, the operation fails with the errorENOKEY. If a valid key ID is specified inkey, and the key exists, then this operation simply returns the key ID. If the key does not exist, the call fails with errorENOKEY. The caller must havesearch permission on a keyring in order for it to be found.
On success, the ID of the requested keyring. On error, -1 is returned, anderrno is set to indicate the error.
ENOKEYThe key specified inkey did not exist, andarg3 was zero (meaning don't create the key if it didn't exist).
A wrapper is provided in thelibkeyutils library:keyctl_get_keyring_ID(3).
Linux.
Linux 2.6.10.
keyctl(2),keyctl_get_keyring_ID(3)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17KEYCTL_GET_KEYRING_ID(2const)Pages that refer to this page:keyctl(2), KEYCTL_READ(2const), KEYCTL_SEARCH(2const), KEYCTL_SETPERM(2const)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |