root/security/selinux/ss/mls.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. mls_export_netlbl_lvl
  2. mls_import_netlbl_lvl
  3. mls_export_netlbl_cat
  4. mls_import_netlbl_cat

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Multi-level security (MLS) policy operations.
   4  *
   5  * Author : Stephen Smalley, <sds@tycho.nsa.gov>
   6  */
   7 /*
   8  * Updated: Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com>
   9  *
  10  *      Support for enhanced MLS infrastructure.
  11  *
  12  * Copyright (C) 2004-2006 Trusted Computer Solutions, Inc.
  13  */
  14 /*
  15  * Updated: Hewlett-Packard <paul@paul-moore.com>
  16  *
  17  *      Added support to import/export the MLS label from NetLabel
  18  *
  19  * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
  20  */
  21 
  22 #ifndef _SS_MLS_H_
  23 #define _SS_MLS_H_
  24 
  25 #include "context.h"
  26 #include "policydb.h"
  27 
  28 int mls_compute_context_len(struct policydb *p, struct context *context);
  29 void mls_sid_to_context(struct policydb *p, struct context *context,
  30                         char **scontext);
  31 int mls_context_isvalid(struct policydb *p, struct context *c);
  32 int mls_range_isvalid(struct policydb *p, struct mls_range *r);
  33 int mls_level_isvalid(struct policydb *p, struct mls_level *l);
  34 
  35 int mls_context_to_sid(struct policydb *p,
  36                        char oldc,
  37                        char *scontext,
  38                        struct context *context,
  39                        struct sidtab *s,
  40                        u32 def_sid);
  41 
  42 int mls_from_string(struct policydb *p, char *str, struct context *context,
  43                     gfp_t gfp_mask);
  44 
  45 int mls_range_set(struct context *context, struct mls_range *range);
  46 
  47 int mls_convert_context(struct policydb *oldp,
  48                         struct policydb *newp,
  49                         struct context *oldc,
  50                         struct context *newc);
  51 
  52 int mls_compute_sid(struct policydb *p,
  53                     struct context *scontext,
  54                     struct context *tcontext,
  55                     u16 tclass,
  56                     u32 specified,
  57                     struct context *newcontext,
  58                     bool sock);
  59 
  60 int mls_setup_user_range(struct policydb *p,
  61                          struct context *fromcon, struct user_datum *user,
  62                          struct context *usercon);
  63 
  64 #ifdef CONFIG_NETLABEL
  65 void mls_export_netlbl_lvl(struct policydb *p,
  66                            struct context *context,
  67                            struct netlbl_lsm_secattr *secattr);
  68 void mls_import_netlbl_lvl(struct policydb *p,
  69                            struct context *context,
  70                            struct netlbl_lsm_secattr *secattr);
  71 int mls_export_netlbl_cat(struct policydb *p,
  72                           struct context *context,
  73                           struct netlbl_lsm_secattr *secattr);
  74 int mls_import_netlbl_cat(struct policydb *p,
  75                           struct context *context,
  76                           struct netlbl_lsm_secattr *secattr);
  77 #else
  78 static inline void mls_export_netlbl_lvl(struct policydb *p,
  79                                          struct context *context,
  80                                          struct netlbl_lsm_secattr *secattr)
  81 {
  82         return;
  83 }
  84 static inline void mls_import_netlbl_lvl(struct policydb *p,
  85                                          struct context *context,
  86                                          struct netlbl_lsm_secattr *secattr)
  87 {
  88         return;
  89 }
  90 static inline int mls_export_netlbl_cat(struct policydb *p,
  91                                         struct context *context,
  92                                         struct netlbl_lsm_secattr *secattr)
  93 {
  94         return -ENOMEM;
  95 }
  96 static inline int mls_import_netlbl_cat(struct policydb *p,
  97                                         struct context *context,
  98                                         struct netlbl_lsm_secattr *secattr)
  99 {
 100         return -ENOMEM;
 101 }
 102 #endif
 103 
 104 #endif  /* _SS_MLS_H */
 105 

/* [<][>][^][v][top][bottom][index][help] */