00001
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef OVAL_AGENT_API_H_
00038 #define OVAL_AGENT_API_H_
00039
00040 #include "oval_definitions.h"
00041 #include "oval_system_characteristics.h"
00042 #include "oval_results.h"
00043 #include "oval_variables.h"
00044 #include "oval_probe.h"
00045 #include "reporter.h"
00046
00047 #ifdef ENABLE_XCCDF
00048 #include "xccdf_policy.h"
00049 #endif
00050
00051 struct oval_agent_session;
00052
00058 typedef struct oval_agent_session oval_agent_session_t;
00059
00065 oval_agent_session_t * oval_agent_new_session(struct oval_definition_model * model, const char * name);
00066
00070 oval_result_t oval_agent_eval_definition(oval_agent_session_t * ag_sess, const char *id);
00071
00075 int oval_agent_reset_session(oval_agent_session_t * ag_sess);
00076
00080 int oval_agent_eval_system(oval_agent_session_t * ag_sess, oscap_reporter cb, void *arg);
00081
00085 struct oval_results_model * oval_agent_get_results_model(oval_agent_session_t * ag_sess);
00089 const char * oval_agent_get_filename(oval_agent_session_t * ag_sess);
00090
00094 void oval_agent_destroy_session(oval_agent_session_t * ag_sess);
00095
00096
00097 #ifdef ENABLE_XCCDF
00098
00099
00114 typedef xccdf_test_result_type_t (xccdf_policy_eval_rule_cb_t) (struct xccdf_policy * policy, const char * rule_id,
00115 const char * id, struct xccdf_value_binding_iterator * it, void * usr);
00116
00132 xccdf_test_result_type_t oval_agent_eval_rule (struct xccdf_policy * policy, const char * rule_id,
00133 const char * id, const char * href, struct xccdf_value_binding_iterator * it, void * usr);
00134
00143 int oval_agent_resolve_variables(struct oval_agent_session * session, struct xccdf_value_binding_iterator *it);
00144
00145
00153 bool xccdf_policy_model_register_engine_oval(struct xccdf_policy_model * model, struct oval_agent_session * sess);
00154
00160 void oval_agent_export_sysinfo_to_xccdf_result(struct oval_agent_session * session, struct xccdf_result * ritem);
00161
00162
00165 #endif
00166
00171 #endif