mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 18:36:37 +00:00 
			
		
		
		
	 9d57a7f9e2
			
		
	
	
		9d57a7f9e2
		
	
	
	
	
		
			
			Setup the new Audit LSM hooks for SELinux. Remove the now redundant exported SELinux Audit interface. Audit: Export 'audit_krule' and 'audit_field' to the public since their internals are needed by the implementation of the new LSM hook 'audit_rule_known'. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com> Acked-by: James Morris <jmorris@namei.org>
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SELinux services exported to the rest of the kernel.
 | |
|  *
 | |
|  * Author: James Morris <jmorris@redhat.com>
 | |
|  *
 | |
|  * Copyright (C) 2005 Red Hat, Inc., James Morris <jmorris@redhat.com>
 | |
|  * Copyright (C) 2006 Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com>
 | |
|  * Copyright (C) 2006 IBM Corporation, Timothy R. Chavez <tinytim@us.ibm.com>
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2,
 | |
|  * as published by the Free Software Foundation.
 | |
|  */
 | |
| #ifndef _LINUX_SELINUX_H
 | |
| #define _LINUX_SELINUX_H
 | |
| 
 | |
| struct selinux_audit_rule;
 | |
| struct audit_context;
 | |
| struct kern_ipc_perm;
 | |
| 
 | |
| #ifdef CONFIG_SECURITY_SELINUX
 | |
| 
 | |
| /**
 | |
|  *     selinux_string_to_sid - map a security context string to a security ID
 | |
|  *     @str: the security context string to be mapped
 | |
|  *     @sid: ID value returned via this.
 | |
|  *
 | |
|  *     Returns 0 if successful, with the SID stored in sid.  A value
 | |
|  *     of zero for sid indicates no SID could be determined (but no error
 | |
|  *     occurred).
 | |
|  */
 | |
| int selinux_string_to_sid(char *str, u32 *sid);
 | |
| 
 | |
| /**
 | |
|  *     selinux_secmark_relabel_packet_permission - secmark permission check
 | |
|  *     @sid: SECMARK ID value to be applied to network packet
 | |
|  *
 | |
|  *     Returns 0 if the current task is allowed to set the SECMARK label of
 | |
|  *     packets with the supplied security ID.  Note that it is implicit that
 | |
|  *     the packet is always being relabeled from the default unlabeled value,
 | |
|  *     and that the access control decision is made in the AVC.
 | |
|  */
 | |
| int selinux_secmark_relabel_packet_permission(u32 sid);
 | |
| 
 | |
| /**
 | |
|  *     selinux_secmark_refcount_inc - increments the secmark use counter
 | |
|  *
 | |
|  *     SELinux keeps track of the current SECMARK targets in use so it knows
 | |
|  *     when to apply SECMARK label access checks to network packets.  This
 | |
|  *     function incements this reference count to indicate that a new SECMARK
 | |
|  *     target has been configured.
 | |
|  */
 | |
| void selinux_secmark_refcount_inc(void);
 | |
| 
 | |
| /**
 | |
|  *     selinux_secmark_refcount_dec - decrements the secmark use counter
 | |
|  *
 | |
|  *     SELinux keeps track of the current SECMARK targets in use so it knows
 | |
|  *     when to apply SECMARK label access checks to network packets.  This
 | |
|  *     function decements this reference count to indicate that one of the
 | |
|  *     existing SECMARK targets has been removed/flushed.
 | |
|  */
 | |
| void selinux_secmark_refcount_dec(void);
 | |
| #else
 | |
| 
 | |
| static inline int selinux_string_to_sid(const char *str, u32 *sid)
 | |
| {
 | |
|        *sid = 0;
 | |
|        return 0;
 | |
| }
 | |
| 
 | |
| static inline int selinux_secmark_relabel_packet_permission(u32 sid)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void selinux_secmark_refcount_inc(void)
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| static inline void selinux_secmark_refcount_dec(void)
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| #endif	/* CONFIG_SECURITY_SELINUX */
 | |
| 
 | |
| #endif /* _LINUX_SELINUX_H */
 |