[PATCH] selinux: add hooks for key subsystem
Introduce SELinux hooks to support the access key retention subsystem within the kernel. Incorporate new flask headers from a modified version of the SELinux reference policy, with support for the new security class representing retained keys. Extend the "key_alloc" security hook with a task parameter representing the intended ownership context for the key being allocated. Attach security information to root's default keyrings within the SELinux initialization routine. Has passed David's testsuite. Signed-off-by: Michael LeMay <mdlemay@epoch.ncsc.mil> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: James Morris <jmorris@namei.org> Acked-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
f893afbe12
commit
d720024e94
@ -1313,7 +1313,7 @@ struct security_operations {
|
||||
|
||||
/* key management security hooks */
|
||||
#ifdef CONFIG_KEYS
|
||||
int (*key_alloc)(struct key *key);
|
||||
int (*key_alloc)(struct key *key, struct task_struct *tsk);
|
||||
void (*key_free)(struct key *key);
|
||||
int (*key_permission)(key_ref_t key_ref,
|
||||
struct task_struct *context,
|
||||
@ -3008,9 +3008,10 @@ static inline int security_xfrm_policy_lookup(struct xfrm_policy *xp, u32 sk_sid
|
||||
|
||||
#ifdef CONFIG_KEYS
|
||||
#ifdef CONFIG_SECURITY
|
||||
static inline int security_key_alloc(struct key *key)
|
||||
static inline int security_key_alloc(struct key *key,
|
||||
struct task_struct *tsk)
|
||||
{
|
||||
return security_ops->key_alloc(key);
|
||||
return security_ops->key_alloc(key, tsk);
|
||||
}
|
||||
|
||||
static inline void security_key_free(struct key *key)
|
||||
@ -3027,7 +3028,8 @@ static inline int security_key_permission(key_ref_t key_ref,
|
||||
|
||||
#else
|
||||
|
||||
static inline int security_key_alloc(struct key *key)
|
||||
static inline int security_key_alloc(struct key *key,
|
||||
struct task_struct *tsk)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user