RECURSIVE_KEY_SCAN(3)      Linux Key Utility Calls     RECURSIVE_KEY_SCAN(3)

NAME         top

       recursive_key_scan,  recursive_session_key_scan - apply a function to
       all keys in a keyring tree

SYNOPSIS         top

       #include <keyutils.h>

       typedef int (*recursive_key_scanner_t)(key_serial_t parent,
           key_serial_t key, char *desc, int desc_len, void *data);

       long recursive_key_scan(key_serial_t keyring,
           recursive_key_scanner_t func, void *data);
       long recursive_session_key_scan(recursive_key_scanner_t func,
           void *data);

DESCRIPTION         top

       recursive_key_scan() performs a depth-first recursive scan of the
       specified keyring tree and applies func to every link found in the
       accessible keyrings in that tree.  data is passed to each invocation
       of func.

       The return values of func are summed and returned as the overall
       return value.  Errors are ignored.  Inaccessible keyrings are not
       scanned, but links to them are still passed to func.

       recursive_session_key_scan() works exactly like recursive_key_scan()
       with the caller's session keyring specified as the starting keyring.

       The callback function is called for each link found in all the
       keyrings in the nominated tree and so may be called multiple times
       for a particular key if that key has multiple links to it.

       The callback function is passed the following parameters:

       parent The keyring containing the link or 0 for the initial key.

       key    The key to which the link points.

       desc and desc_len
              A pointer to the raw description and its length as retrieved
              with keyctl_describe_alloc().  These will be NULL and -1
              respectively if the description couldn't be retrieved and
              errno will retain the error from keyctl_describe_alloc().

       data   The data passed to the scanner function.

RETURN VALUE         top

       These functions return the sum of the results of the callback
       functions they invoke.

ERRORS         top


LINKING         top

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

SEE ALSO         top

       keyctl(3), keyctl_describe_alloc(3), keyrings(7)

COLOPHON         top

       This page is part of the keyutils (key management utilities) project.
       Information about the project can be found at [unknown -- if you
       know, please contact] If you have a bug report for
       this manual page, send it to  This page was
       obtained from the project's upstream Git repository 
       on 2017-03-13.  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

Linux                            10 Mar 2011           RECURSIVE_KEY_SCAN(3)