xref: /aosp_15_r20/external/selinux/libsepol/src/context.h (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker #ifndef _SEPOL_INTERNAL_CONTEXT_H_
2*2d543d20SAndroid Build Coastguard Worker #define _SEPOL_INTERNAL_CONTEXT_H_
3*2d543d20SAndroid Build Coastguard Worker 
4*2d543d20SAndroid Build Coastguard Worker #include <stddef.h>
5*2d543d20SAndroid Build Coastguard Worker #include "context_internal.h"
6*2d543d20SAndroid Build Coastguard Worker #include <sepol/policydb/context.h>
7*2d543d20SAndroid Build Coastguard Worker #include <sepol/policydb/policydb.h>
8*2d543d20SAndroid Build Coastguard Worker #include <sepol/handle.h>
9*2d543d20SAndroid Build Coastguard Worker 
10*2d543d20SAndroid Build Coastguard Worker /* Create a context structure from high level representation */
11*2d543d20SAndroid Build Coastguard Worker extern int context_from_record(sepol_handle_t * handle,
12*2d543d20SAndroid Build Coastguard Worker 			       const policydb_t * policydb,
13*2d543d20SAndroid Build Coastguard Worker 			       context_struct_t ** cptr,
14*2d543d20SAndroid Build Coastguard Worker 			       const sepol_context_t * data);
15*2d543d20SAndroid Build Coastguard Worker 
16*2d543d20SAndroid Build Coastguard Worker extern int context_to_record(sepol_handle_t * handle,
17*2d543d20SAndroid Build Coastguard Worker 			     const policydb_t * policydb,
18*2d543d20SAndroid Build Coastguard Worker 			     const context_struct_t * context,
19*2d543d20SAndroid Build Coastguard Worker 			     sepol_context_t ** record);
20*2d543d20SAndroid Build Coastguard Worker 
21*2d543d20SAndroid Build Coastguard Worker /* Create a context structure from string representation */
22*2d543d20SAndroid Build Coastguard Worker extern int context_from_string(sepol_handle_t * handle,
23*2d543d20SAndroid Build Coastguard Worker 			       const policydb_t * policydb,
24*2d543d20SAndroid Build Coastguard Worker 			       context_struct_t ** cptr,
25*2d543d20SAndroid Build Coastguard Worker 			       const char *con_str, size_t con_str_len);
26*2d543d20SAndroid Build Coastguard Worker 
27*2d543d20SAndroid Build Coastguard Worker /* Check if the provided context is valid for this policy */
28*2d543d20SAndroid Build Coastguard Worker extern int context_is_valid(const policydb_t * policydb,
29*2d543d20SAndroid Build Coastguard Worker 			    const context_struct_t * context);
30*2d543d20SAndroid Build Coastguard Worker 
31*2d543d20SAndroid Build Coastguard Worker /* Extract the context as string */
32*2d543d20SAndroid Build Coastguard Worker extern int context_to_string(sepol_handle_t * handle,
33*2d543d20SAndroid Build Coastguard Worker 			     const policydb_t * policydb,
34*2d543d20SAndroid Build Coastguard Worker 			     const context_struct_t * context,
35*2d543d20SAndroid Build Coastguard Worker 			     char **result, size_t * result_len);
36*2d543d20SAndroid Build Coastguard Worker 
37*2d543d20SAndroid Build Coastguard Worker #endif
38