Skip to content

Commit 248c826

Browse files
authored
Merge pull request #1678 from jbaublitz/keyctl-consts
Add constants from linux/keyctl.h
2 parents d0b44a9 + 47c0d4a commit 248c826

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

libc-test/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2237,6 +2237,7 @@ fn test_linux(target: &str) {
22372237
"linux/if_ether.h",
22382238
"linux/if_tun.h",
22392239
"linux/input.h",
2240+
"linux/keyctl.h",
22402241
"linux/magic.h",
22412242
"linux/memfd.h",
22422243
"linux/module.h",

src/unix/linux_like/linux/gnu/mod.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,37 @@ pub const NF_NETDEV_NUMHOOKS: ::c_int = 1;
726726
pub const NFPROTO_INET: ::c_int = 1;
727727
pub const NFPROTO_NETDEV: ::c_int = 5;
728728

729+
// linux/keyctl.h
730+
pub const KEYCTL_DH_COMPUTE: u32 = 23;
731+
pub const KEYCTL_PKEY_QUERY: u32 = 24;
732+
pub const KEYCTL_PKEY_ENCRYPT: u32 = 25;
733+
pub const KEYCTL_PKEY_DECRYPT: u32 = 26;
734+
pub const KEYCTL_PKEY_SIGN: u32 = 27;
735+
pub const KEYCTL_PKEY_VERIFY: u32 = 28;
736+
pub const KEYCTL_RESTRICT_KEYRING: u32 = 29;
737+
738+
pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01;
739+
pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02;
740+
pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04;
741+
pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08;
742+
cfg_if! {
743+
if #[cfg(not(any(target_arch="mips", target_arch="mips64")))] {
744+
pub const KEYCTL_MOVE: u32 = 30;
745+
pub const KEYCTL_CAPABILITIES: u32 = 31;
746+
747+
pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01;
748+
pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02;
749+
pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04;
750+
pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08;
751+
pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10;
752+
pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20;
753+
pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40;
754+
pub const KEYCTL_CAPS0_MOVE: u32 = 0x80;
755+
pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01;
756+
pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02;
757+
}
758+
}
759+
729760
// linux/netfilter/nf_tables.h
730761
pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256;
731762
pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256;

src/unix/linux_like/linux/mod.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2333,6 +2333,50 @@ pub const IN_ONLYDIR: u32 = 0x0100_0000;
23332333
pub const IN_DONT_FOLLOW: u32 = 0x0200_0000;
23342334
// pub const IN_EXCL_UNLINK: u32 = 0x0400_0000;
23352335

2336+
// linux/keyctl.h
2337+
pub const KEY_SPEC_THREAD_KEYRING: i32 = -1;
2338+
pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2;
2339+
pub const KEY_SPEC_SESSION_KEYRING: i32 = -3;
2340+
pub const KEY_SPEC_USER_KEYRING: i32 = -4;
2341+
pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5;
2342+
pub const KEY_SPEC_GROUP_KEYRING: i32 = -6;
2343+
pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7;
2344+
pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8;
2345+
2346+
pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1;
2347+
pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0;
2348+
pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1;
2349+
pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2;
2350+
pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3;
2351+
pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4;
2352+
pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5;
2353+
pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6;
2354+
pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7;
2355+
2356+
pub const KEYCTL_GET_KEYRING_ID: u32 = 0;
2357+
pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1;
2358+
pub const KEYCTL_UPDATE: u32 = 2;
2359+
pub const KEYCTL_REVOKE: u32 = 3;
2360+
pub const KEYCTL_CHOWN: u32 = 4;
2361+
pub const KEYCTL_SETPERM: u32 = 5;
2362+
pub const KEYCTL_DESCRIBE: u32 = 6;
2363+
pub const KEYCTL_CLEAR: u32 = 7;
2364+
pub const KEYCTL_LINK: u32 = 8;
2365+
pub const KEYCTL_UNLINK: u32 = 9;
2366+
pub const KEYCTL_SEARCH: u32 = 10;
2367+
pub const KEYCTL_READ: u32 = 11;
2368+
pub const KEYCTL_INSTANTIATE: u32 = 12;
2369+
pub const KEYCTL_NEGATE: u32 = 13;
2370+
pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14;
2371+
pub const KEYCTL_SET_TIMEOUT: u32 = 15;
2372+
pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16;
2373+
pub const KEYCTL_GET_SECURITY: u32 = 17;
2374+
pub const KEYCTL_SESSION_TO_PARENT: u32 = 18;
2375+
pub const KEYCTL_REJECT: u32 = 19;
2376+
pub const KEYCTL_INSTANTIATE_IOV: u32 = 20;
2377+
pub const KEYCTL_INVALIDATE: u32 = 21;
2378+
pub const KEYCTL_GET_PERSISTENT: u32 = 22;
2379+
23362380
// pub const IN_MASK_CREATE: u32 = 0x1000_0000;
23372381
// pub const IN_MASK_ADD: u32 = 0x2000_0000;
23382382
pub const IN_ISDIR: u32 = 0x4000_0000;

0 commit comments

Comments
 (0)