source: libabac/abac_pl_yy.h @ d0efdec

mei_rt2
Last change on this file since d0efdec was 2e9455f, checked in by Mei <mei@…>, 11 years ago

1) added namespace
2) tweak ?This,
3) allowing linking role/oset as constraining conditions
4) adding access_tests regression testing that uses GENI's access policy
5) added couple multi contexts regression tests
6) add compression/uncompression calls to abac_encode_string/abac_decode_string
(libstrongwan only allows 512 char for attribute rule storage)
7) add attribute_now option to creddy that takes a whole char string for attribute
rule

  • Property mode set to 100644
File size: 3.2 KB
RevLine 
[a9494ad]1#ifndef __ABAC_PL_YY_H__
2#define __ABAC_PL_YY_H__
3
[2e9455f]4#include "abac_defines.h"
[a9494ad]5#include "abac_list.h"
[2e9455f]6#include "rt2_yy.h"
[a9494ad]7
[2e9455f]8/* from abac_pl_yy */
[a9494ad]9typedef struct _abac_yy_principal_t abac_yy_principal_t;
[da5afdf]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;
[8bd77b5]13typedef struct _abac_yy_roleoset_t abac_yy_roleoset_t;
[da5afdf]14typedef struct _abac_yy_expression_t abac_yy_expression_t;
[a9494ad]15
[8bd77b5]16enum roleoset_type {
17    e_yy_NULL_TYPE=0, 
18    e_yy_ROLE_TYPE=1,
19    e_yy_OSET_TYPE=2
20};
21
[a9494ad]22enum expr_rtype {
[da5afdf]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
[a9494ad]28};
29
30enum dterm_type {
[da5afdf]31    e_yy_DTERM_PRINCIPAL=1,
32    e_yy_DTERM_NAMED=2,
33    e_yy_DTERM_DATA=3,
[2e9455f]34    e_yy_DTERM_ANONYMOUS=4,
35    e_yy_DTERM_THIS=5
[da5afdf]36};
37
38enum range_type {
39   e_yy_RANGE_MIN=1,
40   e_yy_RANGE_MAX=2,
41   e_yy_RANGE_TARGET=3 
[a9494ad]42};
43
[2e9455f]44/* exported */
45extern abac_yy_expression_t *make_yy_expression(int type,void *pptr,
[8bd77b5]46              abac_yy_roleoset_t *optr, abac_yy_roleoset_t *linked_role);
[0d0c3a9]47extern abac_list_t *make_yy_max_range(char *max);
48extern abac_list_t *make_yy_minmax_range(char *min, char *max);
49extern abac_list_t *make_yy_min_range(char *min);
[440ba20]50extern void make_yy_range_constraint(abac_yy_term_data_t *ptr);
51extern void make_yy_oset_constraint(abac_yy_term_data_t *ptr, char *tail_string);
52extern void make_yy_role_constraint(abac_yy_term_principal_t *ptr, char *tail_string);
[0d0c3a9]53extern abac_yy_principal_t *make_yy_principal(char *sha, char *cn, int type);
[8bd77b5]54extern abac_yy_roleoset_t *make_yy_roleoset_role(char *name, abac_yy_term_t *terms);
55extern abac_yy_roleoset_t *make_yy_roleoset_oset(char *name, abac_yy_term_t *terms);
[9806e76]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);
[0d0c3a9]59extern abac_yy_term_t *make_yy_term_dterm_anonymous();
[2e9455f]60extern abac_yy_term_t *make_yy_term_dterm_this();
[0d0c3a9]61extern abac_yy_term_t *make_yy_term_dterm_data(abac_yy_term_data_t *dptr);
62extern abac_yy_term_t *make_yy_term_dterm_named(abac_yy_principal_t *nptr);
63extern abac_yy_term_t *make_yy_term_dterm_principal(abac_yy_term_principal_t *pptr);
[9806e76]64extern abac_yy_term_principal_t *make_yy_term_principal();
65extern void set_yy_term_principal_name(abac_yy_term_principal_t *,char*);
66extern void set_yy_term_principal_is_anonymous(abac_yy_term_principal_t *);
[0d0c3a9]67extern abac_list_t *make_yy_val_range(char *val);
68
69extern abac_yy_term_t *add_yy_term(abac_yy_term_t *nterm, abac_yy_term_t *terms);
70extern abac_list_t *add_yy_val_range(abac_list_t *ptr, char * val);
[2e9455f]71extern char *get_yy_term_data_name(abac_yy_term_data_t *ptr);
72extern abac_yy_expression_t *add_yy_expression(abac_yy_expression_t *nexpr,
73                                             abac_yy_expression_t *exprs);
74
[0d0c3a9]75
[2e9455f]76extern int make_role_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
77extern int make_oset_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
[8bd77b5]78
[2e9455f]79extern abac_context_t *get_abac_context();
80extern void abac_yy_set_error_code(int v);
81extern int abac_yy_get_using_this();
[0d0c3a9]82
[a9494ad]83#endif /* __ABC_PL_YY_H__ */
Note: See TracBrowser for help on using the repository browser.