linux/include/uapi/linux/keyctl.h

/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/* keyctl.h: keyctl command IDs
 *
 * Copyright (C) 2004, 2008 Red Hat, Inc. All Rights Reserved.
 * Written by David Howells ([email protected])
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */

#ifndef _LINUX_KEYCTL_H
#define _LINUX_KEYCTL_H

#include <linux/types.h>

/* special process keyring shortcut IDs */
#define KEY_SPEC_THREAD_KEYRING
#define KEY_SPEC_PROCESS_KEYRING
#define KEY_SPEC_SESSION_KEYRING
#define KEY_SPEC_USER_KEYRING
#define KEY_SPEC_USER_SESSION_KEYRING
#define KEY_SPEC_GROUP_KEYRING
#define KEY_SPEC_REQKEY_AUTH_KEY
#define KEY_SPEC_REQUESTOR_KEYRING

/* request-key default keyrings */
#define KEY_REQKEY_DEFL_NO_CHANGE
#define KEY_REQKEY_DEFL_DEFAULT
#define KEY_REQKEY_DEFL_THREAD_KEYRING
#define KEY_REQKEY_DEFL_PROCESS_KEYRING
#define KEY_REQKEY_DEFL_SESSION_KEYRING
#define KEY_REQKEY_DEFL_USER_KEYRING
#define KEY_REQKEY_DEFL_USER_SESSION_KEYRING
#define KEY_REQKEY_DEFL_GROUP_KEYRING
#define KEY_REQKEY_DEFL_REQUESTOR_KEYRING

/* keyctl commands */
#define KEYCTL_GET_KEYRING_ID
#define KEYCTL_JOIN_SESSION_KEYRING
#define KEYCTL_UPDATE
#define KEYCTL_REVOKE
#define KEYCTL_CHOWN
#define KEYCTL_SETPERM
#define KEYCTL_DESCRIBE
#define KEYCTL_CLEAR
#define KEYCTL_LINK
#define KEYCTL_UNLINK
#define KEYCTL_SEARCH
#define KEYCTL_READ
#define KEYCTL_INSTANTIATE
#define KEYCTL_NEGATE
#define KEYCTL_SET_REQKEY_KEYRING
#define KEYCTL_SET_TIMEOUT
#define KEYCTL_ASSUME_AUTHORITY
#define KEYCTL_GET_SECURITY
#define KEYCTL_SESSION_TO_PARENT
#define KEYCTL_REJECT
#define KEYCTL_INSTANTIATE_IOV
#define KEYCTL_INVALIDATE
#define KEYCTL_GET_PERSISTENT
#define KEYCTL_DH_COMPUTE
#define KEYCTL_PKEY_QUERY
#define KEYCTL_PKEY_ENCRYPT
#define KEYCTL_PKEY_DECRYPT
#define KEYCTL_PKEY_SIGN
#define KEYCTL_PKEY_VERIFY
#define KEYCTL_RESTRICT_KEYRING
#define KEYCTL_MOVE
#define KEYCTL_CAPABILITIES
#define KEYCTL_WATCH_KEY

/* keyctl structures */
struct keyctl_dh_params {};

struct keyctl_kdf_params {};

#define KEYCTL_SUPPORTS_ENCRYPT
#define KEYCTL_SUPPORTS_DECRYPT
#define KEYCTL_SUPPORTS_SIGN
#define KEYCTL_SUPPORTS_VERIFY

struct keyctl_pkey_query {};

struct keyctl_pkey_params {};

#define KEYCTL_MOVE_EXCL

/*
 * Capabilities flags.  The capabilities list is an array of 8-bit integers;
 * each integer can carry up to 8 flags.
 */
#define KEYCTL_CAPS0_CAPABILITIES
#define KEYCTL_CAPS0_PERSISTENT_KEYRINGS
#define KEYCTL_CAPS0_DIFFIE_HELLMAN
#define KEYCTL_CAPS0_PUBLIC_KEY
#define KEYCTL_CAPS0_BIG_KEY
#define KEYCTL_CAPS0_INVALIDATE
#define KEYCTL_CAPS0_RESTRICT_KEYRING
#define KEYCTL_CAPS0_MOVE
#define KEYCTL_CAPS1_NS_KEYRING_NAME
#define KEYCTL_CAPS1_NS_KEY_TAG
#define KEYCTL_CAPS1_NOTIFICATIONS

#endif /*  _LINUX_KEYCTL_H */