• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _SEPOL_CONTEXT_RECORD_H_
2 #define _SEPOL_CONTEXT_RECORD_H_
3 
4 #include <sepol/handle.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 struct sepol_context;
11 typedef struct sepol_context sepol_context_t;
12 
13 /* We don't need a key, because the context is never stored
14  * in a data collection by itself */
15 
16 /* User */
17 extern const char *sepol_context_get_user(const sepol_context_t * con);
18 
19 extern int sepol_context_set_user(sepol_handle_t * handle,
20 				  sepol_context_t * con, const char *user);
21 
22 /* Role */
23 extern const char *sepol_context_get_role(const sepol_context_t * con);
24 
25 extern int sepol_context_set_role(sepol_handle_t * handle,
26 				  sepol_context_t * con, const char *role);
27 
28 /* Type */
29 extern const char *sepol_context_get_type(const sepol_context_t * con);
30 
31 extern int sepol_context_set_type(sepol_handle_t * handle,
32 				  sepol_context_t * con, const char *type);
33 
34 /* MLS */
35 extern const char *sepol_context_get_mls(const sepol_context_t * con);
36 
37 extern int sepol_context_set_mls(sepol_handle_t * handle,
38 				 sepol_context_t * con, const char *mls_range);
39 
40 /* Create/Clone/Destroy */
41 extern int sepol_context_create(sepol_handle_t * handle,
42 				sepol_context_t ** con_ptr);
43 
44 extern int sepol_context_clone(sepol_handle_t * handle,
45 			       const sepol_context_t * con,
46 			       sepol_context_t ** con_ptr);
47 
48 extern void sepol_context_free(sepol_context_t * con);
49 
50 /* Parse to/from string */
51 extern int sepol_context_from_string(sepol_handle_t * handle,
52 				     const char *str, sepol_context_t ** con);
53 
54 extern int sepol_context_to_string(sepol_handle_t * handle,
55 				   const sepol_context_t * con, char **str_ptr);
56 
57 #ifdef __cplusplus
58 }
59 #endif
60 
61 #endif
62