diff options
Diffstat (limited to 'security')
| -rw-r--r-- | security/Kconfig | 13 | ||||
| -rw-r--r-- | security/dummy.c | 45 |
2 files changed, 57 insertions, 1 deletions
diff --git a/security/Kconfig b/security/Kconfig index 64d3f1e9ca85..34f593410d57 100644 --- a/security/Kconfig +++ b/security/Kconfig | |||
| @@ -54,6 +54,19 @@ config SECURITY_NETWORK | |||
| 54 | implement socket and networking access controls. | 54 | implement socket and networking access controls. |
| 55 | If you are unsure how to answer this question, answer N. | 55 | If you are unsure how to answer this question, answer N. |
| 56 | 56 | ||
| 57 | config SECURITY_NETWORK_XFRM | ||
| 58 | bool "XFRM (IPSec) Networking Security Hooks" | ||
| 59 | depends on XFRM && SECURITY_NETWORK | ||
| 60 | help | ||
| 61 | This enables the XFRM (IPSec) networking security hooks. | ||
| 62 | If enabled, a security module can use these hooks to | ||
| 63 | implement per-packet access controls based on labels | ||
| 64 | derived from IPSec policy. Non-IPSec communications are | ||
| 65 | designated as unlabelled, and only sockets authorized | ||
| 66 | to communicate unlabelled data can send without using | ||
| 67 | IPSec. | ||
| 68 | If you are unsure how to answer this question, answer N. | ||
| 69 | |||
| 57 | config SECURITY_CAPABILITIES | 70 | config SECURITY_CAPABILITIES |
| 58 | tristate "Default Linux Capabilities" | 71 | tristate "Default Linux Capabilities" |
| 59 | depends on SECURITY | 72 | depends on SECURITY |
diff --git a/security/dummy.c b/security/dummy.c index 3ca5f2b828a0..a15c54709fde 100644 --- a/security/dummy.c +++ b/security/dummy.c | |||
| @@ -776,8 +776,42 @@ static inline int dummy_sk_alloc_security (struct sock *sk, int family, gfp_t pr | |||
| 776 | static inline void dummy_sk_free_security (struct sock *sk) | 776 | static inline void dummy_sk_free_security (struct sock *sk) |
| 777 | { | 777 | { |
| 778 | } | 778 | } |
| 779 | |||
| 780 | static unsigned int dummy_sk_getsid(struct sock *sk, struct flowi *fl, u8 dir) | ||
| 781 | { | ||
| 782 | return 0; | ||
| 783 | } | ||
| 779 | #endif /* CONFIG_SECURITY_NETWORK */ | 784 | #endif /* CONFIG_SECURITY_NETWORK */ |
| 780 | 785 | ||
| 786 | #ifdef CONFIG_SECURITY_NETWORK_XFRM | ||
| 787 | static int dummy_xfrm_policy_alloc_security(struct xfrm_policy *xp, struct xfrm_user_sec_ctx *sec_ctx) | ||
| 788 | { | ||
| 789 | return 0; | ||
| 790 | } | ||
| 791 | |||
| 792 | static inline int dummy_xfrm_policy_clone_security(struct xfrm_policy *old, struct xfrm_policy *new) | ||
| 793 | { | ||
| 794 | return 0; | ||
| 795 | } | ||
| 796 | |||
| 797 | static void dummy_xfrm_policy_free_security(struct xfrm_policy *xp) | ||
| 798 | { | ||
| 799 | } | ||
| 800 | |||
| 801 | static int dummy_xfrm_state_alloc_security(struct xfrm_state *x, struct xfrm_user_sec_ctx *sec_ctx) | ||
| 802 | { | ||
| 803 | return 0; | ||
| 804 | } | ||
| 805 | |||
| 806 | static void dummy_xfrm_state_free_security(struct xfrm_state *x) | ||
| 807 | { | ||
| 808 | } | ||
| 809 | |||
| 810 | static int dummy_xfrm_policy_lookup(struct xfrm_policy *xp, u32 sk_sid, u8 dir) | ||
| 811 | { | ||
| 812 | return 0; | ||
| 813 | } | ||
| 814 | #endif /* CONFIG_SECURITY_NETWORK_XFRM */ | ||
| 781 | static int dummy_register_security (const char *name, struct security_operations *ops) | 815 | static int dummy_register_security (const char *name, struct security_operations *ops) |
| 782 | { | 816 | { |
| 783 | return -EINVAL; | 817 | return -EINVAL; |
| @@ -970,7 +1004,16 @@ void security_fixup_ops (struct security_operations *ops) | |||
| 970 | set_to_dummy_if_null(ops, socket_getpeersec); | 1004 | set_to_dummy_if_null(ops, socket_getpeersec); |
| 971 | set_to_dummy_if_null(ops, sk_alloc_security); | 1005 | set_to_dummy_if_null(ops, sk_alloc_security); |
| 972 | set_to_dummy_if_null(ops, sk_free_security); | 1006 | set_to_dummy_if_null(ops, sk_free_security); |
| 973 | #endif /* CONFIG_SECURITY_NETWORK */ | 1007 | set_to_dummy_if_null(ops, sk_getsid); |
| 1008 | #endif /* CONFIG_SECURITY_NETWORK */ | ||
| 1009 | #ifdef CONFIG_SECURITY_NETWORK_XFRM | ||
| 1010 | set_to_dummy_if_null(ops, xfrm_policy_alloc_security); | ||
| 1011 | set_to_dummy_if_null(ops, xfrm_policy_clone_security); | ||
| 1012 | set_to_dummy_if_null(ops, xfrm_policy_free_security); | ||
| 1013 | set_to_dummy_if_null(ops, xfrm_state_alloc_security); | ||
| 1014 | set_to_dummy_if_null(ops, xfrm_state_free_security); | ||
| 1015 | set_to_dummy_if_null(ops, xfrm_policy_lookup); | ||
| 1016 | #endif /* CONFIG_SECURITY_NETWORK_XFRM */ | ||
| 974 | #ifdef CONFIG_KEYS | 1017 | #ifdef CONFIG_KEYS |
| 975 | set_to_dummy_if_null(ops, key_alloc); | 1018 | set_to_dummy_if_null(ops, key_alloc); |
| 976 | set_to_dummy_if_null(ops, key_free); | 1019 | set_to_dummy_if_null(ops, key_free); |
