source: libabac/abac_graph.h @ af36abb

abac0-leakabac0-meicompt_changesmei-idmei-rt0-nmei_rt0tvf-new-xml
Last change on this file since af36abb was d4b3b52, checked in by Ted Faber <faber@…>, 12 years ago

Better partial proofs

  • Property mode set to 100644
File size: 1.3 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_list_t *abac_graph_postorder_reverse(abac_graph_t *graph, abac_role_t *start);
24abac_list_t *abac_graph_postorder_reverse_credentials(abac_graph_t *graph, char *start);
25abac_graph_t *abac_graph_principal_creds(abac_graph_t *graph, char *principal);
26abac_graph_t *abac_graph_query(abac_graph_t *graph, char *role, char *principal);
27abac_list_t *abac_graph_credentials(abac_graph_t *graph);
28void abac_graph_free(abac_graph_t *graph);
29
30abac_role_t *abac_vertex_role(abac_vertex_t *vertex);
31
32#endif /* __GRAPH_H__ */
Note: See TracBrowser for help on using the repository browser.