2005-04-16 15:20:36 -07:00
/*
* Multi - level security ( MLS ) policy operations .
*
* Author : Stephen Smalley , < sds @ epoch . ncsc . mil >
*/
/*
* Updated : Trusted Computer Solutions , Inc . < dgoeddel @ trustedcs . com >
*
* Support for enhanced MLS infrastructure .
*
2006-02-24 15:44:05 -06:00
* Copyright ( C ) 2004 - 2006 Trusted Computer Solutions , Inc .
2005-04-16 15:20:36 -07:00
*/
2006-08-04 23:17:57 -07:00
/*
* Updated : Hewlett - Packard < paul . moore @ hp . com >
*
2008-04-22 17:46:15 -04:00
* Added support to import / export the MLS label from NetLabel
2006-08-04 23:17:57 -07:00
*
* ( c ) Copyright Hewlett - Packard Development Company , L . P . , 2006
*/
2005-04-16 15:20:36 -07:00
# ifndef _SS_MLS_H_
# define _SS_MLS_H_
# include "context.h"
# include "policydb.h"
int mls_compute_context_len ( struct context * context ) ;
void mls_sid_to_context ( struct context * context , char * * scontext ) ;
int mls_context_isvalid ( struct policydb * p , struct context * c ) ;
2007-11-07 10:08:00 -05:00
int mls_range_isvalid ( struct policydb * p , struct mls_range * r ) ;
int mls_level_isvalid ( struct policydb * p , struct mls_level * l ) ;
2005-04-16 15:20:36 -07:00
2008-05-07 13:03:20 -04:00
int mls_context_to_sid ( struct policydb * p ,
char oldc ,
2008-04-22 17:46:15 -04:00
char * * scontext ,
2005-07-28 01:07:37 -07:00
struct context * context ,
struct sidtab * s ,
u32 def_sid ) ;
2005-04-16 15:20:36 -07:00
2006-02-24 15:44:05 -06:00
int mls_from_string ( char * str , struct context * context , gfp_t gfp_mask ) ;
2010-02-03 16:40:20 +01:00
int mls_range_set ( struct context * context , struct mls_range * range ) ;
2005-04-16 15:20:36 -07:00
int mls_convert_context ( struct policydb * oldp ,
struct policydb * newp ,
struct context * context ) ;
int mls_compute_sid ( struct context * scontext ,
struct context * tcontext ,
u16 tclass ,
u32 specified ,
struct context * newcontext ) ;
int mls_setup_user_range ( struct context * fromcon , struct user_datum * user ,
2008-04-22 17:46:15 -04:00
struct context * usercon ) ;
2005-04-16 15:20:36 -07:00
2006-11-29 13:18:18 -05:00
# ifdef CONFIG_NETLABEL
void mls_export_netlbl_lvl ( struct context * context ,
struct netlbl_lsm_secattr * secattr ) ;
void mls_import_netlbl_lvl ( struct context * context ,
struct netlbl_lsm_secattr * secattr ) ;
int mls_export_netlbl_cat ( struct context * context ,
struct netlbl_lsm_secattr * secattr ) ;
int mls_import_netlbl_cat ( struct context * context ,
struct netlbl_lsm_secattr * secattr ) ;
# else
static inline void mls_export_netlbl_lvl ( struct context * context ,
struct netlbl_lsm_secattr * secattr )
{
return ;
}
static inline void mls_import_netlbl_lvl ( struct context * context ,
struct netlbl_lsm_secattr * secattr )
{
return ;
}
static inline int mls_export_netlbl_cat ( struct context * context ,
struct netlbl_lsm_secattr * secattr )
{
return - ENOMEM ;
}
static inline int mls_import_netlbl_cat ( struct context * context ,
struct netlbl_lsm_secattr * secattr )
{
return - ENOMEM ;
}
# endif
2006-08-04 23:17:57 -07:00
2005-04-16 15:20:36 -07:00
# endif /* _SS_MLS_H */