diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-01-28 18:43:52 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-01-28 18:43:52 +0100 |
| commit | caef676b0afb2348f19cfddd9b31ee356cf9e2f6 (patch) | |
| tree | ecab06a020fab6fb5cd23bb965f673b3df38742d /sys | |
| parent | 6f722a03489c545bc872d18ff5783839732e4ccd (diff) | |
sys: improve key descriptions
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/key.txt | 25 | ||||
| -rw-r--r-- | sys/key_amd64.const | 25 | ||||
| -rw-r--r-- | sys/key_arm64.const | 25 | ||||
| -rw-r--r-- | sys/key_ppc64le.const | 25 |
4 files changed, 94 insertions, 6 deletions
diff --git a/sys/key.txt b/sys/key.txt index c0b18f5e8..85476e322 100644 --- a/sys/key.txt +++ b/sys/key.txt @@ -1,26 +1,27 @@ # Copyright 2015 syzkaller project authors. All rights reserved. # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. +include <linux/key.h> include <linux/keyctl.h> include <uapi/linux/keyctl.h> -resource key[int32]: KEY_SPEC_THREAD_KEYRING, KEY_SPEC_PROCESS_KEYRING, KEY_SPEC_SESSION_KEYRING, KEY_SPEC_USER_KEYRING, KEY_SPEC_USER_SESSION_KEYRING, KEY_SPEC_GROUP_KEYRING, KEY_SPEC_REQKEY_AUTH_KEY, KEY_SPEC_REQUESTOR_KEYRING +resource key[int32]: 0, KEY_SPEC_THREAD_KEYRING, KEY_SPEC_PROCESS_KEYRING, KEY_SPEC_SESSION_KEYRING, KEY_SPEC_USER_KEYRING, KEY_SPEC_USER_SESSION_KEYRING, KEY_SPEC_GROUP_KEYRING, KEY_SPEC_REQKEY_AUTH_KEY, KEY_SPEC_REQUESTOR_KEYRING -add_key(type ptr[in, string], desc ptr[in, string], payload buffer[in, opt], paylen len[payload], keyring flags[keyring_type]) key -request_key(type ptr[in, string], desc ptr[in, string], callout ptr[in, string], keyring flags[keyring_type]) key +add_key(type ptr[in, string[key_type]], desc ptr[in, key_desc], payload buffer[in, opt], paylen len[payload], keyring flags[keyring_type]) key +request_key(type ptr[in, string[key_type]], desc ptr[in, key_desc], callout ptr[in, string], keyring flags[keyring_type]) key keyctl$get_keyring_id(code const[KEYCTL_GET_KEYRING_ID], key key, create intptr) -keyctl$join(code const[KEYCTL_JOIN_SESSION_KEYRING], session ptr[in, string]) +keyctl$join(code const[KEYCTL_JOIN_SESSION_KEYRING], session ptr[in, key_desc, opt]) keyctl$update(code const[KEYCTL_UPDATE], key key, payload buffer[in, opt], paylen len[payload]) keyctl$revoke(code const[KEYCTL_REVOKE], key key) keyctl$describe(code const[KEYCTL_DESCRIBE], key key, desc buffer[out], len len[desc]) keyctl$clear(code const[KEYCTL_CLEAR], key key) keyctl$link(code const[KEYCTL_LINK], key1 key, key2 key) keyctl$unlink(code const[KEYCTL_UNLINK], key1 key, key2 key) -keyctl$search(code const[KEYCTL_SEARCH], key key, type ptr[in, string], desc ptr[in, string], ring key) +keyctl$search(code const[KEYCTL_SEARCH], key key, type ptr[in, string[key_type]], desc ptr[in, key_desc], ring key) keyctl$read(code const[KEYCTL_READ], key key, payload buffer[out], len len[payload]) keyctl$chown(code const[KEYCTL_CHOWN], key key, uid uid, gid gid) # perm is a mask of KEY_POS_VIEW, etc consants, but they cover almost whole int32. -keyctl$setperm(code const[KEYCTL_SETPERM], key key, perm int32) +keyctl$setperm(code const[KEYCTL_SETPERM], key key, perm flags[key_perm]) keyctl$instantiate(code const[KEYCTL_INSTANTIATE], key key, payload buffer[in, opt], paylen len[payload], ring key) keyctl$negate(code const[KEYCTL_NEGATE], key key, timeout intptr, ring key) keyctl$set_reqkey_keyring(code const[KEYCTL_SET_REQKEY_KEYRING], reqkey flags[reqkey_keyring]) @@ -35,3 +36,15 @@ keyctl$get_persistent(code const[KEYCTL_GET_PERSISTENT], uid uid, key key) keyring_type = KEY_SPEC_THREAD_KEYRING, KEY_SPEC_PROCESS_KEYRING, KEY_SPEC_SESSION_KEYRING, KEY_SPEC_USER_KEYRING, KEY_SPEC_USER_SESSION_KEYRING, KEY_SPEC_GROUP_KEYRING, KEY_SPEC_REQKEY_AUTH_KEY, KEY_SPEC_REQUESTOR_KEYRING reqkey_keyring = KEY_REQKEY_DEFL_NO_CHANGE, KEY_REQKEY_DEFL_DEFAULT, KEY_REQKEY_DEFL_THREAD_KEYRING, KEY_REQKEY_DEFL_PROCESS_KEYRING, KEY_REQKEY_DEFL_SESSION_KEYRING, KEY_REQKEY_DEFL_USER_KEYRING, KEY_REQKEY_DEFL_USER_SESSION_KEYRING, KEY_REQKEY_DEFL_GROUP_KEYRING, KEY_REQKEY_DEFL_REQUESTOR_KEYRING +key_perm = KEY_POS_VIEW, KEY_POS_READ, KEY_POS_WRITE, KEY_POS_SEARCH, KEY_POS_LINK, KEY_POS_SETATTR, KEY_USR_VIEW, KEY_USR_READ, KEY_USR_WRITE, KEY_USR_SEARCH, KEY_USR_LINK, KEY_USR_SETATTR, KEY_GRP_VIEW, KEY_GRP_READ, KEY_GRP_WRITE, KEY_GRP_SEARCH, KEY_GRP_LINK, KEY_GRP_SETATTR, KEY_OTH_VIEW, KEY_OTH_READ, KEY_OTH_WRITE, KEY_OTH_SEARCH, KEY_OTH_LINK, KEY_OTH_SETATTR, KEY_PERM_UNDEF + +key_type = "user", "keyring", "logon", "trusted", "big_key", "dead", ".request_key_auth", "syzkaller" + +# "syzP\x00" +key_desc { + name0 const[115, int8] + name1 const[121, int8] + name2 const[122, int8] + name3 proc[int8, 32, 4] + name4 const[0, int8] +} diff --git a/sys/key_amd64.const b/sys/key_amd64.const index c12d05a2c..ca9e0c343 100644 --- a/sys/key_amd64.const +++ b/sys/key_amd64.const @@ -22,6 +22,25 @@ KEYCTL_SET_REQKEY_KEYRING = 14 KEYCTL_SET_TIMEOUT = 15 KEYCTL_UNLINK = 9 KEYCTL_UPDATE = 2 +KEY_GRP_LINK = 4096 +KEY_GRP_READ = 512 +KEY_GRP_SEARCH = 2048 +KEY_GRP_SETATTR = 8192 +KEY_GRP_VIEW = 256 +KEY_GRP_WRITE = 1024 +KEY_OTH_LINK = 16 +KEY_OTH_READ = 2 +KEY_OTH_SEARCH = 8 +KEY_OTH_SETATTR = 32 +KEY_OTH_VIEW = 1 +KEY_OTH_WRITE = 4 +KEY_PERM_UNDEF = 4294967295 +KEY_POS_LINK = 268435456 +KEY_POS_READ = 33554432 +KEY_POS_SEARCH = 134217728 +KEY_POS_SETATTR = 536870912 +KEY_POS_VIEW = 16777216 +KEY_POS_WRITE = 67108864 KEY_REQKEY_DEFL_DEFAULT = 0 KEY_REQKEY_DEFL_GROUP_KEYRING = 6 KEY_REQKEY_DEFL_NO_CHANGE = 18446744073709551615 @@ -39,6 +58,12 @@ KEY_SPEC_SESSION_KEYRING = 18446744073709551613 KEY_SPEC_THREAD_KEYRING = 18446744073709551615 KEY_SPEC_USER_KEYRING = 18446744073709551612 KEY_SPEC_USER_SESSION_KEYRING = 18446744073709551611 +KEY_USR_LINK = 1048576 +KEY_USR_READ = 131072 +KEY_USR_SEARCH = 524288 +KEY_USR_SETATTR = 2097152 +KEY_USR_VIEW = 65536 +KEY_USR_WRITE = 262144 __NR_add_key = 248 __NR_keyctl = 250 __NR_request_key = 249 diff --git a/sys/key_arm64.const b/sys/key_arm64.const index 941595809..45c4026f1 100644 --- a/sys/key_arm64.const +++ b/sys/key_arm64.const @@ -22,6 +22,25 @@ KEYCTL_SET_REQKEY_KEYRING = 14 KEYCTL_SET_TIMEOUT = 15 KEYCTL_UNLINK = 9 KEYCTL_UPDATE = 2 +KEY_GRP_LINK = 4096 +KEY_GRP_READ = 512 +KEY_GRP_SEARCH = 2048 +KEY_GRP_SETATTR = 8192 +KEY_GRP_VIEW = 256 +KEY_GRP_WRITE = 1024 +KEY_OTH_LINK = 16 +KEY_OTH_READ = 2 +KEY_OTH_SEARCH = 8 +KEY_OTH_SETATTR = 32 +KEY_OTH_VIEW = 1 +KEY_OTH_WRITE = 4 +KEY_PERM_UNDEF = 4294967295 +KEY_POS_LINK = 268435456 +KEY_POS_READ = 33554432 +KEY_POS_SEARCH = 134217728 +KEY_POS_SETATTR = 536870912 +KEY_POS_VIEW = 16777216 +KEY_POS_WRITE = 67108864 KEY_REQKEY_DEFL_DEFAULT = 0 KEY_REQKEY_DEFL_GROUP_KEYRING = 6 KEY_REQKEY_DEFL_NO_CHANGE = 18446744073709551615 @@ -39,6 +58,12 @@ KEY_SPEC_SESSION_KEYRING = 18446744073709551613 KEY_SPEC_THREAD_KEYRING = 18446744073709551615 KEY_SPEC_USER_KEYRING = 18446744073709551612 KEY_SPEC_USER_SESSION_KEYRING = 18446744073709551611 +KEY_USR_LINK = 1048576 +KEY_USR_READ = 131072 +KEY_USR_SEARCH = 524288 +KEY_USR_SETATTR = 2097152 +KEY_USR_VIEW = 65536 +KEY_USR_WRITE = 262144 __NR_add_key = 217 __NR_keyctl = 219 __NR_request_key = 218 diff --git a/sys/key_ppc64le.const b/sys/key_ppc64le.const index d03d03eb4..dff76de01 100644 --- a/sys/key_ppc64le.const +++ b/sys/key_ppc64le.const @@ -22,6 +22,25 @@ KEYCTL_SET_REQKEY_KEYRING = 14 KEYCTL_SET_TIMEOUT = 15 KEYCTL_UNLINK = 9 KEYCTL_UPDATE = 2 +KEY_GRP_LINK = 4096 +KEY_GRP_READ = 512 +KEY_GRP_SEARCH = 2048 +KEY_GRP_SETATTR = 8192 +KEY_GRP_VIEW = 256 +KEY_GRP_WRITE = 1024 +KEY_OTH_LINK = 16 +KEY_OTH_READ = 2 +KEY_OTH_SEARCH = 8 +KEY_OTH_SETATTR = 32 +KEY_OTH_VIEW = 1 +KEY_OTH_WRITE = 4 +KEY_PERM_UNDEF = 4294967295 +KEY_POS_LINK = 268435456 +KEY_POS_READ = 33554432 +KEY_POS_SEARCH = 134217728 +KEY_POS_SETATTR = 536870912 +KEY_POS_VIEW = 16777216 +KEY_POS_WRITE = 67108864 KEY_REQKEY_DEFL_DEFAULT = 0 KEY_REQKEY_DEFL_GROUP_KEYRING = 6 KEY_REQKEY_DEFL_NO_CHANGE = 18446744073709551615 @@ -39,6 +58,12 @@ KEY_SPEC_SESSION_KEYRING = 18446744073709551613 KEY_SPEC_THREAD_KEYRING = 18446744073709551615 KEY_SPEC_USER_KEYRING = 18446744073709551612 KEY_SPEC_USER_SESSION_KEYRING = 18446744073709551611 +KEY_USR_LINK = 1048576 +KEY_USR_READ = 131072 +KEY_USR_SEARCH = 524288 +KEY_USR_SETATTR = 2097152 +KEY_USR_VIEW = 65536 +KEY_USR_WRITE = 262144 __NR_add_key = 269 __NR_keyctl = 271 __NR_request_key = 270 |
