source: libabac/abac_graph.h @ 314869f

abac0-leakabac0-meicompt_changesgec13mei-idmei-rt0-nmei_rt0mei_rt2mei_rt2_fix_1meiyap-rt1meiyap1rt2tvf-new-xml
Last change on this file since 314869f was 314869f, checked in by Mike Ryan <mikeryan@…>, 14 years ago

detect duplicate credential being added to the graph

  • Property mode set to 100644
File size: 1.1 KB
Line 
1#ifndef __GRAPH_H__
2#define __GRAPH_H__
3
4#include "abac.h"
5#include "abac_list.h"
6#include "abac_verifier.h"
7
8#define ABAC_GRAPH_CRED_OK          0   // adding a credential succeeded
9#define ABAC_GRAPH_CRED_INVALID     -1  // the credential was invalid
10#define ABAC_GRAPH_CRED_DUP         -2  // the credential is already present in the graph
11
12typedef struct _abac_graph_t abac_graph_t;
13typedef struct _abac_vertex_t abac_vertex_t;
14
15abac_graph_t *abac_graph_new(void);
16abac_graph_t *abac_graph_dup(abac_graph_t *graph);
17
18// returns a status as defined at the top of the file
19int abac_graph_add_credential(abac_graph_t *graph, abac_credential_t *cred);
20void abac_graph_derive_links(abac_graph_t *graph);
21abac_list_t *abac_graph_postorder(abac_graph_t *graph, abac_role_t *start);
22abac_list_t *abac_graph_postorder_credentials(abac_graph_t *graph, char *start);
23abac_graph_t *abac_graph_query(abac_graph_t *graph, char *role, char *principal);
24abac_list_t *abac_graph_credentials(abac_graph_t *graph);
25void abac_graph_free(abac_graph_t *graph);
26
27abac_role_t *abac_vertex_role(abac_vertex_t *vertex);
28
29#endif /* __GRAPH_H__ */
Note: See TracBrowser for help on using the repository browser.