source: libabac/abac_graph.h @ 8f53997

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

Better partial proofs

  • Property mode set to 100644
File size: 1.3 KB
RevLine 
[06293d1]1#ifndef __GRAPH_H__
2#define __GRAPH_H__
3
4#include "abac.h"
5#include "abac_list.h"
[43e3b71]6#include "abac_verifier.h"
[06293d1]7
[314869f]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
[06293d1]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);
[314869f]17
18// returns a status as defined at the top of the file
[401a054]19int abac_graph_add_credential(abac_graph_t *graph, abac_credential_t *cred);
[06293d1]20void abac_graph_derive_links(abac_graph_t *graph);
21abac_list_t *abac_graph_postorder(abac_graph_t *graph, abac_role_t *start);
[4e426c9]22abac_list_t *abac_graph_postorder_credentials(abac_graph_t *graph, char *start);
[d4b3b52]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);
[401a054]26abac_graph_t *abac_graph_query(abac_graph_t *graph, char *role, char *principal);
27abac_list_t *abac_graph_credentials(abac_graph_t *graph);
[06293d1]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.