source: libabac/abac_pl_yy.h @ d037f54

mei_rt2mei_rt2_fix_1
Last change on this file since d037f54 was 8bd77b5, checked in by Mei <mei@…>, 12 years ago

1) convert parser and libabac to use id cred and attr cred like

creddy (move those 2 files to libabac).

2) fix up abac.hh to work with expanded libabac. can now build

structure from python script

3) redid the credential dump using the internal credential table

instead of depending on a search in db.

  • Property mode set to 100644
File size: 3.6 KB
Line 
1#ifndef __ABAC_PL_YY_H__
2#define __ABAC_PL_YY_H__
3
4/* C declarations */
5#include "abac_internal.h"
6#include "abac_list.h"
7#include "abac_rt.h"
8
9typedef struct _abac_yy_principal_t abac_yy_principal_t;
10typedef struct _abac_yy_term_principal_t abac_yy_term_principal_t;
11typedef struct _abac_yy_term_data_t abac_yy_term_data_t;
12typedef struct _abac_yy_term_t abac_yy_term_t;
13typedef struct _abac_yy_roleoset_t abac_yy_roleoset_t;
14typedef struct _abac_yy_expression_t abac_yy_expression_t;
15
16enum roleoset_type {
17    e_yy_NULL_TYPE=0, 
18    e_yy_ROLE_TYPE=1,
19    e_yy_OSET_TYPE=2
20};
21
22enum expr_rtype {
23    e_yy_EXPR_NAMED=1,
24    e_yy_EXPR_ROLE=2,
25    e_yy_EXPR_OSET=3,
26    e_yy_EXPR_LINKED=4,
27    e_yy_EXPR_OBJECT=5
28};
29
30enum dterm_type {
31    e_yy_DTERM_PRINCIPAL=1,
32    e_yy_DTERM_NAMED=2,
33    e_yy_DTERM_DATA=3,
34    e_yy_DTERM_ANONYMOUS=4
35};
36
37enum range_type {
38   e_yy_RANGE_MIN=1,
39   e_yy_RANGE_MAX=2,
40   e_yy_RANGE_TARGET=3 
41};
42
43abac_yy_expression_t *make_yy_expression(int type,void *pptr,
44              abac_yy_roleoset_t *optr, abac_yy_roleoset_t *linked_role);
45extern abac_list_t *make_yy_max_range(char *max);
46extern abac_list_t *make_yy_minmax_range(char *min, char *max);
47extern abac_list_t *make_yy_min_range(char *min);
48extern char *make_yy_oset_constraint(abac_yy_term_data_t *ptr, char *tail_string);
49extern char *make_yy_oset_constraint(abac_yy_term_data_t *ptr, char *tail_string);
50extern abac_yy_principal_t *make_yy_principal(char *sha, char *cn, int type);
51extern void make_yy_range_constraint(abac_yy_term_data_t *ptr, char *var);
52extern abac_yy_roleoset_t *make_yy_roleoset_role(char *name, abac_yy_term_t *terms);
53extern abac_yy_roleoset_t *make_yy_roleoset_oset(char *name, abac_yy_term_t *terms);
54extern char *make_yy_oset_constraint(abac_yy_term_data_t *ptr, char *tail_string);
55extern char *make_yy_role_constraint(abac_yy_term_principal_t *ptr, char *tail_string);
56extern abac_yy_term_data_t *make_yy_term_data();
57extern void set_yy_term_data_name(abac_yy_term_data_t *ptr, char *name);
58extern void set_yy_term_data_is_anonymous(abac_yy_term_data_t *ptr);
59extern abac_yy_term_t *make_yy_term_dterm_anonymous();
60extern abac_yy_term_t *make_yy_term_dterm_data(abac_yy_term_data_t *dptr);
61extern abac_yy_term_t *make_yy_term_dterm_named(abac_yy_principal_t *nptr);
62extern abac_yy_term_t *make_yy_term_dterm_principal(abac_yy_term_principal_t *pptr);
63extern abac_yy_term_principal_t *make_yy_term_principal();
64extern void set_yy_term_principal_name(abac_yy_term_principal_t *,char*);
65extern void set_yy_term_principal_is_anonymous(abac_yy_term_principal_t *);
66extern abac_list_t *make_yy_val_range(char *val);
67
68extern abac_list_t *make_role_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
69extern abac_list_t *make_oset_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
70extern char *get_yy_term_data_name(abac_yy_term_data_t *ptr);
71extern abac_yy_term_data_t *get_yy_expression_object(abac_yy_expression_t *ptr);
72extern abac_yy_expression_t *add_yy_expression(abac_yy_expression_t *nexpr, abac_yy_expression_t *exprs);
73extern abac_yy_term_t *add_yy_term(abac_yy_term_t *nterm, abac_yy_term_t *terms);
74extern abac_list_t *add_yy_val_range(abac_list_t *ptr, char * val);
75
76extern abac_aspect_t *validate_head(int yytype, abac_yy_expression_t *expr);
77extern abac_aspect_t *validate_named_tail(int yytype, abac_yy_expression_t *expr);
78extern abac_aspect_t *validate_object_tail(int yytype,abac_yy_expression_t *expr);
79extern abac_aspect_t *validate_some_tail(int yytype, abac_yy_expression_t *expr);
80extern abac_aspect_t *validate_linked_tail(int yytype, abac_yy_expression_t *expr);
81
82#define ABAC_YY_INVALID_HEAD        -1
83
84#endif /* __ABC_PL_YY_H__ */
Note: See TracBrowser for help on using the repository browser.