mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
[PATCH] keys: add a way to store the appropriate context for newly-created keys
Add a /proc/<pid>/attr/keycreate entry that stores the appropriate context for newly-created keys. Modify the selinux_key_alloc hook to make use of the new entry. Update the flask headers to include a new "setkeycreate" permission for processes. Update the flask headers to include a new "create" permission for keys. Use the create permission to restrict which SIDs each task can assign to newly-created keys. Add a new parameter to the security hook "security_key_alloc" to indicate whether it is being invoked by the kernel, or from userspace. If it is being invoked by the kernel, the security hook should never fail. Update the documentation to reflect these changes. Signed-off-by: Michael LeMay <[email protected]> Signed-off-by: James Morris <[email protected]> Signed-off-by: David Howells <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
06ec7be557
commit
4eb582cf1f
6 changed files with 56 additions and 18 deletions
|
|
@ -121,6 +121,7 @@ enum pid_directory_inos {
|
|||
PROC_TGID_ATTR_PREV,
|
||||
PROC_TGID_ATTR_EXEC,
|
||||
PROC_TGID_ATTR_FSCREATE,
|
||||
PROC_TGID_ATTR_KEYCREATE,
|
||||
#endif
|
||||
#ifdef CONFIG_AUDITSYSCALL
|
||||
PROC_TGID_LOGINUID,
|
||||
|
|
@ -162,6 +163,7 @@ enum pid_directory_inos {
|
|||
PROC_TID_ATTR_PREV,
|
||||
PROC_TID_ATTR_EXEC,
|
||||
PROC_TID_ATTR_FSCREATE,
|
||||
PROC_TID_ATTR_KEYCREATE,
|
||||
#endif
|
||||
#ifdef CONFIG_AUDITSYSCALL
|
||||
PROC_TID_LOGINUID,
|
||||
|
|
@ -275,6 +277,7 @@ static struct pid_entry tgid_attr_stuff[] = {
|
|||
E(PROC_TGID_ATTR_PREV, "prev", S_IFREG|S_IRUGO),
|
||||
E(PROC_TGID_ATTR_EXEC, "exec", S_IFREG|S_IRUGO|S_IWUGO),
|
||||
E(PROC_TGID_ATTR_FSCREATE, "fscreate", S_IFREG|S_IRUGO|S_IWUGO),
|
||||
E(PROC_TGID_ATTR_KEYCREATE, "keycreate", S_IFREG|S_IRUGO|S_IWUGO),
|
||||
{0,0,NULL,0}
|
||||
};
|
||||
static struct pid_entry tid_attr_stuff[] = {
|
||||
|
|
@ -282,6 +285,7 @@ static struct pid_entry tid_attr_stuff[] = {
|
|||
E(PROC_TID_ATTR_PREV, "prev", S_IFREG|S_IRUGO),
|
||||
E(PROC_TID_ATTR_EXEC, "exec", S_IFREG|S_IRUGO|S_IWUGO),
|
||||
E(PROC_TID_ATTR_FSCREATE, "fscreate", S_IFREG|S_IRUGO|S_IWUGO),
|
||||
E(PROC_TID_ATTR_KEYCREATE, "keycreate", S_IFREG|S_IRUGO|S_IWUGO),
|
||||
{0,0,NULL,0}
|
||||
};
|
||||
#endif
|
||||
|
|
@ -1801,6 +1805,8 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
|
|||
case PROC_TGID_ATTR_EXEC:
|
||||
case PROC_TID_ATTR_FSCREATE:
|
||||
case PROC_TGID_ATTR_FSCREATE:
|
||||
case PROC_TID_ATTR_KEYCREATE:
|
||||
case PROC_TGID_ATTR_KEYCREATE:
|
||||
inode->i_fop = &proc_pid_attr_operations;
|
||||
break;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue