00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XACML_H
00018 #define XACML_H
00019
00020 #include "xacml_datatypes.h"
00021 #include "xacml_authz_interop_profile.h"
00022
00023 #include <time.h>
00024
00025 #ifndef DONT_DOCUMENT_INTERNAL
00026 EXTERN_C_BEGIN
00027 #endif
00028
00050 xacml_result_t
00051 xacml_init(void);
00052
00053 xacml_result_t
00054 xacml_request_init(
00055 xacml_request_t * request);
00056
00057 void
00058 xacml_request_destroy(
00059 xacml_request_t request);
00060
00061
00062 xacml_result_t
00063 xacml_request_set_io_module(
00064 xacml_request_t request,
00065 const char * module);
00066
00067 xacml_result_t
00068 xacml_request_set_io_descriptor(
00069 xacml_request_t request,
00070 const xacml_io_descriptor_t *descriptor);
00071
00072 xacml_result_t
00073 xacml_request_add_subject_attribute(
00074 xacml_request_t request,
00075 const char * subject_category,
00076 const char * attribute_id,
00077 const char * data_type,
00078 const char * issuer,
00079 const char * value);
00080
00081 xacml_result_t
00082 xacml_request_get_subject_attribute_count(
00083 const xacml_request_t request,
00084 size_t * count);
00085
00086 xacml_result_t
00087 xacml_request_get_subject_attribute(
00088 const xacml_request_t request,
00089 size_t num,
00090 const char ** subject_category,
00091 const char ** attribute_id,
00092 const char ** data_type,
00093 const char ** issuer,
00094 const char ** value);
00095
00096 xacml_result_t
00097 xacml_request_set_return_context(
00098 const xacml_request_t request,
00099 int return_context);
00100
00101 xacml_result_t
00102 xacml_request_get_return_context(
00103 const xacml_request_t request,
00104 int * return_context);
00105
00106 xacml_result_t
00107 xacml_resource_attribute_init(
00108 xacml_resource_attribute_t * attribute);
00109
00110 xacml_result_t
00111 xacml_resource_attribute_add(
00112 xacml_resource_attribute_t attribute,
00113 const char * attribute_id,
00114 const char * data_type,
00115 const char * issuer,
00116 const char * value);
00117
00118 void
00119 xacml_resource_attribute_destroy(
00120 xacml_resource_attribute_t attribute);
00121
00122 xacml_result_t
00123 xacml_resource_attribute_get_count(
00124 xacml_resource_attribute_t attribute,
00125 size_t * count);
00126
00127 xacml_result_t
00128 xacml_resource_attribute_get_attribute(
00129 const xacml_resource_attribute_t attribute,
00130 size_t num,
00131 const char ** attribute_id,
00132 const char ** data_type,
00133 const char ** issuer,
00134 const char ** value);
00135
00136 xacml_result_t
00137 xacml_request_add_resource_attribute(
00138 xacml_request_t request,
00139 const xacml_resource_attribute_t attribute);
00140
00141 xacml_result_t
00142 xacml_request_get_resource_attribute_count(
00143 const xacml_request_t request,
00144 size_t * count);
00145
00146 xacml_result_t
00147 xacml_request_get_resource_attribute(
00148 const xacml_request_t request,
00149 size_t num,
00150 xacml_resource_attribute_t * attribute);
00151
00152 xacml_result_t
00153 xacml_request_add_action_attribute(
00154 xacml_request_t request,
00155 const char * attribute_id,
00156 const char * data_type,
00157 const char * issuer,
00158 const char * value);
00159
00160 xacml_result_t
00161 xacml_request_get_action_attribute_count(
00162 const xacml_request_t request,
00163 size_t * count);
00164
00165 xacml_result_t
00166 xacml_request_get_action_attribute(
00167 const xacml_request_t request,
00168 size_t num,
00169 const char ** attribute_id,
00170 const char ** data_type,
00171 const char ** issuer,
00172 const char ** value);
00173
00174 xacml_result_t
00175 xacml_request_add_environment_attribute(
00176 xacml_request_t request,
00177 const char * attribute_id,
00178 const char * data_type,
00179 const char * issuer,
00180 const char * value);
00181
00182 xacml_result_t
00183 xacml_request_get_environment_attribute_count(
00184 const xacml_request_t request,
00185 size_t * count);
00186
00187 xacml_result_t
00188 xacml_request_get_environment_attribute(
00189 const xacml_request_t request,
00190 size_t num,
00191 const char ** attribute_id,
00192 const char ** data_type,
00193 const char ** issuer,
00194 const char ** value);
00195
00196 xacml_result_t
00197 xacml_request_set_subject(
00198 xacml_request_t request,
00199 const char * subject);
00200
00201 xacml_result_t
00202 xacml_request_get_subject(
00203 const xacml_request_t request,
00204 const char ** subject);
00205
00206
00207 xacml_result_t
00208 xacml_response_init(
00209 xacml_response_t * response);
00210
00211 void
00212 xacml_response_destroy(
00213 xacml_response_t response);
00214
00215 xacml_result_t
00216 xacml_response_set_issue_instant(
00217 xacml_response_t response,
00218 time_t issue_instant);
00219
00220 xacml_result_t
00221 xacml_response_get_issue_instant(
00222 xacml_response_t response,
00223 time_t * issue_instant);
00224
00225 xacml_result_t
00226 xacml_response_set_issuer(
00227 xacml_response_t response,
00228 const char * issuer);
00229
00230 xacml_result_t
00231 xacml_response_get_issuer(
00232 xacml_response_t response,
00233 const char ** issuer);
00234
00235 xacml_result_t
00236 xacml_response_set_saml_status_code(
00237 xacml_response_t response,
00238 saml_status_code_t status_code);
00239
00240 xacml_result_t
00241 xacml_response_get_saml_status_code(
00242 const xacml_response_t response,
00243 saml_status_code_t * status_code);
00244
00245 xacml_result_t
00246 xacml_response_set_xacml_decision(
00247 xacml_response_t response,
00248 xacml_decision_t decision);
00249
00250 xacml_result_t
00251 xacml_response_get_xacml_decision(
00252 const xacml_response_t response,
00253 xacml_decision_t * decision);
00254
00255 xacml_result_t
00256 xacml_response_set_xacml_status_code(
00257 xacml_response_t response,
00258 xacml_status_code_t status_code);
00259
00260 xacml_result_t
00261 xacml_response_get_xacml_status_code(
00262 const xacml_response_t response,
00263 xacml_status_code_t * status_code);
00264
00265 xacml_result_t
00266 xacml_obligation_init(
00267 xacml_obligation_t * obligation,
00268 const char * obligation_id,
00269 xacml_effect_t fulfill_on);
00270
00271 void
00272 xacml_obligation_destroy(
00273 xacml_obligation_t obligation);
00274
00275 xacml_result_t
00276 xacml_obligation_add_attribute(
00277 xacml_obligation_t obligation,
00278 const char * attribute_id,
00279 const char * data_type,
00280 const char * value);
00281
00282 xacml_result_t
00283 xacml_obligation_get_id(
00284 const xacml_obligation_t obligation,
00285 const char ** obligation_id);
00286
00287 xacml_result_t
00288 xacml_obligation_get_effect(
00289 const xacml_obligation_t obligation,
00290 xacml_effect_t * fulfill_on);
00291
00292 xacml_result_t
00293 xacml_obligation_get_attribute_count(
00294 const xacml_obligation_t obligation,
00295 size_t * count);
00296
00297 xacml_result_t
00298 xacml_obligation_get_attribute(
00299 const xacml_obligation_t obligation,
00300 size_t num,
00301 const char ** attribute_id,
00302 const char ** data_type,
00303 const char ** value);
00304
00305 xacml_result_t
00306 xacml_response_add_obligation(
00307 xacml_response_t response,
00308 const xacml_obligation_t obligation);
00309
00310 xacml_result_t
00311 xacml_response_get_obligation_count(
00312 const xacml_response_t response,
00313 size_t * count);
00314
00315 xacml_result_t
00316 xacml_response_get_obligation(
00317 const xacml_response_t response,
00318 size_t num,
00319 xacml_obligation_t * obligation);
00320
00321 xacml_result_t
00322 xacml_response_set_request_context(
00323 xacml_response_t response,
00324 xacml_request_t request);
00325
00326 #ifndef DONT_DOCUMENT_INTERNAL
00327 EXTERN_C_END
00328 #endif
00329
00330 #endif