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
00046 #ifdef ENABLE_XCCDF
00047 #include "xccdf_policy.h"
00048
00053 struct oval_agent_cb_data;
00054
00055 #endif
00056
00057 struct oval_agent_session;
00058
00064 typedef struct oval_agent_session oval_agent_session_t;
00065
00072 typedef int (oval_agent_result_cb_t) (const char *id, int result, void *arg);
00073
00077 oval_agent_session_t * oval_agent_new_session(struct oval_definition_model * model);
00078
00082 oval_result_t oval_agent_eval_definition(oval_agent_session_t * ag_sess, const char *id);
00083
00087 int oval_agent_reset_session(oval_agent_session_t * ag_sess);
00088
00092 int oval_agent_eval_system(oval_agent_session_t * ag_sess, oval_agent_result_cb_t * cb, void *arg);
00093
00097 struct oval_results_model * oval_agent_get_results_model(oval_agent_session_t * ag_sess);
00098
00102 void oval_agent_destroy_session(oval_agent_session_t * ag_sess);
00103
00104
00105 #ifdef ENABLE_XCCDF
00106
00107
00121 struct oval_agent_session * oval_agent_cb_data_get_session(const struct oval_agent_cb_data * data);
00122
00129 oval_agent_result_cb_t * oval_agent_cb_data_get_callback(const struct oval_agent_cb_data * data);
00130
00137 void * oval_agent_cb_data_get_usr(const struct oval_agent_cb_data * data);
00138
00139
00142
00157 bool oval_agent_cb_data_set_session(struct oval_agent_cb_data * data, struct oval_agent_session * session);
00158
00166 bool oval_agent_cb_data_set_callback(struct oval_agent_cb_data * data, oval_agent_result_cb_t * callback, void * usr);
00167
00175 bool oval_agent_cb_data_set_usr(struct oval_agent_cb_data * data, void * usr);
00176
00177
00180
00195 typedef xccdf_test_result_type_t (xccdf_policy_eval_rule_cb_t) (struct xccdf_policy * policy, const char * rule_id,
00196 const char * id, struct xccdf_value_binding_iterator * it, void * usr);
00197
00212 xccdf_test_result_type_t oval_agent_eval_rule (struct xccdf_policy * policy, const char * rule_id,
00213 const char * id, struct xccdf_value_binding_iterator * it, void * usr);
00214
00222 void oval_agent_resolve_variables(struct oval_agent_session * session, struct xccdf_value_binding_iterator *it);
00223
00229 void oval_agent_export_sysinfo_to_xccdf_result(struct oval_agent_session * session, struct xccdf_result * ritem);
00230
00231
00249 struct oval_agent_cb_data * oval_agent_cb_data_new(void);
00250
00256 void oval_agent_cb_data_free(struct oval_agent_cb_data * data);
00257 #endif
00258
00263 #endif