#ifndef __ABAC_I_H__ #define __ABAC_I_H__ #include #include #include #include #include "abac_list.h" #include "abac_stack.h" #include "abac_util.h" #include "abac.h" abac_condition_t *abac_condition_create_from_aspect(abac_aspect_t *ptr); int abac_condition_set_aspect_ptr(abac_condition_t *ptr, abac_aspect_t *aptr); int abac_condition_set_aspect_string(abac_condition_t *ptr, char *str); int abac_condition_set_range_string(abac_condition_t *ptr); int abac_condition_is_range(abac_condition_t *ptr); abac_aspect_t *abac_condition_of_aspect(abac_condition_t *ptr); void abac_condition_add_range_integer_item(abac_condition_t *ptr, int itype, int val); void abac_condition_add_range_float_item(abac_condition_t *ptr, int itype, float val); void abac_condition_add_range_time_item(abac_condition_t *ptr, int itype, char* val); void abac_condition_add_range_urn_item(abac_condition_t *ptr, char *val); void abac_condition_add_range_string_item(abac_condition_t *ptr, char *val);void abac_condition_add_range_boolean_item(abac_condition_t *ptr, char* val); abac_aspect_t *abac_aspect_role_principal_new(char *principal_name); char *abac_aspect_aspect_param_string(abac_aspect_t *ptr); abac_aspect_t *abac_aspect_oset_linking_new(char *, char *, char *); abac_aspect_t *abac_aspect_role_linking_new(char *, char *, char *); abac_aspect_t *abac_aspect_oset_object_new(abac_term_t *object); abac_aspect_t *abac_aspect_oset_principal_new(char *principal_name); abac_aspect_t *abac_aspect_oset_new(char *principal_name, char *oset_name); abac_aspect_t *abac_aspect_role_new(char *principal_name, char *role_name); abac_list_t *abac_aspect_prereqs(abac_aspect_t *ptr); abac_aspect_t *abac_aspect_intersection_new(abac_aspect_t *); abac_id_t *abac_aspect_get_issuer_id(abac_aspect_t *ptr); char *abac_aspect_object_name(abac_aspect_t *ptr); char *abac_aspect_linked_role_name(abac_aspect_t *ptr); char *abac_aspect_principal_name(abac_aspect_t *ptr); char *abac_aspect_aspect_name(abac_aspect_t *ptr); abac_aspect_t *abac_aspect_role_principal_create(char *principal_name); abac_aspect_t *abac_aspect_principal_new(int type, char *principal_name); abac_aspect_t *abac_aspect_new(int type, char *principal_name, char *aspect_name); abac_aspect_t *abac_aspect_object_new(int type, abac_term_t *object); void abac_aspect_dump(abac_aspect_t *ptr, char* offset); abac_term_t *abac_aspect_object_term(abac_aspect_t *ptr); char* abac_aspect_type_string(abac_aspect_t *ptr); char *abac_aspect_string_with_condition(abac_aspect_t *ptr); char* abac_aspect_get_issuer_keytype(abac_aspect_t *ptr); int abac_aspect_get_issuer_idtype(abac_aspect_t *ptr); char *abac_aspect_typed_string_with_condition(abac_aspect_t *ptr); char *abac_aspect_principal_principalname(abac_aspect_t *ptr); bool abac_term_is_time_type(abac_term_t *term); char *abac_time_to_term(char *string); abac_term_t *abac_term_new(int, char *, int, char *, void *); abac_term_t *abac_term_named_new(int idtype, char *name); char *abac_item_val(abac_item_t *ptr); char *abac_term_to_time(char *string); char *abac_cn_with_sha(char*); char *abac_idtype_with_sha(char*); char *abac_term_type_name(abac_term_t *term); abac_condition_t *abac_term_constraint(abac_term_t *term); abac_term_t *abac_term_create(char*, char*, abac_condition_t*); void abac_condition_dump(abac_condition_t *ptr, char *offset); abac_list_t *abac_condition_range_list(abac_condition_t *ptr); void abac_term_dump(abac_term_t *ptr, char *offset); abac_item_t *abac_item_new(int itype, char *val); int abac_item_type(abac_item_t *); char* abac_item_val(abac_item_t *); char* abac_param_list_string(abac_param_list_t *ptr); void abac_param_dump(abac_param_list_t *ptr, char *offset); char* abac_param_list_string_with_condition(abac_param_list_t *ptr); char* abac_param_list_typed_string_with_condition(abac_param_list_t *ptr); abac_list_t *abac_param_list(abac_param_list_t *ptr); abac_param_list_t *abac_param_list_new(abac_term_t *term); certificate_t *abac_attribute_issuer_cert(abac_attribute_t *ptr); certificate_t *abac_attribute_cert(abac_attribute_t *ptr); abac_attribute_t *abac_attribute_new(abac_id_t *issuer, certificate_t *cert, certificate_t *issuer_cert); abac_aspect_t *abac_attribute_tail(abac_attribute_t *ptr); abac_aspect_t *abac_attribute_head(abac_attribute_t *ptr); abac_id_credential_t *abac_id_credential_lookup(char *pname); abac_id_t *abac_id_new(int idtype,char *keyid, char *cn, certificate_t *cert); private_key_t *abac_id_privkey(abac_id_t *id); certificate_t *abac_id_cert(abac_id_t *id); abac_id_t *abac_id_keyid_new(char *keyid, char *cn, certificate_t *cert); char* abac_id_idtype_string(abac_id_t *id); char *abac_id_name(abac_id_t *id); char *abac_termtype_string(int i); char *abac_idtype_string(int); abac_credential_t *abac_credential_lookup(char *cred_string); abac_stack_t *abac_verifier_dump_creds(); abac_stack_t *abac_verifier_dump_principals(); extern int ABAC_IN_PROLOG; extern char *prologIt(char*); #define PROLOG(BODY) { \ ABAC_IN_PROLOG++; \ { BODY } \ ABAC_IN_PROLOG--; \ } #endif /* __ABAC_I_H__ */