00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00031 #ifndef XCCDF_POLICY_H_
00032 #define XCCDF_POLICY_H_
00033
00034 #include <stdbool.h>
00035 #include <time.h>
00036 #include <oscap.h>
00037 #include <xccdf.h>
00038
00043 struct xccdf_policy_model;
00044
00049 struct xccdf_policy;
00050
00055 struct xccdf_value_binding;
00056
00057 struct xccdf_value_binding_iterator;
00058
00064 struct xccdf_policy_iterator;
00065
00066
00067
00074 struct xccdf_policy_model *xccdf_policy_model_new(struct xccdf_benchmark *benchmark);
00075
00082 struct xccdf_policy * xccdf_policy_new(struct xccdf_policy_model * model, struct xccdf_profile * profile);
00083
00089 struct xccdf_value_binding * xccdf_value_binding_new(void);
00090
00095 void xccdf_policy_model_free(struct xccdf_policy_model *);
00096
00101 void xccdf_policy_free(struct xccdf_policy *);
00102
00107 void xccdf_value_binding_free(struct xccdf_value_binding *);
00108
00114 void xccdf_policy_export_variables(struct xccdf_policy *, char *export_namespace, const char *file);
00120 void xccdf_policy_export_controls (struct xccdf_policy *, char *export_namespace, const char *file);
00126 void xccdf_policy_import_results(struct xccdf_policy *, char *import_namespace, const char *file);
00132 void xccdf_policy_export_results(struct xccdf_policy *, char *scoring_model_namespace, const char *file);
00133
00144 bool xccdf_policy_model_register_callback(struct xccdf_policy_model * model, char * sys, void * func, void * usr);
00145
00171 bool xccdf_policy_model_register_output_callback(struct xccdf_policy_model * model, void * func, void * usr);
00172
00173
00187 struct xccdf_policy_model * xccdf_policy_get_model(const struct xccdf_policy * policy);
00188
00195 struct xccdf_benchmark * xccdf_policy_model_get_benchmark(const struct xccdf_policy_model * item);
00196
00201 struct xccdf_value_binding_iterator * xccdf_policy_get_values(const struct xccdf_policy * item);
00202
00209 struct xccdf_policy_iterator * xccdf_policy_model_get_policies(const struct xccdf_policy_model *model);
00210
00217 struct xccdf_select_iterator * xccdf_policy_get_selected_rules(struct xccdf_policy *);
00218
00224 struct xccdf_profile * xccdf_policy_get_profile(const struct xccdf_policy *);
00225
00231 struct xccdf_select_iterator * xccdf_policy_get_rules(const struct xccdf_policy *);
00232
00238 char * xccdf_value_binding_get_name(const struct xccdf_value_binding *);
00239
00245 char * xccdf_value_binding_get_value(const struct xccdf_value_binding *);
00246
00252 xccdf_value_type_t xccdf_value_binding_get_type(const struct xccdf_value_binding *);
00253
00259 xccdf_operator_t xccdf_value_binding_get_operator(const struct xccdf_value_binding *);
00260
00266 char * xccdf_value_binding_get_setvalue(const struct xccdf_value_binding *);
00267
00272 struct xccdf_result_iterator * xccdf_policy_get_results(const struct xccdf_policy * policy);
00273
00279 struct xccdf_result * xccdf_policy_get_result_by_id(struct xccdf_policy * policy, const char * id);
00280
00287 const char * xccdf_policy_get_id(struct xccdf_policy * policy);
00288
00296 struct xccdf_policy * xccdf_policy_model_get_policy_by_id(struct xccdf_policy_model * policy_model, const char * id);
00297
00298
00301
00314 bool xccdf_policy_model_add_policy(struct xccdf_policy_model *, struct xccdf_policy *);
00315
00321 bool xccdf_policy_add_rule(struct xccdf_policy *, struct xccdf_select *);
00322
00328 bool xccdf_policy_set_selected(struct xccdf_policy * policy, char * idref);
00329
00334 bool xccdf_policy_add_result(struct xccdf_policy * policy, struct xccdf_result * item);
00335
00341 bool xccdf_policy_add_value(struct xccdf_policy *, struct xccdf_value_binding *);
00342
00348
00349
00350
00353
00381 struct xccdf_result * xccdf_policy_evaluate(struct xccdf_policy * policy);
00382
00391 bool xccdf_policy_resolve(struct xccdf_policy * policy);
00392
00393
00396
00406 bool xccdf_policy_iterator_has_more(struct xccdf_policy_iterator *it);
00407
00412 struct xccdf_policy * xccdf_policy_iterator_next(struct xccdf_policy_iterator *it);
00413
00418 void xccdf_policy_iterator_free(struct xccdf_policy_iterator *it);
00419
00424 bool xccdf_value_binding_iterator_has_more(struct xccdf_value_binding_iterator *it);
00425
00430 struct xccdf_value_binding * xccdf_value_binding_iterator_next(struct xccdf_value_binding_iterator *it);
00431
00436 void xccdf_value_binding_iterator_free(struct xccdf_value_binding_iterator *it);
00437
00442 void xccdf_value_binding_iterator_reset(struct xccdf_value_binding_iterator *it);
00443
00451 struct xccdf_score * xccdf_policy_get_score(struct xccdf_policy * policy, struct xccdf_result * test_result, const char * system);
00452
00453
00456
00457
00458
00459 #endif
00460
00461