Open SCAP Library: xccdf_session.h Source File

Open SCAP Library

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

xccdf_session.h
Go to the documentation of this file.
1
12 /*
13 * Copyright 2013 Red Hat Inc., Durham, North Carolina.
14 * All Rights Reserved.
15 *
16 * This library is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public
18 * License as published by the Free Software Foundation; either
19 * version 2.1 of the License, or (at your option) any later version.
20 *
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
25 *
26 * You should have received a copy of the GNU Lesser General Public
27 * License along with this library; if not, write to the Free Software
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29 *
30 */
31
32 #ifndef XCCDF_SESSION_H_
33 #define XCCDF_SESSION_H_
34
35 #include "xccdf_policy.h"
36 #include "oscap_download_cb.h"
37
42 struct xccdf_session;
43
51 struct xccdf_session *xccdf_session_new(const char *filename);
52
60 struct xccdf_session *xccdf_session_new_from_source(struct oscap_source *source);
61
67 void xccdf_session_free(struct xccdf_session *session);
68
73 const char *xccdf_session_get_filename(const struct xccdf_session *session);
74
81 bool xccdf_session_is_sds(const struct xccdf_session *session);
82
93 void xccdf_session_set_validation(struct xccdf_session *session, bool validate, bool full_validation);
94
103 void xccdf_session_set_thin_results(struct xccdf_session *session, bool thin_result);
104
113 void xccdf_session_set_datastream_id(struct xccdf_session *session, const char *datastream_id);
114
120 const char *xccdf_session_get_datastream_id(struct xccdf_session *session);
121
130 void xccdf_session_set_component_id(struct xccdf_session *session, const char *component_id);
131
137 const char *xccdf_session_get_component_id(struct xccdf_session *session);
138
145 void xccdf_session_set_benchmark_id(struct xccdf_session *session, const char *benchmark_id);
146
152 const char *xccdf_session_get_benchmark_id(struct xccdf_session *session);
153
161 void xccdf_session_set_user_cpe(struct xccdf_session *session, const char *user_cpe);
162
170 void xccdf_session_set_user_tailoring_file(struct xccdf_session *session, const char *user_tailoring_file);
171
179 void xccdf_session_set_user_tailoring_cid(struct xccdf_session *session, const char *user_tailoring_cid);
180
189 void xccdf_session_set_remote_resources(struct xccdf_session *session, bool allowed, download_progress_calllback_t callback);
190
199 void xccdf_session_set_custom_oval_files(struct xccdf_session *session, char **oval_filenames);
200
208 void xccdf_session_set_custom_oval_eval_fn(struct xccdf_session *session, xccdf_policy_engine_eval_fn eval_fn);
209
217 bool xccdf_session_set_product_cpe(struct xccdf_session *session, const char *product_cpe);
218
225 void xccdf_session_set_without_sys_chars_export(struct xccdf_session *session, bool without_sys_chars);
226
233 void xccdf_session_set_oval_results_export(struct xccdf_session *session, bool to_export_oval_results);
234
241 void xccdf_session_set_check_engine_plugins_results_export(struct xccdf_session *session, bool to_export_results);
242
249 OSCAP_DEPRECATED(void xccdf_session_set_sce_results_export(struct xccdf_session *session, bool to_export_sce_results));
250
257 void xccdf_session_set_oval_variables_export(struct xccdf_session *session, bool to_export_oval_variables);
258
266 bool xccdf_session_set_xccdf_export(struct xccdf_session *session, const char *xccdf_file);
267
275 bool xccdf_session_set_arf_export(struct xccdf_session *session, const char *arf_file);
276
284 bool xccdf_session_set_report_export(struct xccdf_session *session, const char *report_file);
285
293 bool xccdf_session_set_profile_id(struct xccdf_session *session, const char *profile_id);
294
300 const char *xccdf_session_get_profile_id(struct xccdf_session *session);
301
309 struct ds_sds_index *xccdf_session_get_sds_idx(struct xccdf_session *session);
310
318 int xccdf_session_load(struct xccdf_session *session);
319
332 int xccdf_session_load_xccdf(struct xccdf_session *session);
333
341 int xccdf_session_load_cpe(struct xccdf_session *session);
342
349 int xccdf_session_load_oval(struct xccdf_session *session);
350
365 int xccdf_session_load_check_engine_plugin2(struct xccdf_session *session, const char* plugin_name, bool quiet);
366 int xccdf_session_load_check_engine_plugin(struct xccdf_session *session, const char* plugin_name);
367
378 int xccdf_session_load_check_engine_plugins(struct xccdf_session *session);
379
385 OSCAP_DEPRECATED(int xccdf_session_load_sce(struct xccdf_session *session));
386
393 int xccdf_session_load_tailoring(struct xccdf_session *session);
394
401 int xccdf_session_evaluate(struct xccdf_session *session);
402
409 int xccdf_session_export_xccdf(struct xccdf_session *session);
410
417 int xccdf_session_export_oval(struct xccdf_session *session);
418
427 int xccdf_session_export_check_engine_plugins(struct xccdf_session *session);
428
437 OSCAP_DEPRECATED(int xccdf_session_export_sce(struct xccdf_session *session));
438
445 int xccdf_session_export_arf(struct xccdf_session *session);
446
454 struct xccdf_policy_model *xccdf_session_get_policy_model(const struct xccdf_session *session);
455
462 struct xccdf_policy *xccdf_session_get_xccdf_policy(const struct xccdf_session *session);
463
470 float xccdf_session_get_base_score(const struct xccdf_session *session);
471
478 unsigned int xccdf_session_get_oval_agents_count(const struct xccdf_session *session);
479
488 unsigned int xccdf_session_get_cpe_oval_agents_count(const struct xccdf_session *session);
489
496 bool xccdf_session_contains_fail_result(const struct xccdf_session *session);
497
506 int xccdf_session_remediate(struct xccdf_session *session);
507
518 int xccdf_session_build_policy_from_testresult(struct xccdf_session *session, const char *testresult_id);
519
527 int xccdf_session_add_report_from_source(struct xccdf_session *session, struct oscap_source *report_source);
528
531 #endif
xccdf_session::xccdf_session_set_custom_oval_eval_fn
void xccdf_session_set_custom_oval_eval_fn(struct xccdf_session *session, xccdf_policy_engine_eval_fn eval_fn)
Set custom OVAL eval function to register with each OVAL session.
Definition: xccdf_session.c:361
xccdf_session_load_sce
int xccdf_session_load_sce(struct xccdf_session *session)
Definition: xccdf_session.c:1016
xccdf_session::xccdf_session_free
void xccdf_session_free(struct xccdf_session *session)
Destructor of xccdf_session.
Definition: xccdf_session.c:248
xccdf_session::xccdf_session_load_tailoring
int xccdf_session_load_tailoring(struct xccdf_session *session)
Load Tailoring file (if applicable) to the XCCDF session.
Definition: xccdf_session.c:1021
xccdf_session::xccdf_session_is_sds
bool xccdf_session_is_sds(const struct xccdf_session *session)
Query if the session is based on Source DataStream.
Definition: xccdf_session.c:287
xccdf_session
A structure encapsulating the context of XCCDF operations.
Definition: xccdf_session.c:64
xccdf_session::xccdf_session_set_datastream_id
void xccdf_session_set_datastream_id(struct xccdf_session *session, const char *datastream_id)
Set requested datastream_id for this session.
Definition: xccdf_session.c:303
xccdf_session::xccdf_session_get_component_id
const char * xccdf_session_get_component_id(struct xccdf_session *session)
Retrieves the component id.
Definition: xccdf_session.c:323
xccdf_policy.h
Open-scap XCCDF Policy library interface.
xccdf_session::xccdf_session_get_base_score
float xccdf_session_get_base_score(const struct xccdf_session *session)
Get the base score of the latest XCCDF evaluation in the session.
xccdf_session::xccdf_session_load_check_engine_plugin2
int xccdf_session_load_check_engine_plugin2(struct xccdf_session *session, const char *plugin_name, bool quiet)
Load extra check engine from a plugin of given name to the XCCDF session.
Definition: xccdf_session.c:957
OSCAP_DEPRECATED
#define OSCAP_DEPRECATED(func)
This macro will warn, when a deprecated function is used.
Definition: oscap.h:50
xccdf_session::xccdf_session_load
int xccdf_session_load(struct xccdf_session *session)
Load and parse all XCCDF structures needed to evaluate this session.
Definition: xccdf_session.c:475
xccdf_session::profile_id
char * profile_id
Last selected profile.
Definition: xccdf_session.c:71
xccdf_session::xccdf_session_new_from_source
struct xccdf_session * xccdf_session_new_from_source(struct oscap_source *source)
Costructor of xccdf_session.
Definition: xccdf_session.c:124
xccdf_session::xccdf_session_export_check_engine_plugins
int xccdf_session_export_check_engine_plugins(struct xccdf_session *session)
Export results (if any) from any check engine plugins that are loaded.
Definition: xccdf_session.c:1455
xccdf_session::xccdf_file
char * xccdf_file
Path to XCCDF file to export.
Definition: xccdf_session.c:97
xccdf_session::xccdf_session_set_sce_results_export
void xccdf_session_set_sce_results_export(struct xccdf_session *session, bool to_export_sce_results)
Set that SCE reult files shall be exported.
Definition: xccdf_session.c:393
xccdf_policy_model
XCCDF policy model structure contains xccdf_benchmark as reference to Benchmark element in XML file a...
Definition: xccdf_policy_priv.h:39
xccdf_session::xccdf_session_export_xccdf
int xccdf_session_export_xccdf(struct xccdf_session *session)
Export XCCDF file.
Definition: xccdf_session.c:1190
xccdf_session::report_file
char * report_file
Path to HTML file to eport.
Definition: xccdf_session.c:98
xccdf_session::xccdf_session_set_user_cpe
void xccdf_session_set_user_cpe(struct xccdf_session *session, const char *user_cpe)
Set path to custom CPE dictionary for the session.
Definition: xccdf_session.c:342
xccdf_session::xccdf_session_set_thin_results
void xccdf_session_set_thin_results(struct xccdf_session *session, bool thin_result)
Set whether the thin results override is enabled.
Definition: xccdf_session.c:298
xccdf_session::xccdf_session_set_check_engine_plugins_results_export
void xccdf_session_set_check_engine_plugins_results_export(struct xccdf_session *session, bool to_export_results)
Set that check engine plugin&#39;s result files shall be exported.
Definition: xccdf_session.c:388
xccdf_session::xccdf_session_get_datastream_id
const char * xccdf_session_get_datastream_id(struct xccdf_session *session)
Retrieves the datastream id.
Definition: xccdf_session.c:309
xccdf_session::xccdf_session_set_profile_id
bool xccdf_session_set_profile_id(struct xccdf_session *session, const char *profile_id)
Select XCCDF Profile for evaluation.
Definition: xccdf_session.c:419
ds_sds_index
Represents <data-stream-collection> element - the root element of each source datastream.
Definition: sds_index.c:215
xccdf_session::xccdf_session_set_without_sys_chars_export
void xccdf_session_set_without_sys_chars_export(struct xccdf_session *session, bool without_sys_chars)
Set whether the System Characteristics shall be exported in result files.
Definition: xccdf_session.c:373
xccdf_session::xccdf_session_export_oval
int xccdf_session_export_oval(struct xccdf_session *session)
Export OVAL (result and variables) files.
Definition: xccdf_session.c:1402
xccdf_session::xccdf_session_set_product_cpe
bool xccdf_session_set_product_cpe(struct xccdf_session *session, const char *product_cpe)
Set custom product CPE name.
Definition: xccdf_session.c:366
xccdf_session::user_cpe
char * user_cpe
Path to CPE dictionary required by user.
Definition: xccdf_session.c:105
xccdf_session::without_sys_chars
bool without_sys_chars
Shall system characteristics be exported?
Definition: xccdf_session.c:102
xccdf_session::xccdf_session_build_policy_from_testresult
int xccdf_session_build_policy_from_testresult(struct xccdf_session *session, const char *testresult_id)
Load xccdf:TestResult to the session from file and prepare session for remediation.
Definition: xccdf_session.c:1588
xccdf_session::xccdf_session_get_benchmark_id
const char * xccdf_session_get_benchmark_id(struct xccdf_session *session)
Retrieves the benchmark_id.
Definition: xccdf_session.c:337
xccdf_policy_engine_eval_fn
xccdf_test_result_type_t(* xccdf_policy_engine_eval_fn)(struct xccdf_policy *policy, const char *rule_id, const char *definition_id, const char *href_if, struct xccdf_value_binding_iterator *value_binding_it, struct xccdf_check_import_iterator *check_imports_it, void *user_data)
Type of function which implements OpenSCAP checking engine.
Definition: xccdf_policy.h:98
xccdf_session::xccdf_session_get_xccdf_policy
struct xccdf_policy * xccdf_session_get_xccdf_policy(const struct xccdf_session *session)
Get xccdf_policy of the session.
Definition: xccdf_session.c:1510
oscap_source
Definition: oscap_source.c:62
xccdf_session::xccdf_session_add_report_from_source
int xccdf_session_add_report_from_source(struct xccdf_session *session, struct oscap_source *report_source)
Load xccdf:TestResult to the session from oscap_source.
Definition: xccdf_session.c:1619
xccdf_session::xccdf_session_set_report_export
bool xccdf_session_set_report_export(struct xccdf_session *session, const char *report_file)
Set where to export HTML Report file.
Definition: xccdf_session.c:412
xccdf_session::xccdf_session_evaluate
int xccdf_session_evaluate(struct xccdf_session *session)
Evaluate XCCDF Policy.
Definition: xccdf_session.c:1070
xccdf_session::xccdf_session_get_policy_model
struct xccdf_policy_model * xccdf_session_get_policy_model(const struct xccdf_session *session)
Get policy_model of the session.
xccdf_session::xccdf_session_export_arf
int xccdf_session_export_arf(struct xccdf_session *session)
Export ARF (if enabled by xccdf_session_set_arf_export).
Definition: xccdf_session.c:1484
xccdf_session::xccdf_session_set_arf_export
bool xccdf_session_set_arf_export(struct xccdf_session *session, const char *arf_file)
Set where to export ARF file.
Definition: xccdf_session.c:398
xccdf_session::xccdf_session_load_oval
int xccdf_session_load_oval(struct xccdf_session *session)
Load and parse OVAL definitions files for the XCCDF session.
Definition: xccdf_session.c:877
xccdf_session::xccdf_session_set_user_tailoring_cid
void xccdf_session_set_user_tailoring_cid(struct xccdf_session *session, const char *user_tailoring_cid)
Set ID of Tailoring component for the session.
Definition: xccdf_session.c:355
xccdf_session::xccdf_session_load_check_engine_plugins
int xccdf_session_load_check_engine_plugins(struct xccdf_session *session)
Load extra check engines (if any are available) to the XCCDF session.
Definition: xccdf_session.c:981
xccdf_session::xccdf_session_remediate
int xccdf_session_remediate(struct xccdf_session *session)
Run XCCDF Remediation.
Definition: xccdf_session.c:1563
xccdf_session::xccdf_session_set_custom_oval_files
void xccdf_session_set_custom_oval_files(struct xccdf_session *session, char **oval_filenames)
Set custom oval files for this session.
Definition: xccdf_session.c:733
xccdf_session::filename
const char * filename
File name of SCAP (SDS or XCCDF) file for this session.
Definition: xccdf_session.c:65
xccdf_session::xccdf_session_set_component_id
void xccdf_session_set_component_id(struct xccdf_session *session, const char *component_id)
Set requested component_id for this session.
Definition: xccdf_session.c:317
xccdf_session::xccdf_session_set_validation
void xccdf_session_set_validation(struct xccdf_session *session, bool validate, bool full_validation)
Set XSD validation level to one of three possibilities:
Definition: xccdf_session.c:292
xccdf_session::xccdf_session_load_cpe
int xccdf_session_load_cpe(struct xccdf_session *session)
Load and parse CPE dictionaries.
Definition: xccdf_session.c:648
xccdf_session::arf_file
char * arf_file
Path to ARF file to export.
Definition: xccdf_session.c:96
xccdf_policy
XCCDF policy structure is abstract (class) structure of Profile element from benchmark.
Definition: xccdf_policy_priv.h:58
xccdf_session::xccdf_session_load_xccdf
int xccdf_session_load_xccdf(struct xccdf_session *session)
Load and parse XCCDF file.
Definition: xccdf_session.c:602
xccdf_session::xccdf_session_new
struct xccdf_session * xccdf_session_new(const char *filename)
Costructor of xccdf_session.
Definition: xccdf_session.c:165
xccdf_session::xccdf_session_set_benchmark_id
void xccdf_session_set_benchmark_id(struct xccdf_session *session, const char *benchmark_id)
Sets requested benchmark_id for this session.
Definition: xccdf_session.c:331
xccdf_session::xccdf_session_export_sce
int xccdf_session_export_sce(struct xccdf_session *session)
Export SCE files (if enabled by xccdf_session_set_sce_results_export).
Definition: xccdf_session.c:1479
xccdf_session::xccdf_session_get_sds_idx
struct ds_sds_index * xccdf_session_get_sds_idx(struct xccdf_session *session)
Get Source DataStream index of the session.
Definition: xccdf_session.c:467
xccdf_session::full_validation
bool full_validation
True value indicates that every possible step will be validated by XSD.
Definition: xccdf_session.c:111
xccdf_session::product_cpe
char * product_cpe
CPE of scanner product.
Definition: xccdf_session.c:89
xccdf_session::xccdf_session_set_oval_results_export
void xccdf_session_set_oval_results_export(struct xccdf_session *session, bool to_export_oval_results)
Set whether the OVAL result files shall be exported.
Definition: xccdf_session.c:378
xccdf_session::validate
bool validate
False value indicates to skip any XSD validation.
Definition: xccdf_session.c:110
xccdf_session::xccdf_session_contains_fail_result
bool xccdf_session_contains_fail_result(const struct xccdf_session *session)
Query if the result of evaluation contains FAIL, ERROR, or UNKNOWN rule-result elements.
Definition: xccdf_session.c:1546
xccdf_session::xccdf_session_set_xccdf_export
bool xccdf_session_set_xccdf_export(struct xccdf_session *session, const char *xccdf_file)
Set where to export XCCDF file.
Definition: xccdf_session.c:405
xccdf_session::source
struct oscap_source * source
Main source assigned with the main file (SDS or XCCDF)
Definition: xccdf_session.c:66
xccdf_session::xccdf_session_set_remote_resources
void xccdf_session_set_remote_resources(struct xccdf_session *session, bool allowed, download_progress_calllback_t callback)
Set properties of remote content.
Definition: xccdf_session.c:443
xccdf_session::xccdf_session_set_user_tailoring_file
void xccdf_session_set_user_tailoring_file(struct xccdf_session *session, const char *user_tailoring_file)
Set path to custom Tailoring file for the session.
Definition: xccdf_session.c:348
xccdf_session::xccdf_session_set_oval_variables_export
void xccdf_session_set_oval_variables_export(struct xccdf_session *session, bool to_export_oval_variables)
Set whether the OVAL variables files shall be exported.
Definition: xccdf_session.c:383
xccdf_session::xccdf_session_get_oval_agents_count
unsigned int xccdf_session_get_oval_agents_count(const struct xccdf_session *session)
Get count of OVAL agent sessions not used for CPE in the xccdf_session.
Definition: xccdf_session.c:1519
xccdf_session::xccdf_session_get_profile_id
const char * xccdf_session_get_profile_id(struct xccdf_session *session)
Retrieves ID of the profile that we will evaluate with, or NULL.
Definition: xccdf_session.c:428
xccdf_session::xccdf_session_get_cpe_oval_agents_count
unsigned int xccdf_session_get_cpe_oval_agents_count(const struct xccdf_session *session)
Get count of OVAL agent sessions for CPE in the xccdf_session.
Definition: xccdf_session.c:1528
xccdf_session::session
struct ds_sds_session * session
SDS Registry abstract structure.
Definition: xccdf_session.c:77
xccdf_session::xccdf_session_get_filename
const char * xccdf_session_get_filename(const struct xccdf_session *session)
Retrieves the filename the session was created with.
Definition: xccdf_session.c:282