Open SCAP Library

xccdf_session.h

Go to the documentation of this file.
00001 
00012 /*
00013  * Copyright 2013 Red Hat Inc., Durham, North Carolina.
00014  * All Rights Reserved.
00015  *
00016  * This library is free software; you can redistribute it and/or
00017  * modify it under the terms of the GNU Lesser General Public
00018  * License as published by the Free Software Foundation; either
00019  * version 2.1 of the License, or (at your option) any later version.
00020  *
00021  * This library is distributed in the hope that it will be useful,
00022  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00023  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00024  * Lesser General Public License for more details.
00025  *
00026  * You should have received a copy of the GNU Lesser General Public
00027  * License along with this library; if not, write to the Free Software
00028  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029  *
00030  */
00031 
00032 #ifndef XCCDF_SESSION_H_
00033 #define XCCDF_SESSION_H_
00034 
00035 #include "xccdf_policy.h"
00036 #include "oscap_download_cb.h"
00037 
00042 struct xccdf_session;
00043 
00049 typedef enum {
00050         XCCDF_SESSION_LOAD_NONE = 0,
00051         XCCDF_SESSION_LOAD_XCCDF = 1 << 0,
00052         XCCDF_SESSION_LOAD_CPE = 1 << 1,
00053         XCCDF_SESSION_LOAD_OVAL = 1 << 2,
00054         XCCDF_SESSION_LOAD_CHECK_ENGINE_PLUGINS = 1 << 3,
00055         XCCDF_SESSION_LOAD_ALL = XCCDF_SESSION_LOAD_XCCDF | XCCDF_SESSION_LOAD_CPE | XCCDF_SESSION_LOAD_OVAL | XCCDF_SESSION_LOAD_CHECK_ENGINE_PLUGINS
00056 } xccdf_session_loading_flags_t;
00057 
00065 struct xccdf_session *xccdf_session_new(const char *filename);
00066 
00074 struct xccdf_session *xccdf_session_new_from_source(struct oscap_source *source);
00075 
00081 void xccdf_session_free(struct xccdf_session *session);
00082 
00087 const char *xccdf_session_get_filename(const struct xccdf_session *session);
00088 
00095 bool xccdf_session_is_sds(const struct xccdf_session *session);
00096 
00104 void xccdf_session_set_rule(struct xccdf_session *session, const char *rule);
00105 
00116 void xccdf_session_set_validation(struct xccdf_session *session, bool validate, bool full_validation);
00117 
00126 void xccdf_session_set_thin_results(struct xccdf_session *session, bool thin_result);
00127 
00136 void xccdf_session_set_datastream_id(struct xccdf_session *session, const char *datastream_id);
00137 
00143 const char *xccdf_session_get_datastream_id(struct xccdf_session *session);
00144 
00153 void xccdf_session_set_component_id(struct xccdf_session *session, const char *component_id);
00154 
00160 const char *xccdf_session_get_component_id(struct xccdf_session *session);
00161 
00168 void xccdf_session_set_benchmark_id(struct xccdf_session *session, const char *benchmark_id);
00169 
00175 const char *xccdf_session_get_benchmark_id(struct xccdf_session *session);
00176 
00181 const char *xccdf_session_get_result_id(struct xccdf_session *session);
00182 
00190 void xccdf_session_set_user_cpe(struct xccdf_session *session, const char *user_cpe);
00191 
00199 void xccdf_session_set_user_tailoring_file(struct xccdf_session *session, const char *user_tailoring_file);
00200 
00208 void xccdf_session_set_user_tailoring_cid(struct xccdf_session *session, const char *user_tailoring_cid);
00209 
00218 void xccdf_session_set_remote_resources(struct xccdf_session *session, bool allowed, download_progress_calllback_t callback);
00219 
00226 void xccdf_session_set_loading_flags(struct xccdf_session *session, xccdf_session_loading_flags_t flags);
00227 
00236 void xccdf_session_set_custom_oval_files(struct xccdf_session *session, char **oval_filenames);
00237 
00245 void xccdf_session_set_custom_oval_eval_fn(struct xccdf_session *session, xccdf_policy_engine_eval_fn eval_fn);
00246 
00254 bool xccdf_session_set_product_cpe(struct xccdf_session *session, const char *product_cpe);
00255 
00262 void xccdf_session_set_without_sys_chars_export(struct xccdf_session *session, bool without_sys_chars);
00263 
00270 void xccdf_session_set_oval_results_export(struct xccdf_session *session, bool to_export_oval_results);
00271 
00278 void xccdf_session_set_check_engine_plugins_results_export(struct xccdf_session *session, bool to_export_results);
00279 
00286 OSCAP_DEPRECATED(void xccdf_session_set_sce_results_export(struct xccdf_session *session, bool to_export_sce_results));
00287 
00294 void xccdf_session_set_oval_variables_export(struct xccdf_session *session, bool to_export_oval_variables);
00295 
00303 bool xccdf_session_set_xccdf_export(struct xccdf_session *session, const char *xccdf_file);
00304 
00312 bool xccdf_session_set_arf_export(struct xccdf_session *session, const char *arf_file);
00313 
00321 bool xccdf_session_set_report_export(struct xccdf_session *session, const char *report_file);
00322 
00330 bool xccdf_session_set_profile_id(struct xccdf_session *session, const char *profile_id);
00331 
00340 int xccdf_session_set_profile_id_by_suffix(struct xccdf_session *session, const char *profile_suffix);
00341 
00347 const char *xccdf_session_get_profile_id(struct xccdf_session *session);
00348 
00356 struct ds_sds_index *xccdf_session_get_sds_idx(struct xccdf_session *session);
00357 
00365 int xccdf_session_load(struct xccdf_session *session);
00366 
00379 int xccdf_session_load_xccdf(struct xccdf_session *session);
00380 
00388 int xccdf_session_load_cpe(struct xccdf_session *session);
00389 
00396 int xccdf_session_load_oval(struct xccdf_session *session);
00397 
00412 int xccdf_session_load_check_engine_plugin2(struct xccdf_session *session, const char* plugin_name, bool quiet);
00413 int xccdf_session_load_check_engine_plugin(struct xccdf_session *session, const char* plugin_name);
00414 
00425 int xccdf_session_load_check_engine_plugins(struct xccdf_session *session);
00426 
00432 OSCAP_DEPRECATED(int xccdf_session_load_sce(struct xccdf_session *session));
00433 
00440 int xccdf_session_load_tailoring(struct xccdf_session *session);
00441 
00448 int xccdf_session_evaluate(struct xccdf_session *session);
00449 
00456 int xccdf_session_export_xccdf(struct xccdf_session *session);
00457 
00464 int xccdf_session_export_oval(struct xccdf_session *session);
00465 
00474 int xccdf_session_export_check_engine_plugins(struct xccdf_session *session);
00475 
00484 OSCAP_DEPRECATED(int xccdf_session_export_sce(struct xccdf_session *session));
00485 
00492 int xccdf_session_export_arf(struct xccdf_session *session);
00493 
00501 struct xccdf_policy_model *xccdf_session_get_policy_model(const struct xccdf_session *session);
00502 
00509 struct xccdf_policy *xccdf_session_get_xccdf_policy(const struct xccdf_session *session);
00510 
00517 float xccdf_session_get_base_score(const struct xccdf_session *session);
00518 
00525 unsigned int xccdf_session_get_oval_agents_count(const struct xccdf_session *session);
00526 
00535 unsigned int xccdf_session_get_cpe_oval_agents_count(const struct xccdf_session *session);
00536 
00543 bool xccdf_session_contains_fail_result(const struct xccdf_session *session);
00544 
00553 int xccdf_session_remediate(struct xccdf_session *session);
00554 
00565 int xccdf_session_build_policy_from_testresult(struct xccdf_session *session, const char *testresult_id);
00566 
00574 int xccdf_session_add_report_from_source(struct xccdf_session *session, struct oscap_source *report_source);
00575 
00578 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines