#ifndef SEPOLICY_INJECT_H #define SEPOLICY_INJECT_H #define ALL NULL #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // Global policydb policydb_t *policy; // sepolicy manipulation functions int load_policy(char *filename, policydb_t *policydb, struct policy_file *pf); void create_domain(char *d); int add_file_transition(char *srcS, char *origS, char *tgtS, char *c, char* filename); int add_transition(char *srcS, char *origS, char *tgtS, char *c); int add_typeattribute(char *domainS, char *typeS); int add_rule(char *s, char *t, char *c, char *p, int effect, int not); int add_typerule(char *s, char *targetAttribute, char **minusses, char *c, char *p, int effect, int not); int live_patch(); // Handy functions void allow(char *s, char *t, char *c, char *p); void deny(char *s, char *t, char *c, char *p); void auditallow(char *s, char *t, char *c, char *p); void auditdeny(char *s, char *t, char *c, char *p); void permissive(char *s); void enforce(char *s); void attradd(char *s, char *a); int exists(char *source); // Vector of char* struct vector { size_t size; size_t cap; char **data; }; void vec_init(struct vector *v); void vec_push_back(struct vector *v, char* s); void vec_destroy(struct vector *v); // Built in rules void su_rules(); void min_rules(); #endif