1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _LINUX_KEYCTL_H 20 #define _LINUX_KEYCTL_H 21 #include <linux/types.h> 22 #define KEY_SPEC_THREAD_KEYRING - 1 23 #define KEY_SPEC_PROCESS_KEYRING - 2 24 #define KEY_SPEC_SESSION_KEYRING - 3 25 #define KEY_SPEC_USER_KEYRING - 4 26 #define KEY_SPEC_USER_SESSION_KEYRING - 5 27 #define KEY_SPEC_GROUP_KEYRING - 6 28 #define KEY_SPEC_REQKEY_AUTH_KEY - 7 29 #define KEY_SPEC_REQUESTOR_KEYRING - 8 30 #define KEY_REQKEY_DEFL_NO_CHANGE - 1 31 #define KEY_REQKEY_DEFL_DEFAULT 0 32 #define KEY_REQKEY_DEFL_THREAD_KEYRING 1 33 #define KEY_REQKEY_DEFL_PROCESS_KEYRING 2 34 #define KEY_REQKEY_DEFL_SESSION_KEYRING 3 35 #define KEY_REQKEY_DEFL_USER_KEYRING 4 36 #define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5 37 #define KEY_REQKEY_DEFL_GROUP_KEYRING 6 38 #define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7 39 #define KEYCTL_GET_KEYRING_ID 0 40 #define KEYCTL_JOIN_SESSION_KEYRING 1 41 #define KEYCTL_UPDATE 2 42 #define KEYCTL_REVOKE 3 43 #define KEYCTL_CHOWN 4 44 #define KEYCTL_SETPERM 5 45 #define KEYCTL_DESCRIBE 6 46 #define KEYCTL_CLEAR 7 47 #define KEYCTL_LINK 8 48 #define KEYCTL_UNLINK 9 49 #define KEYCTL_SEARCH 10 50 #define KEYCTL_READ 11 51 #define KEYCTL_INSTANTIATE 12 52 #define KEYCTL_NEGATE 13 53 #define KEYCTL_SET_REQKEY_KEYRING 14 54 #define KEYCTL_SET_TIMEOUT 15 55 #define KEYCTL_ASSUME_AUTHORITY 16 56 #define KEYCTL_GET_SECURITY 17 57 #define KEYCTL_SESSION_TO_PARENT 18 58 #define KEYCTL_REJECT 19 59 #define KEYCTL_INSTANTIATE_IOV 20 60 #define KEYCTL_INVALIDATE 21 61 #define KEYCTL_GET_PERSISTENT 22 62 #define KEYCTL_DH_COMPUTE 23 63 #define KEYCTL_PKEY_QUERY 24 64 #define KEYCTL_PKEY_ENCRYPT 25 65 #define KEYCTL_PKEY_DECRYPT 26 66 #define KEYCTL_PKEY_SIGN 27 67 #define KEYCTL_PKEY_VERIFY 28 68 #define KEYCTL_RESTRICT_KEYRING 29 69 struct keyctl_dh_params { 70 union { 71 #ifndef __cplusplus 72 __s32 __linux_private; 73 #endif 74 __s32 priv; 75 }; 76 __s32 prime; 77 __s32 base; 78 }; 79 struct keyctl_kdf_params { 80 char __user * hashname; 81 char __user * otherinfo; 82 __u32 otherinfolen; 83 __u32 __spare[8]; 84 }; 85 #define KEYCTL_SUPPORTS_ENCRYPT 0x01 86 #define KEYCTL_SUPPORTS_DECRYPT 0x02 87 #define KEYCTL_SUPPORTS_SIGN 0x04 88 #define KEYCTL_SUPPORTS_VERIFY 0x08 89 struct keyctl_pkey_query { 90 __u32 supported_ops; 91 __u32 key_size; 92 __u16 max_data_size; 93 __u16 max_sig_size; 94 __u16 max_enc_size; 95 __u16 max_dec_size; 96 __u32 __spare[10]; 97 }; 98 struct keyctl_pkey_params { 99 __s32 key_id; 100 __u32 in_len; 101 union { 102 __u32 out_len; 103 __u32 in2_len; 104 }; 105 __u32 __spare[7]; 106 }; 107 #endif 108