00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #pragma once
00025 #ifndef _OSCAP_XCCDF_POLICY_PRIV_H
00026 #define _OSCAP_XCCDF_POLICY_PRIV_H
00027
00028 #include "common/util.h"
00029 #include "public/xccdf_policy.h"
00030
00031 OSCAP_HIDDEN_START;
00032
00033
00039 struct xccdf_policy_model {
00040
00041 struct xccdf_benchmark * benchmark;
00042 struct xccdf_tailoring * tailoring;
00043 struct oscap_list * policies;
00044 struct oscap_list * callbacks;
00045 struct oscap_list * engines;
00046
00047 struct cpe_session *cpe;
00048 };
00049
00058 struct xccdf_policy {
00059
00060 struct xccdf_policy_model * model;
00061 struct xccdf_profile * profile;
00062
00063 const char *rule;
00064 int rule_found;
00065 struct oscap_list * selects;
00066 struct oscap_list * values;
00067 struct oscap_list * results;
00068
00070 struct oscap_htable *selected_internal;
00072 struct oscap_htable *selected_final;
00073
00074 struct oscap_htable *refine_rules_internal;
00075 };
00076
00077
00078
00089 int xccdf_policy_resolve_fix_substitution(struct xccdf_policy *policy, struct xccdf_fix *fix, struct xccdf_rule_result *rule_result, struct xccdf_result *test_result);
00090
00102 int xccdf_policy_rule_result_remediate(struct xccdf_policy *policy, struct xccdf_rule_result *rr, struct xccdf_fix *fix, struct xccdf_result *test_result);
00103
00111 int xccdf_policy_check_evaluate(struct xccdf_policy * policy, struct xccdf_check * check);
00112
00119 int xccdf_policy_remediate(struct xccdf_policy *policy, struct xccdf_result *result);
00120
00129 int xccdf_policy_report_cb(struct xccdf_policy *policy, const char *sysname, void *rule);
00130
00137 struct xccdf_benchmark *xccdf_policy_get_benchmark(const struct xccdf_policy *policy);
00138
00139 OSCAP_HIDDEN_END;
00140
00141 #endif