OVALAGENT
[OVAL]

OVAL Agent interface. More...

Data Structures

struct  oval_agent_cb_data
 Handle all callback data that are needed by xccdf_policy_eval_rule_cb_t. More...

Files

file  oval_agent_api.h

Typedefs

typedef struct oval_agent_session oval_agent_session_t
 Agent session consists of connection to system checking engine, definition model, system characteristics model and results model.
typedef int( oval_agent_result_cb_t )(const char *id, int result, void *arg)
 This callback is called after evaluation of each definition.

Functions

oval_agent_session_toval_agent_new_session (struct oval_definition_model *model)
 Create new session for OVAL agent from OVAL definition model.
oval_result_t oval_agent_eval_definition (oval_agent_session_t *ag_sess, const char *id)
 Probe the system and evaluate specified definition.
int oval_agent_reset_session (oval_agent_session_t *ag_sess)
 Clean resuls that were generated in this agent session.
int oval_agent_eval_system (oval_agent_session_t *ag_sess, oval_agent_result_cb_t *cb, void *arg)
 Probe and evaluate all definitions from the content, call the callback functions upon single evaluation.
struct oval_results_modeloval_agent_get_results_model (oval_agent_session_t *ag_sess)
 Get a result model from agent session.
void oval_agent_destroy_session (oval_agent_session_t *ag_sess)
 Finish OVAL agent session.
struct oval_agent_cb_dataoval_agent_cb_data::oval_agent_cb_data_new (void)
 Create new OVAL Agent callback data.
void oval_agent_cb_data::oval_agent_cb_data_free (struct oval_agent_cb_data *data)
 Free function of OVAL Agent callback data.

Evaluators



typedef xccdf_test_result_type_txccdf_policy_eval_rule_cb_t )(struct xccdf_policy *policy, const char *rule_id, const char *id, struct xccdf_value_binding_iterator *it, void *usr)
xccdf_test_result_type_t oval_agent_eval_rule (struct xccdf_policy *policy, const char *rule_id, const char *id, struct xccdf_value_binding_iterator *it, void *usr)
 Internal OVAL Agent Callback that can be used to evaluate XCCDF content.
void oval_agent_resolve_variables (struct oval_agent_session *session, struct xccdf_value_binding_iterator *it)
 Resolve variables from XCCDF Value Bindings and set their values to OVAL Variables.
void oval_agent_export_sysinfo_to_xccdf_result (struct oval_agent_session *session, struct xccdf_result *ritem)
 Transform OVAL Sysinfo into XCCDF Test Result.

Getters

Return value is pointer to structure's member.

Do not free unless you null the pointer in the structure. Use remove function otherwise.



struct oval_agent_sessionoval_agent_cb_data::oval_agent_cb_data_get_session (const struct oval_agent_cb_data *data)
 Get session of OVAL Agent callback data.
oval_agent_result_cb_toval_agent_cb_data::oval_agent_cb_data_get_callback (const struct oval_agent_cb_data *data)
 Get callback of OVAL Agent callback data.
void * oval_agent_cb_data::oval_agent_cb_data_get_usr (const struct oval_agent_cb_data *data)
 Get usr data of OVAL Agent callback data.

Setters

For lists use add functions.

Parameters of set functions are duplicated in memory and need to be freed by caller.



bool oval_agent_cb_data::oval_agent_cb_data_set_session (struct oval_agent_cb_data *data, struct oval_agent_session *session)
 Set the OVAL Agent session to OVAL Agent callback data.
bool oval_agent_cb_data::oval_agent_cb_data_set_callback (struct oval_agent_cb_data *data, oval_agent_result_cb_t *callback, void *usr)
 Set the OVAL Agent Result callback to OVAL Agent callback data.
bool oval_agent_cb_data::oval_agent_cb_data_set_usr (struct oval_agent_cb_data *data, void *usr)
 Set the User data to OVAL Agent callback data.

Detailed Description

OVAL Agent interface.

This is a high level API for system probing and OVAL Definition content evaluation.


Typedef Documentation

This callback is called after evaluation of each definition.

Parameters:
id definition id that was evaluated
result definition result
typedef xccdf_test_result_type_t( xccdf_policy_eval_rule_cb_t)(struct xccdf_policy *policy, const char *rule_id, const char *id, struct xccdf_value_binding_iterator *it, void *usr)
Parameters:
policy XCCDF Policy that is being evaluated
rule_id ID of XCCDF Rule
id ID of OVAL definition
it XCCDF Value Binding iterator with value bindings
usr Void pointer to the user data structure
Returns:
XCCDF test result type of evaluated rule

Function Documentation

void oval_agent_cb_data_free ( struct oval_agent_cb_data data  )  [inherited]

Free function of OVAL Agent callback data.

Parameters:
data OVAL Agent callback data
oval_agent_result_cb_t * oval_agent_cb_data_get_callback ( const struct oval_agent_cb_data data  )  [inherited]

Get callback of OVAL Agent callback data.

Parameters:
data OVAL Agent callback data
Returns:
oval_agent_result_cb_t callback
struct oval_agent_session * oval_agent_cb_data_get_session ( const struct oval_agent_cb_data data  )  [read, inherited]

Get session of OVAL Agent callback data.

Parameters:
data OVAL Agent callback data
Returns:
oval_agent_session structure
void * oval_agent_cb_data_get_usr ( const struct oval_agent_cb_data data  )  [inherited]

Get usr data of OVAL Agent callback data.

Parameters:
data OVAL Agent callback data
Returns:
void pointer to user data structure
struct oval_agent_cb_data * oval_agent_cb_data_new ( void   )  [read, inherited]

Create new OVAL Agent callback data.

Structure:
Example
bool oval_agent_cb_data_set_callback ( struct oval_agent_cb_data data,
oval_agent_result_cb_t callback,
void *  usr 
) [inherited]

Set the OVAL Agent Result callback to OVAL Agent callback data.

Parameters:
data Oval Agent callback data
callback OVAL Agent Result callback
Returns:
Boolean
bool oval_agent_cb_data_set_session ( struct oval_agent_cb_data data,
struct oval_agent_session session 
) [inherited]

Set the OVAL Agent session to OVAL Agent callback data.

Parameters:
data Oval Agent callback data
session OVAL Agent Session
Returns:
Boolean
bool oval_agent_cb_data_set_usr ( struct oval_agent_cb_data data,
void *  usr 
) [inherited]

Set the User data to OVAL Agent callback data.

Parameters:
data Oval Agent callback data
usr User data
Returns:
Boolean
xccdf_test_result_type_t oval_agent_eval_rule ( struct xccdf_policy policy,
const char *  rule_id,
const char *  id,
struct xccdf_value_binding_iterator *  it,
void *  usr 
)

Internal OVAL Agent Callback that can be used to evaluate XCCDF content.

Example
Next example shows common use of this function in evaluation proccess of XCCDF file.
  struct xccdf_benchmark * benchmark = xccdf_benchmark_import(file);
  struct xccdf_policy_model * policy_model = xccdf_policy_model_new(benchmark);
  struct oval_agent_cb_data * usr = oval_agent_cb_data_new();
  ...
  xccdf_policy_model_register_callback(policy_model, "http://oval.mitre.org/XMLSchema/oval-definitions-5", oval_agent_eval_rule, (void *) usr);
void oval_agent_export_sysinfo_to_xccdf_result ( struct oval_agent_session session,
struct xccdf_result ritem 
)

Transform OVAL Sysinfo into XCCDF Test Result.

Parameters:
session OVAL Agent session
ritem XCCDF Result
void oval_agent_resolve_variables ( struct oval_agent_session session,
struct xccdf_value_binding_iterator *  it 
)

Resolve variables from XCCDF Value Bindings and set their values to OVAL Variables.

Parameters:
session OVAL Agent Session
it XCCDF Value Bindng iterator
Example
Example in oval_agent.c in function oval_agent_eval_rule

Generated on 30 Jun 2010 for Open SCAP Library by  doxygen 1.6.1