keyctl_move(3) — Linux manual page


KEYCTL_MOVE(3)           Linux Key Management Calls           KEYCTL_MOVE(3)

NAME         top

       keyctl_move - Move a key between keyrings

SYNOPSIS         top

       #include <keyutils.h>

       long keyctl_move(key_serial_t key, key_serial_t from_keyring,
                        key_serial_t to_keyring, unsigned int flags);

DESCRIPTION         top

       keyctl_move() atomically unlinks key from from_keyring and links it
       into to_keyring in a single operation.  Depending on the flags set, a
       link to any matching key in to_keyring may get displaced.

       flags is a bitwise-OR of zero or more of the following flags:

              If there's a matching key in to_keyring, don't displace it but
              rather return an error.

       The caller must have write permission on both keyring to be able to
       create or remove links in them.

       The caller must have link permission on a key to be able to create a
       new link to it.

RETURN VALUE         top

       On success keyctl_move() return 0.  On error, the value -1 will be
       returned and errno will have been set to an appropriate error.

ERRORS         top

       ENOKEY The key or one of the keyrings specified are invalid.

       ENOKEY A key with the same type and description is present in
              to_keyring and KEYCTL_MOVE_EXCL is set.

              The key or one of the keyrings specified have expired.

              The key or one of the keyrings specified have been revoked.

       EACCES The key exists, but is not linkable by the calling process.

       EACCES The keyrings exist, but are not writable by the calling

       ENOMEM Insufficient memory to effect the changes.

       EDQUOT Expanding to_keyring would exceed the keyring owner's quota.

LINKING         top

       This is a library function that can be found in libkeyutils.  When
       linking, -lkeyutils should be specified to the linker.

SEE ALSO         top

       keyctl(1), add_key(2), keyctl(2), request_key(2), keyctl(3),
       keyrings(7), keyutils(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 2020-08-13.  (At that time, the date of the most recent commit
       that was found in the repository was 2020-07-07.)  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

Linux                            29 May 2019                  KEYCTL_MOVE(3)

Pages that refer to this page: keyctl(3)