oval_definitions.h
Go to the documentation of this file.
/*
* Copyright 2009-2013 Red Hat Inc., Durham, North Carolina.
* All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Authors:
* "David Niemoller" <David.Niemoller@g2-inc.com>
*/
#ifndef OVAL_DEFINITIONS
#define OVAL_DEFINITIONS
#include "oval_adt.h"
#include "oval_types.h"
#include "oval_version.h"
#include <stdbool.h>
typedef enum {
OVAL_AFCFML_UNKNOWN = 0,
OVAL_AFCFML_CATOS = 1,
OVAL_AFCFML_IOS = 2,
OVAL_AFCFML_MACOS = 3,
OVAL_AFCFML_PIXOS = 4,
OVAL_AFCFML_UNDEFINED = 5,
OVAL_AFCFML_UNIX = 6,
OVAL_AFCFML_WINDOWS = 7
} oval_affected_family_t;
typedef enum {
OVAL_NODETYPE_UNKNOWN = 0,
OVAL_NODETYPE_CRITERIA = 1,
OVAL_NODETYPE_CRITERION = 2,
OVAL_NODETYPE_EXTENDDEF = 3
} oval_criteria_node_type_t;
typedef enum {
OVAL_OPERATOR_UNKNOWN = 0,
OVAL_OPERATOR_AND = 1,
OVAL_OPERATOR_ONE = 2,
OVAL_OPERATOR_OR = 3,
OVAL_OPERATOR_XOR = 4
} oval_operator_t;
typedef enum {
OVAL_OPERATION_UNKNOWN = 0,
OVAL_OPERATION_BITWISE_AND,
OVAL_OPERATION_BITWISE_OR,
OVAL_OPERATION_CASE_INSENSITIVE_EQUALS,
OVAL_OPERATION_CASE_INSENSITIVE_NOT_EQUAL,
OVAL_OPERATION_EQUALS,
OVAL_OPERATION_GREATER_THAN,
OVAL_OPERATION_GREATER_THAN_OR_EQUAL,
OVAL_OPERATION_LESS_THAN,
OVAL_OPERATION_LESS_THAN_OR_EQUAL,
OVAL_OPERATION_NOT_EQUAL,
OVAL_OPERATION_PATTERN_MATCH,
OVAL_OPERATION_SUBSET_OF,
OVAL_OPERATION_SUPERSET_OF,
} oval_operation_t;
typedef enum {
OVAL_EXISTENCE_UNKNOWN = 0,
OVAL_ALL_EXIST = 1,
OVAL_ANY_EXIST = 2,
OVAL_AT_LEAST_ONE_EXISTS = 3,
OVAL_ONLY_ONE_EXISTS = 4,
OVAL_NONE_EXIST = 5
} oval_existence_t;
typedef enum {
OVAL_CHECK_UNKNOWN = 0,
OVAL_CHECK_ALL = 1,
OVAL_CHECK_AT_LEAST_ONE = 2,
OVAL_CHECK_NONE_EXIST = 3,
OVAL_CHECK_NONE_SATISFY = 4,
OVAL_CHECK_ONLY_ONE = 5
} oval_check_t;
typedef enum {
OVAL_OBJECTCONTENT_UNKNOWN = 0,
OVAL_OBJECTCONTENT_ENTITY = 1,
OVAL_OBJECTCONTENT_SET = 2,
OVAL_OBJECTCONTENT_FILTER = 3
} oval_object_content_type_t;
typedef enum {
OVAL_ENTITY_TYPE_UNKNOWN,
OVAL_ENTITY_TYPE_ANY,
OVAL_ENTITY_TYPE_BINARY,
OVAL_ENTITY_TYPE_BOOLEAN,
OVAL_ENTITY_TYPE_FLOAT,
OVAL_ENTITY_TYPE_INTEGER,
OVAL_ENTITY_TYPE_STRING,
} oval_entity_type_t;
typedef enum {
OVAL_FILTER_ACTION_UNKNOWN = 0,
OVAL_FILTER_ACTION_EXCLUDE,
OVAL_FILTER_ACTION_INCLUDE
} oval_filter_action_t;
typedef enum {
OVAL_DATATYPE_UNKNOWN = 0,
OVAL_DATATYPE_BINARY,
OVAL_DATATYPE_BOOLEAN,
OVAL_DATATYPE_EVR_STRING,
OVAL_DATATYPE_FILESET_REVISION,
OVAL_DATATYPE_FLOAT,
OVAL_DATATYPE_INTEGER,
OVAL_DATATYPE_IOS_VERSION,
OVAL_DATATYPE_IPV4ADDR,
OVAL_DATATYPE_IPV6ADDR,
OVAL_DATATYPE_RECORD,
OVAL_DATATYPE_SEXP,
OVAL_DATATYPE_STRING,
OVAL_DATATYPE_STRING_M,
OVAL_DATATYPE_VERSION,
} oval_datatype_t;
typedef enum {
OVAL_ENTITY_VARREF_UNKNOWN,
OVAL_ENTITY_VARREF_NONE,
OVAL_ENTITY_VARREF_ATTRIBUTE,
OVAL_ENTITY_VARREF_ELEMENT
} oval_entity_varref_type_t;
typedef enum {
OVAL_SET_UNKNOWN,
OVAL_SET_AGGREGATE,
OVAL_SET_COLLECTIVE
} oval_setobject_type_t;
typedef enum {
OVAL_SET_OPERATION_UNKNOWN,
OVAL_SET_OPERATION_COMPLEMENT = 1,
OVAL_SET_OPERATION_INTERSECTION = 2,
OVAL_SET_OPERATION_UNION = 3
} oval_setobject_operation_t;
typedef enum {
OVAL_VARIABLE_UNKNOWN,
OVAL_VARIABLE_EXTERNAL,
OVAL_VARIABLE_CONSTANT,
OVAL_VARIABLE_LOCAL
} oval_variable_type_t;
#define OVAL_FUNCTION 4
typedef enum {
OVAL_COMPONENT_UNKNOWN = 0,
OVAL_COMPONENT_LITERAL = 1,
OVAL_COMPONENT_OBJECTREF = 2,
OVAL_COMPONENT_VARREF = 3,
OVAL_COMPONENT_FUNCTION = 4,
OVAL_FUNCTION_BEGIN = OVAL_FUNCTION + 1,
OVAL_FUNCTION_CONCAT = OVAL_FUNCTION + 2,
OVAL_FUNCTION_END = OVAL_FUNCTION + 3,
OVAL_FUNCTION_SPLIT = OVAL_FUNCTION + 4,
OVAL_FUNCTION_SUBSTRING = OVAL_FUNCTION + 5,
OVAL_FUNCTION_TIMEDIF = OVAL_FUNCTION + 6,
OVAL_FUNCTION_ESCAPE_REGEX = OVAL_FUNCTION + 7,
OVAL_FUNCTION_REGEX_CAPTURE = OVAL_FUNCTION + 8,
OVAL_FUNCTION_ARITHMETIC = OVAL_FUNCTION + 9,
OVAL_FUNCTION_COUNT = OVAL_FUNCTION + 10,
OVAL_FUNCTION_UNIQUE = OVAL_FUNCTION + 11,
OVAL_FUNCTION_LAST = OVAL_FUNCTION + 12
} oval_component_type_t;
typedef enum {
OVAL_ARITHMETIC_UNKNOWN = 0,
OVAL_ARITHMETIC_ADD = 1,
OVAL_ARITHMETIC_MULTIPLY = 2,
OVAL_ARITHMETIC_SUBTRACT = 3, //NOT YET SUPPORTED BY OVAL
OVAL_ARITHMETIC_DIVIDE = 4 //NOT YET SUPPORTED BY OVAL
} oval_arithmetic_operation_t;
typedef enum {
OVAL_DATETIME_UNKNOWN = 0,
OVAL_DATETIME_YEAR_MONTH_DAY = 1,
OVAL_DATETIME_MONTH_DAY_YEAR = 2,
OVAL_DATETIME_DAY_MONTH_YEAR = 3,
OVAL_DATETIME_WIN_FILETIME = 4,
OVAL_DATETIME_SECONDS_SINCE_EPOCH = 5
} oval_datetime_format_t;
typedef enum {
OVAL_RECORD_FIELD_UNKNOWN = 0,
OVAL_RECORD_FIELD_STATE = 1,
OVAL_RECORD_FIELD_ITEM = 2,
} oval_record_field_type_t;
oval_family_t oval_subtype_get_family(oval_subtype_t);
const char *oval_operator_get_text(oval_operator_t);
const char *oval_subtype_get_text(oval_subtype_t);
const char *oval_family_get_text(oval_family_t);
const char *oval_check_get_text(oval_check_t);
const char *oval_existence_get_text(oval_existence_t);
const char *oval_affected_family_get_text(oval_affected_family_t);
const char *oval_datatype_get_text(oval_datatype_t);
oval_datatype_t oval_datatype_from_text(const char *);
const char *oval_operation_get_text(oval_operation_t);
const char *oval_set_operation_get_text(oval_setobject_operation_t);
const char *oval_datetime_format_get_text(oval_datetime_format_t);
const char *oval_arithmetic_operation_get_text(oval_arithmetic_operation_t);
const char *oval_filter_action_get_text(oval_filter_action_t);
struct oval_definition_model;
struct oval_definition;
struct oval_definition_iterator;
struct oval_test;
struct oval_test_iterator;
struct oval_object;
struct oval_object_iterator;
struct oval_state;
struct oval_state_iterator;
struct oval_variable;
struct oval_variable_iterator;
struct oval_affected;
struct oval_affected_iterator;
struct oval_reference;
struct oval_reference_iterator;
struct oval_criteria_node;
struct oval_criteria_node_iterator;
struct oval_object_content;
struct oval_object_content_iterator;
struct oval_behavior;
struct oval_behavior_iterator;
struct oval_state_content;
struct oval_state_content_iterator;
struct oval_value;
struct oval_value_iterator;
struct oval_entity;
struct oval_entity_iterator;
struct oval_record_field;
struct oval_record_field_iterator;
struct oval_setobject;
struct oval_setobject_iterator;
struct oval_filter;
struct oval_filter_iterator;
struct oval_component;
struct oval_component_iterator;
struct oval_generator;
struct oval_generator *oval_generator_new(void);
void oval_generator_free(struct oval_generator *generator);
struct oval_generator *oval_generator_clone(struct oval_generator *old_generator);
char *oval_generator_get_product_name(struct oval_generator *generator);
char *oval_generator_get_product_version(struct oval_generator *generator);
char *oval_generator_get_schema_version(struct oval_generator *generator);
char *oval_generator_get_timestamp(struct oval_generator *generator);
void oval_generator_set_product_name(struct oval_generator *generator, char *product_name);
void oval_generator_set_product_version(struct oval_generator *generator, char *product_version);
void oval_generator_set_schema_version(struct oval_generator *generator, char *schema_version);
void oval_generator_set_timestamp(struct oval_generator *generator, char *timestamp);
struct oval_definition_model *oval_definition_model_new(void);
struct oval_definition_model * oval_definition_model_import(const char *file);
int oval_definition_model_merge(struct oval_definition_model *model, const char *file);
struct oval_definition_model *oval_definition_model_clone(struct oval_definition_model *);
int oval_definition_model_export(struct oval_definition_model *, const char *file);
void oval_definition_model_free(struct oval_definition_model *model);
void oval_definition_model_set_generator(struct oval_definition_model *model, struct oval_generator *generator);
int oval_definition_model_bind_variable_model(struct oval_definition_model *, struct oval_variable_model *);
void oval_definition_model_clear_external_variables(struct oval_definition_model *);
struct oval_generator *oval_definition_model_get_generator(struct oval_definition_model *model);
struct oval_definition *oval_definition_model_get_definition(struct oval_definition_model *, const char *id);
struct oval_test *oval_definition_model_get_test(struct oval_definition_model *model, const char *id);
struct oval_object *oval_definition_model_get_object(struct oval_definition_model *model, const char *id);
struct oval_state *oval_definition_model_get_state(struct oval_definition_model *model, const char *id);
struct oval_variable *oval_definition_model_get_variable(struct oval_definition_model *model, const char *id);
struct oval_definition_iterator *oval_definition_model_get_definitions(struct oval_definition_model *model);
struct oval_test_iterator *oval_definition_model_get_tests(struct oval_definition_model *model);
struct oval_object_iterator *oval_definition_model_get_objects(struct oval_definition_model *model);
struct oval_state_iterator *oval_definition_model_get_states(struct oval_definition_model *model);
struct oval_variable_iterator *oval_definition_model_get_variables(struct oval_definition_model *model);
const char * oval_definition_model_supported(void);
struct oval_variable_model_iterator *oval_definition_model_get_variable_models(struct oval_definition_model *);
struct oval_definition *oval_definition_new(struct oval_definition_model *, const char *id);
struct oval_definition *oval_definition_clone(struct oval_definition_model *new_model, struct oval_definition *old_definition);
void oval_definition_free(struct oval_definition *);
void oval_definition_set_version(struct oval_definition *, int version);
void oval_definition_set_class(struct oval_definition *, oval_definition_class_t);
void oval_definition_set_deprecated(struct oval_definition *, bool deprecated);
void oval_definition_set_title(struct oval_definition *, char *title);
void oval_definition_set_description(struct oval_definition *, char *description);
void oval_definition_add_affected(struct oval_definition *, struct oval_affected *affected);
void oval_definition_add_reference(struct oval_definition *, struct oval_reference *reference);
void oval_definition_add_note(struct oval_definition *, char *note);
void oval_definition_set_criteria(struct oval_definition *, struct oval_criteria_node *criteria);
char *oval_definition_get_id(struct oval_definition *);
int oval_definition_get_version(struct oval_definition *);
oval_definition_class_t oval_definition_get_class(struct oval_definition *);
bool oval_definition_get_deprecated(struct oval_definition *);
char *oval_definition_get_title(struct oval_definition *);
char *oval_definition_get_description(struct oval_definition *);
struct oval_affected_iterator *oval_definition_get_affected(struct oval_definition *);
struct oval_reference_iterator *oval_definition_get_references(struct oval_definition *);
struct oval_string_iterator *oval_definition_get_notes(struct oval_definition *);
struct oval_criteria_node *oval_definition_get_criteria(struct oval_definition *);
bool oval_definition_iterator_has_more(struct oval_definition_iterator *);
struct oval_definition *oval_definition_iterator_next(struct oval_definition_iterator *);
void oval_definition_iterator_free(struct oval_definition_iterator *);
struct oval_test *oval_test_new(struct oval_definition_model *, const char *id);
struct oval_test *oval_test_clone(struct oval_definition_model *new_model, struct oval_test *old_test);
void oval_test_free(struct oval_test *);
void oval_test_set_subtype(struct oval_test *, oval_subtype_t subtype);
void oval_test_add_note(struct oval_test *, char *note);
void oval_test_set_comment(struct oval_test *, char *comment);
void oval_test_set_deprecated(struct oval_test *, bool deprecated);
void oval_test_set_version(struct oval_test *, int version);
void oval_test_set_state_operator(struct oval_test *, oval_operator_t);
void oval_test_set_existence(struct oval_test *, oval_existence_t);
void oval_test_set_check(struct oval_test *, oval_check_t);
void oval_test_set_object(struct oval_test *, struct oval_object *);
void oval_test_add_state(struct oval_test *, struct oval_state *);
oval_family_t oval_test_get_family(struct oval_test *);
oval_subtype_t oval_test_get_subtype(struct oval_test *);
struct oval_string_iterator *oval_test_get_notes(struct oval_test *);
char *oval_test_get_comment(struct oval_test *);
char *oval_test_get_id(struct oval_test *);
bool oval_test_get_deprecated(struct oval_test *);
int oval_test_get_version(struct oval_test *);
oval_operator_t oval_test_get_state_operator(struct oval_test *);
oval_existence_t oval_test_get_existence(struct oval_test *);
oval_check_t oval_test_get_check(struct oval_test *);
struct oval_object *oval_test_get_object(struct oval_test *);
struct oval_state_iterator *oval_test_get_states(struct oval_test *);
bool oval_test_iterator_has_more(struct oval_test_iterator *);
struct oval_test *oval_test_iterator_next(struct oval_test_iterator *);
void oval_test_iterator_free(struct oval_test_iterator *);
struct oval_object *oval_object_new(struct oval_definition_model *, const char *id);
struct oval_object *oval_object_clone(struct oval_definition_model *new_model, struct oval_object *old_object);
void oval_object_free(struct oval_object *);
void oval_object_set_subtype(struct oval_object *, oval_subtype_t subtype);
void oval_object_add_note(struct oval_object *, char *note);
void oval_object_set_comment(struct oval_object *, char *comment);
void oval_object_set_deprecated(struct oval_object *, bool deprecated);
void oval_object_set_version(struct oval_object *, int version);
void oval_object_add_object_content(struct oval_object *, struct oval_object_content *content);
void oval_object_add_behavior(struct oval_object *, struct oval_behavior *behavior);
oval_family_t oval_object_get_family(struct oval_object *);
const char *oval_object_get_name(struct oval_object *);
oval_subtype_t oval_object_get_subtype(struct oval_object *);
struct oval_string_iterator *oval_object_get_notes(struct oval_object *);
char *oval_object_get_comment(struct oval_object *);
char *oval_object_get_id(struct oval_object *);
bool oval_object_get_deprecated(struct oval_object *);
int oval_object_get_version(struct oval_object *);
oval_version_t oval_object_get_schema_version(struct oval_object *object);
struct oval_object_content_iterator *oval_object_get_object_contents(struct oval_object *);
struct oval_behavior_iterator *oval_object_get_behaviors(struct oval_object *);
bool oval_object_iterator_has_more(struct oval_object_iterator *);
struct oval_object *oval_object_iterator_next(struct oval_object_iterator *);
void oval_object_iterator_free(struct oval_object_iterator *);
struct oval_state *oval_state_new(struct oval_definition_model *, const char *id);
struct oval_state *oval_state_clone(struct oval_definition_model *new_model, struct oval_state *old_state);
void oval_state_free(struct oval_state *);
void oval_state_set_subtype(struct oval_state *, oval_subtype_t subtype);
void oval_state_add_note(struct oval_state *, char *note);
void oval_state_set_comment(struct oval_state *, char *comment);
void oval_state_set_deprecated(struct oval_state *, bool deprecated);
void oval_state_set_version(struct oval_state *, int version);
void oval_state_set_operator(struct oval_state *, oval_operator_t);
void oval_state_add_content(struct oval_state *, struct oval_state_content *content);
oval_family_t oval_state_get_family(struct oval_state *);
const char *oval_state_get_name(struct oval_state *);
oval_subtype_t oval_state_get_subtype(struct oval_state *);
struct oval_string_iterator *oval_state_get_notes(struct oval_state *);
char *oval_state_get_comment(struct oval_state *);
char *oval_state_get_id(struct oval_state *);
bool oval_state_get_deprecated(struct oval_state *);
int oval_state_get_version(struct oval_state *);
int oval_state_get_operator(struct oval_state *);
struct oval_state_content_iterator *oval_state_get_contents(struct oval_state *);
bool oval_state_iterator_has_more(struct oval_state_iterator *);
struct oval_state *oval_state_iterator_next(struct oval_state_iterator *);
void oval_state_iterator_free(struct oval_state_iterator *);
struct oval_variable *oval_variable_new(struct oval_definition_model *model, const char *id, oval_variable_type_t type);
struct oval_variable *oval_variable_clone(struct oval_definition_model *new_model, struct oval_variable *old_variable);
void oval_variable_free(struct oval_variable *);
void oval_variable_set_comment(struct oval_variable *, char *comment);
void oval_variable_set_version(struct oval_variable *, int version);
void oval_variable_set_deprecated(struct oval_variable *, bool deprecated);
void oval_variable_set_datatype(struct oval_variable *, oval_datatype_t);
void oval_variable_add_value(struct oval_variable *, struct oval_value *); //type==OVAL_VARIABLE_CONSTANT
void oval_variable_clear_values(struct oval_variable *);
void oval_variable_set_component(struct oval_variable *, struct oval_component *component); //type==OVAL_VARIABLE_LOCAL
char *oval_variable_get_id(struct oval_variable *);
char *oval_variable_get_comment(struct oval_variable *);
int oval_variable_get_version(struct oval_variable *);
bool oval_variable_get_deprecated(struct oval_variable *);
oval_variable_type_t oval_variable_get_type(struct oval_variable *);
oval_datatype_t oval_variable_get_datatype(struct oval_variable *);
struct oval_value_iterator *oval_variable_get_values(struct oval_variable *); //type==OVAL_VARIABLE_CONSTANT
struct oval_component *oval_variable_get_component(struct oval_variable *); //type==OVAL_VARIABLE_LOCAL
const char *oval_component_type_get_text(oval_component_type_t type);
bool oval_variable_iterator_has_more(struct oval_variable_iterator *);
struct oval_variable *oval_variable_iterator_next(struct oval_variable_iterator *);
void oval_variable_iterator_free(struct oval_variable_iterator *);
struct oval_affected *oval_affected_new(struct oval_definition_model *);
struct oval_affected *oval_affected_clone(struct oval_definition_model *new_model, struct oval_affected *old_affected);
void oval_affected_free(struct oval_affected *);
void oval_affected_set_family(struct oval_affected *, oval_affected_family_t family);
void oval_affected_add_platform(struct oval_affected *, char *platform_name);
void oval_affected_add_product(struct oval_affected *, char *product_name);
oval_affected_family_t oval_affected_get_family(struct oval_affected *);
struct oval_string_iterator *oval_affected_get_platforms(struct oval_affected *);
struct oval_string_iterator *oval_affected_get_products(struct oval_affected *);
bool oval_affected_iterator_has_more(struct oval_affected_iterator *);
struct oval_affected *oval_affected_iterator_next(struct oval_affected_iterator *);
void oval_affected_iterator_free(struct oval_affected_iterator *);
struct oval_reference *oval_reference_new(struct oval_definition_model *);
struct oval_reference *oval_reference_clone
(struct oval_definition_model *new_model, struct oval_reference *old_reference);
void oval_reference_free(struct oval_reference *);
void oval_reference_set_source(struct oval_reference *, char *);
void oval_reference_set_id(struct oval_reference *, char *);
void oval_reference_set_url(struct oval_reference *, char *);
char *oval_reference_get_source(struct oval_reference *);
char *oval_reference_get_id(struct oval_reference *);
char *oval_reference_get_url(struct oval_reference *);
bool oval_reference_iterator_has_more(struct oval_reference_iterator *);
struct oval_reference *oval_reference_iterator_next(struct oval_reference_iterator *);
void oval_reference_iterator_free(struct oval_reference_iterator *);
struct oval_criteria_node *oval_criteria_node_new(struct oval_definition_model *, oval_criteria_node_type_t type);
struct oval_criteria_node *oval_criteria_node_clone
(struct oval_definition_model *new_model, struct oval_criteria_node *old_node);
void oval_criteria_node_free(struct oval_criteria_node *);
void oval_criteria_node_set_negate(struct oval_criteria_node *, bool negate);
void oval_criteria_node_set_applicability_check(struct oval_criteria_node *, bool applicability_check);
void oval_criteria_set_node_type(struct oval_criteria_node *node, oval_criteria_node_type_t type);
void oval_criteria_node_set_comment(struct oval_criteria_node *, char *comment);
void oval_criteria_node_set_operator(struct oval_criteria_node *, oval_operator_t op);
void oval_criteria_node_add_subnode(struct oval_criteria_node *, struct oval_criteria_node *node);
void oval_criteria_node_set_test(struct oval_criteria_node *, struct oval_test *);
void oval_criteria_node_set_definition(struct oval_criteria_node *, struct oval_definition *); //type==NODETYPE_EXTENDDEF
oval_criteria_node_type_t oval_criteria_node_get_type(struct oval_criteria_node *);
bool oval_criteria_node_get_negate(struct oval_criteria_node *);
bool oval_criteria_node_get_applicability_check(struct oval_criteria_node *);
char *oval_criteria_node_get_comment(struct oval_criteria_node *);
oval_operator_t oval_criteria_node_get_operator(struct oval_criteria_node *);
struct oval_criteria_node_iterator *oval_criteria_node_get_subnodes(struct oval_criteria_node *);
struct oval_test *oval_criteria_node_get_test(struct oval_criteria_node *);
struct oval_definition *oval_criteria_node_get_definition(struct oval_criteria_node *);
bool oval_criteria_node_iterator_has_more(struct oval_criteria_node_iterator *);
struct oval_criteria_node *oval_criteria_node_iterator_next(struct oval_criteria_node_iterator *);
void oval_criteria_node_iterator_free(struct oval_criteria_node_iterator *);
struct oval_object_content *oval_object_content_new(struct oval_definition_model *model, oval_object_content_type_t type);
struct oval_object_content *oval_object_content_clone
(struct oval_definition_model *new_model, struct oval_object_content *old_content);
void oval_object_content_free(struct oval_object_content *);
void oval_object_content_set_type(struct oval_object_content *, oval_object_content_type_t);
void oval_object_content_set_field_name(struct oval_object_content *, char *);
void oval_object_content_set_entity(struct oval_object_content *, struct oval_entity *); //type == OVAL_OBJECTCONTENT_ENTITY
void oval_object_content_set_varCheck(struct oval_object_content *, oval_check_t); //type == OVAL_OBJECTCONTENT_ENTITY
void oval_object_content_set_setobject(struct oval_object_content *, struct oval_setobject *); //type == OVAL_OBJECTCONTENT_SET
char *oval_object_content_get_field_name(struct oval_object_content *);
oval_object_content_type_t oval_object_content_get_type(struct oval_object_content *);
struct oval_entity *oval_object_content_get_entity(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_ENTITY
oval_check_t oval_object_content_get_varCheck(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_ENTITY
struct oval_setobject *oval_object_content_get_setobject(struct oval_object_content *); //type == OVAL_OBJECTCONTENT_SET
bool oval_object_content_iterator_has_more(struct oval_object_content_iterator *);
struct oval_object_content *oval_object_content_iterator_next(struct oval_object_content_iterator *);
void oval_object_content_iterator_free(struct oval_object_content_iterator *);
struct oval_behavior *oval_behavior_new(struct oval_definition_model *);
struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior);
void oval_behavior_free(struct oval_behavior *);
void oval_behavior_set_keyval(struct oval_behavior *behavior, const char *key, const char *value);
char *oval_behavior_get_key(struct oval_behavior *);
char *oval_behavior_get_value(struct oval_behavior *);
bool oval_behavior_iterator_has_more(struct oval_behavior_iterator *);
struct oval_behavior *oval_behavior_iterator_next(struct oval_behavior_iterator *);
void oval_behavior_iterator_free(struct oval_behavior_iterator *);
struct oval_state_content *oval_state_content_new(struct oval_definition_model *);
struct oval_state_content *oval_state_content_clone (struct oval_definition_model *new_model, struct oval_state_content *old_content);
void oval_state_content_free(struct oval_state_content *);
void oval_state_content_set_entity(struct oval_state_content *, struct oval_entity *);
void oval_state_content_add_record_field(struct oval_state_content *, struct oval_record_field *);
void oval_state_content_set_varcheck(struct oval_state_content *, oval_check_t);
void oval_state_content_set_entcheck(struct oval_state_content *, oval_check_t);
struct oval_entity *oval_state_content_get_entity(struct oval_state_content *);
struct oval_record_field_iterator *oval_state_content_get_record_fields(struct oval_state_content *);
oval_check_t oval_state_content_get_var_check(struct oval_state_content *);
oval_check_t oval_state_content_get_ent_check(struct oval_state_content *);
bool oval_state_content_iterator_has_more(struct oval_state_content_iterator *);
struct oval_state_content *oval_state_content_iterator_next(struct oval_state_content_iterator *);
void oval_state_content_iterator_free(struct oval_state_content_iterator *);
struct oval_value *oval_value_new(oval_datatype_t datatype, char *text_value);
struct oval_value *oval_value_clone(struct oval_value *old_value);
void oval_value_free(struct oval_value *);
void oval_value_set_datatype(struct oval_value *, oval_datatype_t);
oval_datatype_t oval_value_get_datatype(struct oval_value *);
char *oval_value_get_text(struct oval_value *);
unsigned char *oval_value_get_binary(struct oval_value *); //datatype==OVAL_DATATYPE_BINARY
bool oval_value_get_boolean(struct oval_value *); //datatype==OVAL_DATATYPE_BOOLEAN
float oval_value_get_float(struct oval_value *); //datatype==OVAL_DATATYPE_FLOAT
long long oval_value_get_integer(struct oval_value *); //datatype==OVAL_DATATYPE_INTEGER
bool oval_value_iterator_has_more(struct oval_value_iterator *);
struct oval_value *oval_value_iterator_next(struct oval_value_iterator *);
int oval_value_iterator_remaining(struct oval_value_iterator *iterator);
void oval_value_iterator_free(struct oval_value_iterator *);
struct oval_entity *oval_entity_new(struct oval_definition_model *);
struct oval_entity *oval_entity_clone(struct oval_definition_model *model, struct oval_entity *old_entity);
void oval_entity_free(struct oval_entity *);
void oval_entity_set_type(struct oval_entity *, oval_entity_type_t);
void oval_entity_set_datatype(struct oval_entity *, oval_datatype_t);
void oval_entity_set_mask(struct oval_entity *, int);
void oval_entity_set_varref_type(struct oval_entity *, oval_entity_varref_type_t);
void oval_entity_set_variable(struct oval_entity *, struct oval_variable *);
void oval_entity_set_value(struct oval_entity *, struct oval_value *);
void oval_entity_set_name(struct oval_entity *, char *);
void oval_entity_set_operation(struct oval_entity *, oval_operation_t);
char *oval_entity_get_name(struct oval_entity *);
oval_entity_type_t oval_entity_get_type(struct oval_entity *);
oval_datatype_t oval_entity_get_datatype(struct oval_entity *);
oval_operation_t oval_entity_get_operation(struct oval_entity *);
struct oval_variable *oval_entity_get_variable(struct oval_entity *);
struct oval_value *oval_entity_get_value(struct oval_entity *);
int oval_entity_get_mask(struct oval_entity *);
oval_entity_varref_type_t oval_entity_get_varref_type(struct oval_entity *);
bool oval_entity_iterator_has_more(struct oval_entity_iterator *);
struct oval_entity *oval_entity_iterator_next(struct oval_entity_iterator *);
void oval_entity_iterator_free(struct oval_entity_iterator *);
struct oval_record_field *oval_record_field_new(oval_record_field_type_t);
struct oval_record_field *oval_record_field_clone(struct oval_record_field *);
void oval_record_field_free(struct oval_record_field *);
void oval_record_field_set_name(struct oval_record_field *, char *);
void oval_record_field_set_value(struct oval_record_field *, char *);
void oval_record_field_set_datatype(struct oval_record_field *, oval_datatype_t);
void oval_record_field_set_mask(struct oval_record_field *, int);
void oval_record_field_set_operation(struct oval_record_field *, oval_operation_t);
void oval_record_field_set_variable(struct oval_record_field *, struct oval_variable *);
void oval_record_field_set_var_check(struct oval_record_field *, oval_check_t);
void oval_record_field_set_ent_check(struct oval_record_field *, oval_check_t);
oval_record_field_type_t oval_record_field_get_type(struct oval_record_field *);
char *oval_record_field_get_name(struct oval_record_field *);
char *oval_record_field_get_value(struct oval_record_field *);
oval_datatype_t oval_record_field_get_datatype(struct oval_record_field *);
int oval_record_field_get_mask(struct oval_record_field *);
oval_operation_t oval_record_field_get_operation(struct oval_record_field *);
struct oval_variable *oval_record_field_get_variable(struct oval_record_field *);
oval_check_t oval_record_field_get_var_check(struct oval_record_field *);
oval_check_t oval_record_field_get_ent_check(struct oval_record_field *);
bool oval_record_field_iterator_has_more(struct oval_record_field_iterator *);
struct oval_record_field *oval_record_field_iterator_next(struct oval_record_field_iterator *);
void oval_record_field_iterator_free(struct oval_record_field_iterator *);
struct oval_filter *oval_filter_new(struct oval_definition_model *);
void oval_filter_free(struct oval_filter *);
struct oval_filter *oval_filter_clone(struct oval_definition_model *, struct oval_filter *);
void oval_filter_set_state(struct oval_filter *, struct oval_state *);
void oval_filter_set_filter_action(struct oval_filter *, oval_filter_action_t );
struct oval_state *oval_filter_get_state(struct oval_filter *);
oval_filter_action_t oval_filter_get_filter_action(struct oval_filter *);
bool oval_filter_iterator_has_more(struct oval_filter_iterator *);
struct oval_filter *oval_filter_iterator_next(struct oval_filter_iterator *);
void oval_filter_iterator_free(struct oval_filter_iterator *);
struct oval_setobject *oval_setobject_new(struct oval_definition_model *);
struct oval_setobject *oval_setobject_clone(struct oval_definition_model *new_model, struct oval_setobject *old_setobject);
void oval_setobject_free(struct oval_setobject *);
void oval_setobject_set_type(struct oval_setobject *, oval_setobject_type_t);
void oval_setobject_set_operation(struct oval_setobject *, oval_setobject_operation_t);
void oval_setobject_add_subset(struct oval_setobject *, struct oval_setobject *); //type==OVAL_SET_AGGREGATE;
void oval_setobject_add_object(struct oval_setobject *, struct oval_object *); //type==OVAL_SET_COLLECTIVE;
void oval_setobject_add_filter(struct oval_setobject *, struct oval_filter *); //type==OVAL_SET_COLLECTIVE;
oval_setobject_type_t oval_setobject_get_type(struct oval_setobject *);
oval_setobject_operation_t oval_setobject_get_operation(struct oval_setobject *);
struct oval_setobject_iterator *oval_setobject_get_subsets(struct oval_setobject *); //type==OVAL_SET_AGGREGATE;
struct oval_object_iterator *oval_setobject_get_objects(struct oval_setobject *); //type==OVAL_SET_COLLECTIVE;
struct oval_filter_iterator *oval_setobject_get_filters(struct oval_setobject *); //type==OVAL_SET_COLLECTIVE;
bool oval_setobject_iterator_has_more(struct oval_setobject_iterator *);
struct oval_setobject *oval_setobject_iterator_next(struct oval_setobject_iterator *);
void oval_setobject_iterator_free(struct oval_setobject_iterator *);
struct oval_component *oval_component_new(struct oval_definition_model *, oval_component_type_t type);
struct oval_component *oval_component_clone(struct oval_definition_model *new_model,
struct oval_component *old_component);
void oval_component_free(struct oval_component *);
void oval_component_set_type(struct oval_component *component, oval_component_type_t type);
void oval_component_set_object(struct oval_component *, struct oval_object *object);
void oval_component_set_item_field(struct oval_component *, char *);
void oval_component_set_record_field(struct oval_component *, char *);
void oval_component_set_variable(struct oval_component *, struct oval_variable *variable);
void oval_component_add_function_component(struct oval_component *, struct oval_component *); //type==OVAL_COMPONENT_FUNCTION
void oval_component_set_arithmetic_operation(struct oval_component *, oval_arithmetic_operation_t); //type==OVAL_COMPONENT_ARITHMETIC
void oval_component_set_prefix(struct oval_component *, char *); //type==OVAL_COMPONENT_BEGIN
void oval_component_set_suffix(struct oval_component *, char *); //type==OVAL_COMPONENT_END
void oval_component_set_split_delimiter(struct oval_component *, char *); //type==OVAL_COMPONENT_SPLIT
void oval_component_set_substring_start(struct oval_component *, int); //type==OVAL_COMPONENT_SUBSTRING
void oval_component_set_substring_length(struct oval_component *, int); //type==OVAL_COMPONENT_SUBSTRING
void oval_component_set_timedif_format_1(struct oval_component *, oval_datetime_format_t); //type==OVAL_COMPONENT_TIMEDIF
void oval_component_set_timedif_format_2(struct oval_component *, oval_datetime_format_t); //type==OVAL_COMPONENT_TIMEDIF
void oval_component_set_regex_pattern(struct oval_component *, char *); //type==OVAL_COMPONENT_REGEX_CAPTURE
void oval_component_set_literal_value(struct oval_component *, struct oval_value *); //type==OVAL_COMPONENT_LITERAL
oval_component_type_t oval_component_get_type(struct oval_component *);
struct oval_object *oval_component_get_object(struct oval_component *); //type==OVAL_COMPONENT_OBJECTREF
char *oval_component_get_item_field(struct oval_component *);
char *oval_component_get_record_field(struct oval_component *);
struct oval_variable *oval_component_get_variable(struct oval_component *);
struct oval_component_iterator *oval_component_get_function_components(struct oval_component *); //type==OVAL_COMPONENT_FUNCTION
oval_arithmetic_operation_t oval_component_get_arithmetic_operation(struct oval_component *); //type==OVAL_COMPONENT_ARITHMETIC
char *oval_component_get_prefix(struct oval_component *); //type==OVAL_COMPONENT_BEGIN
char *oval_component_get_suffix(struct oval_component *); //type==OVAL_COMPONENT_END
char *oval_component_get_split_delimiter(struct oval_component *); //type==OVAL_COMPONENT_SPLIT
int oval_component_get_substring_start(struct oval_component *); //type==OVAL_COMPONENT_SUBSTRING
int oval_component_get_substring_length(struct oval_component *); //type==OVAL_COMPONENT_SUBSTRING
oval_datetime_format_t oval_component_get_timedif_format_1(struct oval_component *); //type==OVAL_COMPONENT_TIMEDIF
oval_datetime_format_t oval_component_get_timedif_format_2(struct oval_component *); //type==OVAL_COMPONENT_TIMEDIF
char *oval_component_get_regex_pattern(struct oval_component *); //type==OVAL_COMPONENT_REGEX_CAPTURE
struct oval_value *oval_component_get_literal_value(struct oval_component *); //type==OVAL_COMPONENT_LITERAL
bool oval_component_iterator_has_more(struct oval_component_iterator *);
struct oval_component *oval_component_iterator_next(struct oval_component_iterator *);
void oval_component_iterator_free(struct oval_component_iterator *);
int oval_component_iterator_remaining(struct oval_component_iterator *);
char *oval_determine_document_schema_version(const char *, oscap_document_type_t);
#endif