KEYCTL_GET_KEYRING_ID(2const) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | STANDARDS | HISTORY | SEE ALSO | COLOPHON

KEYCTL_GET_KEYRING_ID(2const)               KEYCTL_GET_KEYRING_ID(2const)

NAME         top

       KEYCTL_GET_KEYRING_ID - map a special key ID to a real key ID for
       this process

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #include <linux/keyctl.h>  /* Definition of KEY* constants */
       #include <sys/syscall.h>   /* Definition of SYS_* constants */
       #include <unistd.h>

       long syscall(SYS_keyctl, KEYCTL_GET_KEYRING_ID, key_serial_t key,
                    int arg3);

DESCRIPTION         top

       Map a special key ID to a real key ID for this process.

       This operation looks up the special key whose ID is provided in
       key.  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 in key:

       KEY_SPEC_THREAD_KEYRING
              This specifies the calling thread's thread-specific
              keyring.  See thread-keyring(7).

       KEY_SPEC_PROCESS_KEYRING
              This specifies the caller's process-specific keyring.  See
              process-keyring(7).

       KEY_SPEC_SESSION_KEYRING
              This specifies the caller's session-specific keyring.  See
              session-keyring(7).

       KEY_SPEC_USER_KEYRING
              This specifies the caller's UID-specific keyring.  See
              user-keyring(7).

       KEY_SPEC_USER_SESSION_KEYRING
              This specifies the caller's UID-session keyring.  See
              user-session-keyring(7).

       KEY_SPEC_REQKEY_AUTH_KEY (since Linux 2.6.16)
              This specifies the authorization key created by
              request_key(2) and passed to the process it spawns to
              generate a key.  This key is available only in a
              request-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; see
              request_key(2).

       KEY_SPEC_REQUESTOR_KEYRING (since Linux 2.6.29)
              This specifies the key ID for the request_key(2)
              destination keyring.  This keyring is available only in a
              request-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; see
              request_key(2).

       The behavior if the key specified in key does not exist depends on
       the value of arg3.  If arg3 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 error ENOKEY.

       If a valid key ID is specified in key, and the key exists, then
       this operation simply returns the key ID.  If the key does not
       exist, the call fails with error ENOKEY.

       The caller must have search permission on a keyring in order for
       it to be found.

RETURN VALUE         top

       On success, the ID of the requested keyring.

       On error, -1 is returned, and errno is set to indicate the error.

ERRORS         top

       ENOKEY The key specified in key did not exist, and arg3 was zero
              (meaning don't create the key if it didn't exist).

VERSIONS         top

       A wrapper is provided in the libkeyutils library:
       keyctl_get_keyring_ID(3).

STANDARDS         top

       Linux.

HISTORY         top

       Linux 2.6.10.

SEE ALSO         top

       keyctl(2), keyctl_get_keyring_ID(3)

COLOPHON         top

       This page is part of the man-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.10.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2025-02-02.  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 is not
       part of the original manual page), send a mail to
       man-pages@man7.org

Linux man-pages 6.10            2024-08-21  KEYCTL_GET_KEYRING_ID(2const)

Pages that refer to this page: keyctl(2)KEYCTL_READ(2const)KEYCTL_SEARCH(2const)KEYCTL_SETPERM(2const)