KEYCTL(2)

ИМЯ
keyctl - работа с системой управления ключами ядра

ОБЗОР
#include <keyutils.h>

long keyctl(int cmd, ...);

ОПИСАНИЕ
Вызов keyctl() выполняет несколько функций:

KEYCTL_GET_KEYRING_ID
    Запрашивает идентификатор связки ключей.

KEYCTL_JOIN_SESSION_KEYRING
    Подсоединяется или запускает именованную сеансовую связку ключей.

KEYCTL_UPDATE
    Обновляет ключ.

KEYCTL_REVOKE
    Отзывает ключ.

KEYCTL_CHOWN
    Назначает владельца ключа.

KEYCTL_SETPERM
    Назначает права на ключ.

KEYCTL_DESCRIBE
    Описывает ключ.

KEYCTL_CLEAR
    Стирает содержимое связки ключей.

KEYCTL_LINK
    Цепляет ключ в связку ключей.

KEYCTL_UNLINK
    Отцепляет ключ от связки ключей.

KEYCTL_SEARCH
    Ищет ключ в связке ключей.

KEYCTL_READ
    Читает содержимое ключа или связки ключей.

KEYCTL_INSTANTIATE
    Создаёт (Instantiate) частично сконструированный ключ.

KEYCTL_NEGATE
    Удаляет (Negate) частично сконструированный ключ.

KEYCTL_SET_REQKEY_KEYRING
    Назначает связку ключей request-key по умолчанию.

KEYCTL_SET_TIMEOUT
    Назначает время ожидания ключа.

KEYCTL_ASSUME_AUTHORITY
    Допускает полномочие создания ключа.

На базе этих операций в libkeyutils созданы отдельные функции, что позволяет проверять типы с помощью компилятора. Обратитесь к разделу Смотрите также ниже.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении keyctl() возвращается серийный номер найденного ключа. В случае ошибки возвращается значение -1, а в errno устанавливается код соответствующей ошибки.

ОШИБКИ

EACCES
    Операция с ключом не разрешена.

EDQUOT
    Квота на ключи для данного пользователя была бы превышена, если бы этот ключ создался или был бы прицеплен в связку ключей.

EKEYEXPIRED
    Найден или указан просроченный ключ.

EKEYREJECTED
    Найден или указан отклонённый (rejected) ключ.

EKEYREVOKED
    Найден или указан отозванный ключ.

ENOKEY
    Искомый ключ не найден или указан неверный ключ.

КОМПОНОВКА
Хотя это и системный вызов Linux, его нет в libc, но его можно найти в libkeyutils. При сборке программы компоновщику нужно указать параметр -lkeyutils.

СМОТРИТЕ ТАКЖЕ
keyctl(1), add_key(2), request_key(2), keyctl_set_timeout(3), keyctl_chown(3), keyctl_clear(3), keyctl_describe(3), keyctl_describe_alloc(3), keyctl_get_keyring_ID(3), keyctl_instantiate(3), keyctl_join_session_keyring(3), keyctl_link(3), keyctl_negate(3), keyctl_revoke(3), keyctl_search(3), keyctl_setperm(3), keyctl_set_reqkey_keyring(3), keyctl_set_timeout(3), keyctl_read(3), keyctl_read_alloc(3), keyctl_unlink(3), keyctl_update(3), keyrings(7), request-key(8) Файл из дерева исходного кода ядра Documentation/security/keys.txt.