Open SCAP Library

xccdf_policy_priv.h

00001 /*
00002  * Copyright 2013 Red Hat Inc., Durham, North Carolina.
00003  * All Rights Reserved.
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2.1 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public
00016  * License along with this library; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018  *
00019  * Authors:
00020  *   Simon Lukasik <slukasik@redhat.com>
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         /* The hash-table contains the latest refine-rule for specified item-id. */
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines