1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _LINUX_KEYCTL_H
8 #define _LINUX_KEYCTL_H
9 #include <linux/types.h>
10 #define KEY_SPEC_THREAD_KEYRING - 1
11 #define KEY_SPEC_PROCESS_KEYRING - 2
12 #define KEY_SPEC_SESSION_KEYRING - 3
13 #define KEY_SPEC_USER_KEYRING - 4
14 #define KEY_SPEC_USER_SESSION_KEYRING - 5
15 #define KEY_SPEC_GROUP_KEYRING - 6
16 #define KEY_SPEC_REQKEY_AUTH_KEY - 7
17 #define KEY_SPEC_REQUESTOR_KEYRING - 8
18 #define KEY_REQKEY_DEFL_NO_CHANGE - 1
19 #define KEY_REQKEY_DEFL_DEFAULT 0
20 #define KEY_REQKEY_DEFL_THREAD_KEYRING 1
21 #define KEY_REQKEY_DEFL_PROCESS_KEYRING 2
22 #define KEY_REQKEY_DEFL_SESSION_KEYRING 3
23 #define KEY_REQKEY_DEFL_USER_KEYRING 4
24 #define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5
25 #define KEY_REQKEY_DEFL_GROUP_KEYRING 6
26 #define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7
27 #define KEYCTL_GET_KEYRING_ID 0
28 #define KEYCTL_JOIN_SESSION_KEYRING 1
29 #define KEYCTL_UPDATE 2
30 #define KEYCTL_REVOKE 3
31 #define KEYCTL_CHOWN 4
32 #define KEYCTL_SETPERM 5
33 #define KEYCTL_DESCRIBE 6
34 #define KEYCTL_CLEAR 7
35 #define KEYCTL_LINK 8
36 #define KEYCTL_UNLINK 9
37 #define KEYCTL_SEARCH 10
38 #define KEYCTL_READ 11
39 #define KEYCTL_INSTANTIATE 12
40 #define KEYCTL_NEGATE 13
41 #define KEYCTL_SET_REQKEY_KEYRING 14
42 #define KEYCTL_SET_TIMEOUT 15
43 #define KEYCTL_ASSUME_AUTHORITY 16
44 #define KEYCTL_GET_SECURITY 17
45 #define KEYCTL_SESSION_TO_PARENT 18
46 #define KEYCTL_REJECT 19
47 #define KEYCTL_INSTANTIATE_IOV 20
48 #define KEYCTL_INVALIDATE 21
49 #define KEYCTL_GET_PERSISTENT 22
50 #define KEYCTL_DH_COMPUTE 23
51 #define KEYCTL_PKEY_QUERY 24
52 #define KEYCTL_PKEY_ENCRYPT 25
53 #define KEYCTL_PKEY_DECRYPT 26
54 #define KEYCTL_PKEY_SIGN 27
55 #define KEYCTL_PKEY_VERIFY 28
56 #define KEYCTL_RESTRICT_KEYRING 29
57 #define KEYCTL_MOVE 30
58 #define KEYCTL_CAPABILITIES 31
59 #define KEYCTL_WATCH_KEY 32
60 struct keyctl_dh_params {
61   union {
62 #ifndef __cplusplus
63     __s32 __linux_private;
64 #endif
65     __s32 priv;
66   };
67   __s32 prime;
68   __s32 base;
69 };
70 struct keyctl_kdf_params {
71   char  * hashname;
72   char  * otherinfo;
73   __u32 otherinfolen;
74   __u32 __spare[8];
75 };
76 #define KEYCTL_SUPPORTS_ENCRYPT 0x01
77 #define KEYCTL_SUPPORTS_DECRYPT 0x02
78 #define KEYCTL_SUPPORTS_SIGN 0x04
79 #define KEYCTL_SUPPORTS_VERIFY 0x08
80 struct keyctl_pkey_query {
81   __u32 supported_ops;
82   __u32 key_size;
83   __u16 max_data_size;
84   __u16 max_sig_size;
85   __u16 max_enc_size;
86   __u16 max_dec_size;
87   __u32 __spare[10];
88 };
89 struct keyctl_pkey_params {
90   __s32 key_id;
91   __u32 in_len;
92   union {
93     __u32 out_len;
94     __u32 in2_len;
95   };
96   __u32 __spare[7];
97 };
98 #define KEYCTL_MOVE_EXCL 0x00000001
99 #define KEYCTL_CAPS0_CAPABILITIES 0x01
100 #define KEYCTL_CAPS0_PERSISTENT_KEYRINGS 0x02
101 #define KEYCTL_CAPS0_DIFFIE_HELLMAN 0x04
102 #define KEYCTL_CAPS0_PUBLIC_KEY 0x08
103 #define KEYCTL_CAPS0_BIG_KEY 0x10
104 #define KEYCTL_CAPS0_INVALIDATE 0x20
105 #define KEYCTL_CAPS0_RESTRICT_KEYRING 0x40
106 #define KEYCTL_CAPS0_MOVE 0x80
107 #define KEYCTL_CAPS1_NS_KEYRING_NAME 0x01
108 #define KEYCTL_CAPS1_NS_KEY_TAG 0x02
109 #define KEYCTL_CAPS1_NOTIFICATIONS 0x04
110 #endif
111