00001
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef XCCDF_SESSION_H_
00033 #define XCCDF_SESSION_H_
00034
00035 #include "xccdf_policy.h"
00036
00042 typedef void (*download_progress_calllback_t) (bool warning, const char * format, ...);
00043
00048 struct xccdf_session;
00049
00057 struct xccdf_session *xccdf_session_new(const char *filename);
00058
00064 void xccdf_session_free(struct xccdf_session *session);
00065
00070 const char *xccdf_session_get_filename(const struct xccdf_session *session);
00071
00078 bool xccdf_session_is_sds(const struct xccdf_session *session);
00079
00087 void xccdf_session_set_validation(struct xccdf_session *session, bool validate, bool full_validation);
00088
00097 void xccdf_session_set_datastream_id(struct xccdf_session *session, const char *datastream_id);
00098
00104 const char *xccdf_session_get_datastream_id(struct xccdf_session *session);
00105
00114 void xccdf_session_set_component_id(struct xccdf_session *session, const char *component_id);
00115
00121 const char *xccdf_session_get_component_id(struct xccdf_session *session);
00122
00129 void xccdf_session_set_benchmark_id(struct xccdf_session *session, const char *benchmark_id);
00130
00136 const char *xccdf_session_get_benchmark_id(struct xccdf_session *session);
00137
00145 void xccdf_session_set_user_cpe(struct xccdf_session *session, const char *user_cpe);
00146
00154 void xccdf_session_set_user_tailoring_file(struct xccdf_session *session, const char *user_tailoring_file);
00155
00163 void xccdf_session_set_user_tailoring_cid(struct xccdf_session *session, const char *user_tailoring_cid);
00164
00173 void xccdf_session_set_remote_resources(struct xccdf_session *session, bool allowed, download_progress_calllback_t callback);
00174
00183 void xccdf_session_set_custom_oval_files(struct xccdf_session *session, char **oval_filenames);
00184
00192 void xccdf_session_set_custom_oval_eval_fn(struct xccdf_session *session, xccdf_policy_engine_eval_fn eval_fn);
00193
00201 bool xccdf_session_set_product_cpe(struct xccdf_session *session, const char *product_cpe);
00202
00209 void xccdf_session_set_oval_results_export(struct xccdf_session *session, bool to_export_oval_results);
00210
00217 void xccdf_session_set_sce_results_export(struct xccdf_session *session, bool to_export_sce_results);
00218
00225 void xccdf_session_set_oval_variables_export(struct xccdf_session *session, bool to_export_oval_variables);
00226
00234 bool xccdf_session_set_xccdf_export(struct xccdf_session *session, const char *xccdf_file);
00235
00243 bool xccdf_session_set_arf_export(struct xccdf_session *session, const char *arf_file);
00244
00252 bool xccdf_session_set_report_export(struct xccdf_session *session, const char *report_file);
00253
00261 bool xccdf_session_set_profile_id(struct xccdf_session *session, const char *profile_id);
00262
00268 const char *xccdf_session_get_profile_id(struct xccdf_session *session);
00269
00277 struct ds_sds_index *xccdf_session_get_sds_idx(struct xccdf_session *session);
00278
00286 int xccdf_session_load(struct xccdf_session *session);
00287
00300 int xccdf_session_load_xccdf(struct xccdf_session *session);
00301
00309 int xccdf_session_load_cpe(struct xccdf_session *session);
00310
00317 int xccdf_session_load_oval(struct xccdf_session *session);
00318
00325 int xccdf_session_load_sce(struct xccdf_session *session);
00326
00333 int xccdf_session_load_tailoring(struct xccdf_session *session);
00334
00341 int xccdf_session_evaluate(struct xccdf_session *session);
00342
00349 int xccdf_session_export_xccdf(struct xccdf_session *session);
00350
00357 int xccdf_session_export_oval(struct xccdf_session *session);
00358
00365 int xccdf_session_export_sce(struct xccdf_session *session);
00366
00373 int xccdf_session_export_arf(struct xccdf_session *session);
00374
00382 struct xccdf_policy_model *xccdf_session_get_policy_model(const struct xccdf_session *session);
00383
00390 struct xccdf_policy *xccdf_session_get_xccdf_policy(const struct xccdf_session *session);
00391
00398 float xccdf_session_get_base_score(const struct xccdf_session *session);
00399
00406 unsigned int xccdf_session_get_oval_agents_count(const struct xccdf_session *session);
00407
00416 unsigned int xccdf_session_get_cpe_oval_agents_count(const struct xccdf_session *session);
00417
00424 bool xccdf_session_contains_fail_result(const struct xccdf_session *session);
00425
00434 int xccdf_session_remediate(struct xccdf_session *session);
00435
00446 int xccdf_session_build_policy_from_testresult(struct xccdf_session *session, const char *testresult_id);
00447
00450 #endif