00001
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef OVAL_DEFINITIONS
00040 #define OVAL_DEFINITIONS
00041
00042 #include "oval_types.h"
00043 #include <stdbool.h>
00044
00045
00051 typedef enum {
00052 OVAL_AFCFML_UNKNOWN = 0,
00053 OVAL_AFCFML_CATOS = 1,
00054 OVAL_AFCFML_IOS = 2,
00055 OVAL_AFCFML_MACOS = 3,
00056 OVAL_AFCFML_PIXOS = 4,
00057 OVAL_AFCFML_UNDEFINED = 5,
00058 OVAL_AFCFML_UNIX = 6,
00059 OVAL_AFCFML_WINDOWS = 7
00060 } oval_affected_family_t;
00061
00063 typedef enum {
00064 OVAL_NODETYPE_UNKNOWN = 0,
00065 OVAL_NODETYPE_CRITERIA = 1,
00066 OVAL_NODETYPE_CRITERION = 2,
00067 OVAL_NODETYPE_EXTENDDEF = 3
00068 } oval_criteria_node_type_t;
00069
00071 typedef enum {
00072 OVAL_OPERATOR_UNKNOWN = 0,
00073 OVAL_OPERATOR_AND = 1,
00074 OVAL_OPERATOR_ONE = 2,
00075 OVAL_OPERATOR_OR = 3,
00076 OVAL_OPERATOR_XOR = 4
00077 } oval_operator_t;
00078
00080 typedef enum {
00081 OVAL_OPERATION_UNKNOWN = 0,
00082 OVAL_OPERATION_EQUALS = 1,
00083 OVAL_OPERATION_NOT_EQUAL = 2,
00084 OVAL_OPERATION_CASE_INSENSITIVE_EQUALS = 3,
00085 OVAL_OPERATION_CASE_INSENSITIVE_NOT_EQUAL = 4,
00086 OVAL_OPERATION_GREATER_THAN = 5,
00087 OVAL_OPERATION_LESS_THAN = 6,
00088 OVAL_OPERATION_GREATER_THAN_OR_EQUAL = 7,
00089 OVAL_OPERATION_LESS_THAN_OR_EQUAL = 8,
00090 OVAL_OPERATION_BITWISE_AND = 9,
00091 OVAL_OPERATION_BITWISE_OR = 10,
00092 OVAL_OPERATION_PATTERN_MATCH = 11
00093 } oval_operation_t;
00094
00096 typedef enum { OVAL_CLASS_UNKNOWN = 0, OVAL_CLASS_COMPLIANCE = 1, OVAL_CLASS_INVENTORY = 2, OVAL_CLASS_MISCELLANEOUS = 3, OVAL_CLASS_PATCH = 4, OVAL_CLASS_VULNERABILITY = 5,
00103 } oval_definition_class_t;
00104
00106 typedef enum {
00107 OVAL_EXISTENCE_UNKNOWN = 0,
00108 OVAL_ALL_EXIST = 1,
00109 OVAL_ANY_EXIST = 2,
00110 OVAL_AT_LEAST_ONE_EXISTS = 3,
00111 OVAL_ONLY_ONE_EXISTS = 4,
00112 OVAL_NONE_EXIST = 5
00113 } oval_existence_t;
00114
00116 typedef enum {
00117 OVAL_CHECK_UNKNOWN = 0,
00118 OVAL_CHECK_ALL = 1,
00119 OVAL_CHECK_AT_LEAST_ONE = 2,
00120 OVAL_CHECK_NONE_EXIST = 3,
00121 OVAL_CHECK_NONE_SATISFY = 4,
00122 OVAL_CHECK_ONLY_ONE = 5
00123 } oval_check_t;
00124
00126 typedef enum {
00127 OVAL_OBJECTCONTENT_UNKNOWN = 0,
00128 OVAL_OBJECTCONTENT_ENTITY = 1,
00129 OVAL_OBJECTCONTENT_SET = 2
00130 } oval_object_content_type_t;
00131
00133 typedef enum {
00134 OVAL_ENTITY_TYPE_UNKNOWN,
00135 OVAL_ENTITY_TYPE_ANY,
00136 OVAL_ENTITY_TYPE_BINARY,
00137 OVAL_ENTITY_TYPE_BOOLEAN,
00138 OVAL_ENTITY_TYPE_FLOAT,
00139 OVAL_ENTITY_TYPE_INTEGER,
00140 OVAL_ENTITY_TYPE_STRING,
00141 } oval_entity_type_t;
00142
00144 typedef enum {
00145 OVAL_DATATYPE_UNKNOWN = 0,
00146 OVAL_DATATYPE_BINARY = 1,
00147 OVAL_DATATYPE_BOOLEAN = 2,
00148 OVAL_DATATYPE_EVR_STRING = 3,
00149 OVAL_DATATYPE_FILESET_REVISION = 4,
00150 OVAL_DATATYPE_FLOAT = 5,
00151 OVAL_DATATYPE_IOS_VERSION = 6,
00152 OVAL_DATATYPE_VERSION = 7,
00153 OVAL_DATATYPE_INTEGER = 8,
00154 OVAL_DATATYPE_STRING = 9
00155 } oval_datatype_t;
00156
00158 typedef enum {
00159 OVAL_ENTITY_VARREF_UNKNOWN,
00160 OVAL_ENTITY_VARREF_NONE,
00161 OVAL_ENTITY_VARREF_ATTRIBUTE,
00162 OVAL_ENTITY_VARREF_ELEMENT
00163 } oval_entity_varref_type_t;
00164
00166 typedef enum {
00167 OVAL_SET_UNKNOWN,
00168 OVAL_SET_AGGREGATE,
00169 OVAL_SET_COLLECTIVE
00170 } oval_setobject_type_t;
00171
00173 typedef enum {
00174 OVAL_SET_OPERATION_UNKNOWN,
00175 OVAL_SET_OPERATION_COMPLEMENT = 1,
00176 OVAL_SET_OPERATION_INTERSECTION = 2,
00177 OVAL_SET_OPERATION_UNION = 3
00178 } oval_setobject_operation_t;
00179
00181 typedef enum {
00182 OVAL_VARIABLE_UNKNOWN,
00183 OVAL_VARIABLE_EXTERNAL,
00184 OVAL_VARIABLE_CONSTANT,
00185 OVAL_VARIABLE_LOCAL
00186 } oval_variable_type_t;
00187
00188 #define OVAL_FUNCTION 10
00190 typedef enum {
00191 OVAL_COMPONENT_UNKNOWN = 0,
00192 OVAL_COMPONENT_LITERAL = 1,
00193 OVAL_COMPONENT_OBJECTREF = 2,
00194 OVAL_COMPONENT_VARREF = 3,
00195 OVAL_COMPONENT_FUNCTION = 4,
00196 OVAL_FUNCTION_BEGIN = OVAL_FUNCTION + 1,
00197 OVAL_FUNCTION_CONCAT = OVAL_FUNCTION + 2,
00198 OVAL_FUNCTION_END = OVAL_FUNCTION + 3,
00199 OVAL_FUNCTION_SPLIT = OVAL_FUNCTION + 4,
00200 OVAL_FUNCTION_SUBSTRING = OVAL_FUNCTION + 5,
00201 OVAL_FUNCTION_TIMEDIF = OVAL_FUNCTION + 6,
00202 OVAL_FUNCTION_ESCAPE_REGEX = OVAL_FUNCTION + 7,
00203 OVAL_FUNCTION_REGEX_CAPTURE = OVAL_FUNCTION + 8,
00204 OVAL_FUNCTION_ARITHMETIC = OVAL_FUNCTION + 9
00205 } oval_component_type_t;
00206
00208 typedef enum {
00209 OVAL_ARITHMETIC_UNKNOWN = 0,
00210 OVAL_ARITHMETIC_ADD = 1,
00211 OVAL_ARITHMETIC_MULTIPLY = 2,
00212 OVAL_ARITHMETIC_SUBTRACT = 3,
00213 OVAL_ARITHMETIC_DIVIDE = 4
00214 } oval_arithmetic_operation_t;
00215
00217 typedef enum {
00218 OVAL_DATETIME_UNKNOWN = 0,
00219 OVAL_DATETIME_YEAR_MONTH_DAY = 1,
00220 OVAL_DATETIME_MONTH_DAY_YEAR = 2,
00221 OVAL_DATETIME_DAY_MONTH_YEAR = 3,
00222 OVAL_DATETIME_WIN_FILETIME = 4,
00223 OVAL_DATETIME_SECONDS_SINCE_EPOCH = 5
00224 } oval_datetime_format_t;
00225
00226
00230 oval_family_t oval_subtype_get_family(oval_subtype_t);
00231 const char *oval_operator_get_text(oval_operator_t);
00232 const char *oval_subtype_get_text(oval_subtype_t);
00233 const char *oval_family_get_text(oval_family_t);
00234 const char *oval_check_get_text(oval_check_t);
00235 const char *oval_existence_get_text(oval_existence_t);
00236 const char *oval_affected_family_get_text(oval_affected_family_t);
00237 const char *oval_datatype_get_text(oval_datatype_t);
00238 const char *oval_operation_get_text(oval_operation_t);
00239 const char *oval_set_operation_get_text(oval_setobject_operation_t);
00240 const char *oval_datetime_format_get_text(oval_datetime_format_t);
00241 const char *oval_arithmetic_operation_get_text(oval_arithmetic_operation_t);
00242
00243
00248 struct oval_definition_model;
00249
00256 struct oval_definition;
00261 struct oval_definition_iterator;
00267 struct oval_test;
00272 struct oval_test_iterator;
00281 struct oval_object;
00286 struct oval_object_iterator;
00293 struct oval_state;
00298 struct oval_state_iterator;
00313 struct oval_variable;
00318 struct oval_variable_iterator;
00339 struct oval_affected;
00344 struct oval_affected_iterator;
00352 struct oval_reference;
00357 struct oval_reference_iterator;
00366 struct oval_criteria_node;
00371 struct oval_criteria_node_iterator;
00376 struct oval_object_content;
00381 struct oval_object_content_iterator;
00386 struct oval_behavior;
00391 struct oval_behavior_iterator;
00396 struct oval_state_content;
00401 struct oval_state_content_iterator;
00406 struct oval_value;
00411 struct oval_value_iterator;
00416 struct oval_entity;
00420 struct oval_entity_iterator;
00425 struct oval_setobject;
00430 struct oval_setobject_iterator;
00528 struct oval_component;
00533 struct oval_component_iterator;
00543 struct oval_string_iterator;
00544
00549 struct oval_definition_model *oval_definition_model_new(void);
00556 struct oval_definition_model * oval_definition_model_import(const char *file);
00557
00566 int oval_definition_model_merge(struct oval_definition_model *model, const char *file);
00567
00573 struct oval_definition_model *oval_definition_model_clone(struct oval_definition_model *);
00579 int oval_definition_model_export(struct oval_definition_model *, const char *file);
00584 void oval_definition_model_free(struct oval_definition_model *model);
00585
00594 void oval_definition_model_bind_variable_model(struct oval_definition_model *, struct oval_variable_model *);
00595
00596 void oval_definition_model_clear_external_variables(struct oval_definition_model *);
00600 void oval_definition_model_add_definition(struct oval_definition_model *, struct oval_definition *);
00604 void oval_definition_model_add_test(struct oval_definition_model *, struct oval_test *);
00608 void oval_definition_model_add_object(struct oval_definition_model *, struct oval_object *);
00612 void oval_definition_model_add_state(struct oval_definition_model *, struct oval_state *);
00616 void oval_definition_model_add_variable(struct oval_definition_model *, struct oval_variable *);
00623 void oval_definition_model_lock(struct oval_definition_model *definition_model);
00637 struct oval_definition *oval_definition_model_get_definition(struct oval_definition_model *, const char *id);
00646 struct oval_test *oval_definition_model_get_test(struct oval_definition_model *model, const char *id);
00655 struct oval_object *oval_definition_model_get_object(struct oval_definition_model *model, const char *id);
00664 struct oval_state *oval_definition_model_get_state(struct oval_definition_model *model, const char *id);
00673 struct oval_variable *oval_definition_model_get_variable(struct oval_definition_model *model, const char *id);
00678 struct oval_definition_iterator *oval_definition_model_get_definitions(struct oval_definition_model *model);
00685 struct oval_test_iterator *oval_definition_model_get_tests(struct oval_definition_model *model);
00692 struct oval_object_iterator *oval_definition_model_get_objects(struct oval_definition_model *model);
00699 struct oval_state_iterator *oval_definition_model_get_states(struct oval_definition_model *model);
00706 struct oval_variable_iterator *oval_definition_model_get_variables(struct oval_definition_model *model);
00712 bool oval_definition_model_is_locked(struct oval_definition_model *definition_model);
00713
00719 const char * oval_definition_model_supported(void);
00736 bool oval_definition_model_is_valid(struct oval_definition_model *definition_model);
00755 struct oval_definition *oval_definition_new(struct oval_definition_model *, const char *id);
00756
00762 struct oval_definition *oval_definition_clone(struct oval_definition_model *new_model, struct oval_definition *old_definition);
00763
00773 void oval_definition_free(struct oval_definition *);
00774
00786 void oval_definition_set_version(struct oval_definition *, int version);
00794 void oval_definition_set_class(struct oval_definition *, oval_definition_class_t);
00800 void oval_definition_set_deprecated(struct oval_definition *, bool deprecated);
00808 void oval_definition_set_title(struct oval_definition *, char *title);
00816 void oval_definition_set_description(struct oval_definition *, char *description);
00827 void oval_definition_add_affected(struct oval_definition *, struct oval_affected *affected);
00838 void oval_definition_add_reference(struct oval_definition *, struct oval_reference *reference);
00844 void oval_definition_add_note(struct oval_definition *, char *note);
00858 void oval_definition_set_criteria(struct oval_definition *, struct oval_criteria_node *criteria);
00869 char *oval_definition_get_id(struct oval_definition *);
00875 int oval_definition_get_version(struct oval_definition *);
00880 oval_definition_class_t oval_definition_get_class(struct oval_definition *);
00885 bool oval_definition_get_deprecated(struct oval_definition *);
00891 char *oval_definition_get_title(struct oval_definition *);
00897 char *oval_definition_get_description(struct oval_definition *);
00904 struct oval_affected_iterator *oval_definition_get_affected(struct oval_definition *);
00911 struct oval_reference_iterator *oval_definition_get_references(struct oval_definition *);
00918 struct oval_string_iterator *oval_definition_get_notes(struct oval_definition *);
00924 struct oval_criteria_node *oval_definition_get_criteria(struct oval_definition *);
00930 bool oval_definition_is_locked(struct oval_definition *definition);
00931
00944 bool oval_definition_is_valid(struct oval_definition *definition);
00955 bool oval_definition_iterator_has_more(struct oval_definition_iterator *);
00961 struct oval_definition *oval_definition_iterator_next(struct oval_definition_iterator *);
00966 void oval_definition_iterator_free(struct oval_definition_iterator *);
00989 struct oval_test *oval_test_new(struct oval_definition_model *, const char *id);
00995 struct oval_test *oval_test_clone(struct oval_definition_model *new_model, struct oval_test *old_test);
01000 void oval_test_free(struct oval_test *);
01001
01015 void oval_test_set_subtype(struct oval_test *, oval_subtype_t subtype);
01021 void oval_test_add_note(struct oval_test *, char *note);
01027 void oval_test_set_comment(struct oval_test *, char *comment);
01032 void oval_test_set_deprecated(struct oval_test *, bool deprecated);
01041 void oval_test_set_version(struct oval_test *, int version);
01050 void oval_test_set_existence(struct oval_test *, oval_existence_t);
01060 void oval_test_set_check(struct oval_test *, oval_check_t);
01069 void oval_test_set_object(struct oval_test *, struct oval_object *);
01078 void oval_test_set_state(struct oval_test *, struct oval_state *state);
01089 oval_family_t oval_test_get_family(struct oval_test *);
01094 oval_subtype_t oval_test_get_subtype(struct oval_test *);
01101 struct oval_string_iterator *oval_test_get_notes(struct oval_test *);
01107 char *oval_test_get_comment(struct oval_test *);
01113 char *oval_test_get_id(struct oval_test *);
01118 bool oval_test_get_deprecated(struct oval_test *);
01123 int oval_test_get_version(struct oval_test *);
01128 oval_existence_t oval_test_get_existence(struct oval_test *);
01133 oval_check_t oval_test_get_check(struct oval_test *);
01139 struct oval_object *oval_test_get_object(struct oval_test *);
01145 struct oval_state *oval_test_get_state(struct oval_test *);
01151 bool oval_test_is_locked(struct oval_test *test);
01152
01168 bool oval_test_is_valid(struct oval_test *);
01179 bool oval_test_iterator_has_more(struct oval_test_iterator *);
01184 struct oval_test *oval_test_iterator_next(struct oval_test_iterator *);
01189 void oval_test_iterator_free(struct oval_test_iterator *);
01210 struct oval_object *oval_object_new(struct oval_definition_model *, const char *id);
01216 struct oval_object *oval_object_clone(struct oval_definition_model *new_model, struct oval_object *old_object);
01221 void oval_object_free(struct oval_object *);
01222
01236 void oval_object_set_subtype(struct oval_object *, oval_subtype_t subtype);
01242 void oval_object_add_note(struct oval_object *, char *note);
01243
01249 void oval_object_set_comment(struct oval_object *, char *comment);
01250
01255 void oval_object_set_deprecated(struct oval_object *, bool deprecated);
01264 void oval_object_set_version(struct oval_object *, int version);
01277 void oval_object_add_object_content(struct oval_object *, struct oval_object_content *content);
01290 void oval_object_add_behavior(struct oval_object *, struct oval_behavior *behavior);
01301 oval_family_t oval_object_get_family(struct oval_object *);
01307 const char *oval_object_get_name(struct oval_object *);
01312 oval_subtype_t oval_object_get_subtype(struct oval_object *);
01319 struct oval_string_iterator *oval_object_get_notes(struct oval_object *);
01325 char *oval_object_get_comment(struct oval_object *);
01331 char *oval_object_get_id(struct oval_object *);
01332
01337 bool oval_object_get_deprecated(struct oval_object *);
01342 int oval_object_get_version(struct oval_object *);
01349 struct oval_object_content_iterator *oval_object_get_object_contents(struct oval_object *);
01356 struct oval_behavior_iterator *oval_object_get_behaviors(struct oval_object *);
01362 bool oval_object_is_locked(struct oval_object *object);
01376 bool oval_object_is_valid(struct oval_object *object);
01387 bool oval_object_iterator_has_more(struct oval_object_iterator *);
01392 struct oval_object *oval_object_iterator_next(struct oval_object_iterator *);
01397 void oval_object_iterator_free(struct oval_object_iterator *);
01418 struct oval_state *oval_state_new(struct oval_definition_model *, const char *id);
01424 struct oval_state *oval_state_clone(struct oval_definition_model *new_model, struct oval_state *old_state);
01429 void oval_state_free(struct oval_state *);
01430
01444 void oval_state_set_subtype(struct oval_state *, oval_subtype_t subtype);
01450 void oval_state_add_note(struct oval_state *, char *note);
01456 void oval_state_set_comment(struct oval_state *, char *comment);
01461 void oval_state_set_deprecated(struct oval_state *, bool deprecated);
01470 void oval_state_set_version(struct oval_state *, int version);
01475 void oval_state_set_operator(struct oval_state *, oval_operator_t);
01488 void oval_state_add_content(struct oval_state *, struct oval_state_content *content);
01499 oval_family_t oval_state_get_family(struct oval_state *);
01505 const char *oval_state_get_name(struct oval_state *);
01510 oval_subtype_t oval_state_get_subtype(struct oval_state *);
01517 struct oval_string_iterator *oval_state_get_notes(struct oval_state *);
01523 char *oval_state_get_comment(struct oval_state *);
01529 char *oval_state_get_id(struct oval_state *);
01534 bool oval_state_get_deprecated(struct oval_state *);
01539 int oval_state_get_version(struct oval_state *);
01544 int oval_state_get_operator(struct oval_state *);
01551 struct oval_state_content_iterator *oval_state_get_contents(struct oval_state *);
01557 bool oval_state_is_locked(struct oval_state *state);
01568 bool oval_state_iterator_has_more(struct oval_state_iterator *);
01573 struct oval_state *oval_state_iterator_next(struct oval_state_iterator *);
01578 void oval_state_iterator_free(struct oval_state_iterator *);
01591 bool oval_state_is_valid(struct oval_state *state);
01618 struct oval_variable *oval_variable_new(struct oval_definition_model *model, const char *id, oval_variable_type_t type);
01624 struct oval_variable *oval_variable_clone(struct oval_definition_model *new_model, struct oval_variable *old_variable);
01629 void oval_variable_free(struct oval_variable *);
01630
01642 void oval_variable_set_comment(struct oval_variable *, char *comment);
01650 void oval_variable_set_version(struct oval_variable *, int version);
01656 void oval_variable_set_deprecated(struct oval_variable *, bool deprecated);
01664 void oval_variable_set_datatype(struct oval_variable *, oval_datatype_t);
01678 void oval_variable_add_value(struct oval_variable *, struct oval_value *);
01679
01680 void oval_variable_clear_values(struct oval_variable *);
01693 void oval_variable_set_component(struct oval_variable *, struct oval_component *component);
01705 char *oval_variable_get_id(struct oval_variable *);
01711 char *oval_variable_get_comment(struct oval_variable *);
01716 int oval_variable_get_version(struct oval_variable *);
01721 bool oval_variable_get_deprecated(struct oval_variable *);
01726 oval_variable_type_t oval_variable_get_type(struct oval_variable *);
01731 oval_datatype_t oval_variable_get_datatype(struct oval_variable *);
01739 struct oval_value_iterator *oval_variable_get_values(struct oval_variable *);
01746 struct oval_component *oval_variable_get_component(struct oval_variable *);
01751 const char *oval_component_type_get_text(oval_component_type_t type);
01757 bool oval_variable_is_locked(struct oval_variable *variable);
01768 bool oval_variable_iterator_has_more(struct oval_variable_iterator *);
01773 struct oval_variable *oval_variable_iterator_next(struct oval_variable_iterator *);
01778 void oval_variable_iterator_free(struct oval_variable_iterator *);
01799 bool oval_variable_is_valid(struct oval_variable *);
01806 struct oval_affected *oval_affected_new(struct oval_definition_model *);
01812 struct oval_affected *oval_affected_clone(struct oval_definition_model *new_model, struct oval_affected *old_affected);
01817 void oval_affected_free(struct oval_affected *);
01818
01827 void oval_affected_set_family(struct oval_affected *, oval_affected_family_t family);
01832 void oval_affected_add_platform(struct oval_affected *, char *platform_name);
01837 void oval_affected_add_product(struct oval_affected *, char *product_name);
01850 oval_affected_family_t oval_affected_get_family(struct oval_affected *);
01858 struct oval_string_iterator *oval_affected_get_platforms(struct oval_affected *);
01866 struct oval_string_iterator *oval_affected_get_products(struct oval_affected *);
01872 bool oval_affected_is_locked(struct oval_affected *);
01883 bool oval_affected_is_valid(struct oval_affected *);
01894 bool oval_affected_iterator_has_more(struct oval_affected_iterator *);
01899 struct oval_affected *oval_affected_iterator_next(struct oval_affected_iterator *);
01904 void oval_affected_iterator_free(struct oval_affected_iterator *);
01910 struct oval_reference *oval_reference_new(struct oval_definition_model *);
01915 struct oval_reference *oval_reference_clone
01916 (struct oval_definition_model *new_model, struct oval_reference *old_reference);
01920 void oval_reference_free(struct oval_reference *);
01921
01931 void oval_reference_set_source(struct oval_reference *, char *);
01935 void oval_reference_set_id(struct oval_reference *, char *);
01939 void oval_reference_set_url(struct oval_reference *, char *);
01951 char *oval_reference_get_source(struct oval_reference *);
01957 char *oval_reference_get_id(struct oval_reference *);
01963 char *oval_reference_get_url(struct oval_reference *);
01969 bool oval_reference_is_locked(struct oval_reference *reference);
01979 bool oval_reference_iterator_has_more(struct oval_reference_iterator *);
01983 struct oval_reference *oval_reference_iterator_next(struct oval_reference_iterator *);
01987 void oval_reference_iterator_free(struct oval_reference_iterator *);
01998 bool oval_reference_is_valid(struct oval_reference *reference);
02021 struct oval_criteria_node *oval_criteria_node_new(struct oval_definition_model *, oval_criteria_node_type_t type);
02027 struct oval_criteria_node *oval_criteria_node_clone
02028 (struct oval_definition_model *new_model, struct oval_criteria_node *old_node);
02033 void oval_criteria_node_free(struct oval_criteria_node *);
02034
02044 void oval_criteria_node_set_negate(struct oval_criteria_node *, bool negate);
02050 void oval_criteria_set_node_type(struct oval_criteria_node *node, oval_criteria_node_type_t type);
02056 void oval_criteria_node_set_comment(struct oval_criteria_node *, char *comment);
02064 void oval_criteria_node_set_operator(struct oval_criteria_node *, oval_operator_t op);
02075 void oval_criteria_node_add_subnode(struct oval_criteria_node *, struct oval_criteria_node *node);
02083 void oval_criteria_node_set_test(struct oval_criteria_node *, struct oval_test *);
02091 void oval_criteria_node_set_definition(struct oval_criteria_node *, struct oval_definition *);
02102 oval_criteria_node_type_t oval_criteria_node_get_type(struct oval_criteria_node *);
02107 bool oval_criteria_node_get_negate(struct oval_criteria_node *);
02113 char *oval_criteria_node_get_comment(struct oval_criteria_node *);
02119 oval_operator_t oval_criteria_node_get_operator(struct oval_criteria_node *);
02127 struct oval_criteria_node_iterator *oval_criteria_node_get_subnodes(struct oval_criteria_node *);
02134 struct oval_test *oval_criteria_node_get_test(struct oval_criteria_node *);
02141 struct oval_definition *oval_criteria_node_get_definition(struct oval_criteria_node *);
02147 bool oval_criteria_node_is_locked(struct oval_criteria_node *);
02158 bool oval_criteria_node_iterator_has_more(struct oval_criteria_node_iterator *);
02164 struct oval_criteria_node *oval_criteria_node_iterator_next(struct oval_criteria_node_iterator *);
02169 void oval_criteria_node_iterator_free(struct oval_criteria_node_iterator *);
02188 bool oval_criteria_node_is_valid(struct oval_criteria_node *);
02194 struct oval_object_content *oval_object_content_new(struct oval_definition_model *model, oval_object_content_type_t type);
02195
02200 struct oval_object_content *oval_object_content_clone
02201 (struct oval_definition_model *new_model, struct oval_object_content *old_content);
02202
02206 void oval_object_content_free(struct oval_object_content *);
02207
02216 void oval_object_content_set_type(struct oval_object_content *, oval_object_content_type_t);
02220 void oval_object_content_set_field_name(struct oval_object_content *, char *);
02224 void oval_object_content_set_entity(struct oval_object_content *, struct oval_entity *);
02228 void oval_object_content_set_varCheck(struct oval_object_content *, oval_check_t);
02232 void oval_object_content_set_setobject(struct oval_object_content *, struct oval_setobject *);
02244 char *oval_object_content_get_field_name(struct oval_object_content *);
02249 oval_object_content_type_t oval_object_content_get_type(struct oval_object_content *);
02255 struct oval_entity *oval_object_content_get_entity(struct oval_object_content *);
02260 oval_check_t oval_object_content_get_varCheck(struct oval_object_content *);
02266 struct oval_setobject *oval_object_content_get_setobject(struct oval_object_content *);
02272 bool oval_object_content_is_locked(struct oval_object_content *object_content);
02282 bool oval_object_content_iterator_has_more(struct oval_object_content_iterator *);
02286 struct oval_object_content *oval_object_content_iterator_next(struct oval_object_content_iterator *);
02290 void oval_object_content_iterator_free(struct oval_object_content_iterator *);
02306 bool oval_object_content_is_valid(struct oval_object_content *object_content);
02312 struct oval_behavior *oval_behavior_new(struct oval_definition_model *);
02313
02318 struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior);
02322 void oval_behavior_free(struct oval_behavior *);
02323
02331 void oval_behavior_set_keyval(struct oval_behavior *behavior, const char *key, const char *value);
02343 char *oval_behavior_get_key(struct oval_behavior *);
02349 char *oval_behavior_get_value(struct oval_behavior *);
02355 bool oval_behavior_is_locked(struct oval_behavior *behavior);
02365 bool oval_behavior_iterator_has_more(struct oval_behavior_iterator *);
02369 struct oval_behavior *oval_behavior_iterator_next(struct oval_behavior_iterator *);
02373 void oval_behavior_iterator_free(struct oval_behavior_iterator *);
02384 bool oval_behavior_is_valid(struct oval_behavior *behavior);
02390 struct oval_state_content *oval_state_content_new(struct oval_definition_model *);
02395 struct oval_state_content *oval_state_content_clone (struct oval_definition_model *new_model, struct oval_state_content *old_content);
02399 void oval_state_content_free(struct oval_state_content *);
02400
02408 void oval_state_content_set_entity(struct oval_state_content *, struct oval_entity *);
02412 void oval_state_content_set_varcheck(struct oval_state_content *, oval_check_t);
02416 void oval_state_content_set_entcheck(struct oval_state_content *, oval_check_t);
02428 struct oval_entity *oval_state_content_get_entity(struct oval_state_content *);
02433 oval_check_t oval_state_content_get_var_check(struct oval_state_content *);
02438 oval_check_t oval_state_content_get_ent_check(struct oval_state_content *);
02444 bool oval_state_content_is_locked(struct oval_state_content *);
02455 bool oval_state_content_iterator_has_more(struct oval_state_content_iterator *);
02459 struct oval_state_content *oval_state_content_iterator_next(struct oval_state_content_iterator *);
02463 void oval_state_content_iterator_free(struct oval_state_content_iterator *);
02469 struct oval_value *oval_value_new(oval_datatype_t datatype, char *text_value);
02474 struct oval_value *oval_value_clone(struct oval_value *old_value);
02478 void oval_value_free(struct oval_value *);
02479
02488 oval_datatype_t oval_value_get_datatype(struct oval_value *);
02494 char *oval_value_get_text(struct oval_value *);
02499 unsigned char *oval_value_get_binary(struct oval_value *);
02504 bool oval_value_get_boolean(struct oval_value *);
02509 float oval_value_get_float(struct oval_value *);
02514 long oval_value_get_integer(struct oval_value *);
02520 bool oval_value_is_locked(struct oval_value *value);
02530 bool oval_value_iterator_has_more(struct oval_value_iterator *);
02534 struct oval_value *oval_value_iterator_next(struct oval_value_iterator *);
02538 int oval_value_iterator_remaining(struct oval_value_iterator *iterator);
02542 void oval_value_iterator_free(struct oval_value_iterator *);
02553 bool oval_value_is_valid(struct oval_value *value);
02559 struct oval_entity *oval_entity_new(struct oval_definition_model *);
02564 struct oval_entity *oval_entity_clone(struct oval_definition_model *model, struct oval_entity *old_entity);
02568 void oval_entity_free(struct oval_entity *);
02569
02577 void oval_entity_set_type(struct oval_entity *, oval_entity_type_t);
02581 void oval_entity_set_datatype(struct oval_entity *, oval_datatype_t);
02585 void oval_entity_set_mask(struct oval_entity *, int);
02589 void oval_entity_set_varref_type(struct oval_entity *, oval_entity_varref_type_t);
02593 void oval_entity_set_variable(struct oval_entity *, struct oval_variable *);
02597 void oval_entity_set_value(struct oval_entity *, struct oval_value *);
02601 void oval_entity_set_name(struct oval_entity *, char *);
02605 void oval_entity_set_operation(struct oval_entity *, oval_operation_t);
02617 char *oval_entity_get_name(struct oval_entity *);
02622 oval_entity_type_t oval_entity_get_type(struct oval_entity *);
02627 oval_datatype_t oval_entity_get_datatype(struct oval_entity *);
02632 oval_operation_t oval_entity_get_operation(struct oval_entity *);
02638 struct oval_variable *oval_entity_get_variable(struct oval_entity *);
02644 struct oval_value *oval_entity_get_value(struct oval_entity *);
02649 int oval_entity_get_mask(struct oval_entity *);
02654 oval_entity_varref_type_t oval_entity_get_varref_type(struct oval_entity *);
02660 bool oval_entity_is_locked(struct oval_entity *entity);
02670 bool oval_entity_iterator_has_more(struct oval_entity_iterator *);
02674 struct oval_entity *oval_entity_iterator_next(struct oval_entity_iterator *);
02678 void oval_entity_iterator_free(struct oval_entity_iterator *);
02689 bool oval_entity_is_valid(struct oval_entity *entity);
02695 struct oval_setobject *oval_setobject_new(struct oval_definition_model *);
02700 struct oval_setobject *oval_setobject_clone(struct oval_definition_model *new_model, struct oval_setobject *old_setobject);
02704 void oval_setobject_free(struct oval_setobject *);
02705
02712 void oval_setobject_set_type(struct oval_setobject *, oval_setobject_type_t);
02716 void oval_setobject_set_operation(struct oval_setobject *, oval_setobject_operation_t);
02720 void oval_setobject_add_subset(struct oval_setobject *, struct oval_setobject *);
02724 void oval_setobject_add_object(struct oval_setobject *, struct oval_object *);
02728 void oval_setobject_add_filter(struct oval_setobject *, struct oval_state *);
02739 oval_setobject_type_t oval_setobject_get_type(struct oval_setobject *);
02744 oval_setobject_operation_t oval_setobject_get_operation(struct oval_setobject *);
02752 struct oval_setobject_iterator *oval_setobject_get_subsets(struct oval_setobject *);
02760 struct oval_object_iterator *oval_setobject_get_objects(struct oval_setobject *);
02768 struct oval_state_iterator *oval_setobject_get_filters(struct oval_setobject *);
02774 bool oval_setobject_is_locked(struct oval_setobject *setobject);
02784 bool oval_setobject_iterator_has_more(struct oval_setobject_iterator *);
02788 struct oval_setobject *oval_setobject_iterator_next(struct oval_setobject_iterator *);
02792 void oval_setobject_iterator_free(struct oval_setobject_iterator *);
02812 bool oval_setobject_is_valid(struct oval_setobject *setobject);
02856 struct oval_component *oval_component_new(struct oval_definition_model *, oval_component_type_t type);
02862 struct oval_component *oval_component_clone(struct oval_definition_model *new_model,
02863 struct oval_component *old_component);
02868 void oval_component_free(struct oval_component *);
02869
02878 void oval_component_set_type(struct oval_component *component, oval_component_type_t type);
02884 void oval_component_set_object(struct oval_component *, struct oval_object *object);
02891 void oval_component_set_object_field(struct oval_component *, char *field);
02897 void oval_component_set_variable(struct oval_component *, struct oval_variable *variable);
02904 void oval_component_add_function_component(struct oval_component *, struct oval_component *);
02908 void oval_component_set_arithmetic_operation(struct oval_component *, oval_arithmetic_operation_t);
02912 void oval_component_set_prefix(struct oval_component *, char *);
02916 void oval_component_set_suffix(struct oval_component *, char *);
02920 void oval_component_set_split_delimiter(struct oval_component *, char *);
02924 void oval_component_set_substring_start(struct oval_component *, int);
02928 void oval_component_set_substring_length(struct oval_component *, int);
02932 void oval_component_set_timedif_format_1(struct oval_component *, oval_datetime_format_t);
02936 void oval_component_set_timedif_format_2(struct oval_component *, oval_datetime_format_t);
02940 void oval_component_set_regex_pattern(struct oval_component *, char *);
02944 void oval_component_set_literal_value(struct oval_component *, struct oval_value *);
02955 oval_component_type_t oval_component_get_type(struct oval_component *);
02963 struct oval_object *oval_component_get_object(struct oval_component *);
02971 char *oval_component_get_object_field(struct oval_component *);
02979 struct oval_variable *oval_component_get_variable(struct oval_component *);
02987 struct oval_component_iterator *oval_component_get_function_components(struct oval_component *);
02993 oval_arithmetic_operation_t oval_component_get_arithmetic_operation(struct oval_component *);
03001 char *oval_component_get_prefix(struct oval_component *);
03009 char *oval_component_get_suffix(struct oval_component *);
03017 char *oval_component_get_split_delimiter(struct oval_component *);
03023 int oval_component_get_substring_start(struct oval_component *);
03029 int oval_component_get_substring_length(struct oval_component *);
03035 oval_datetime_format_t oval_component_get_timedif_format_1(struct oval_component *);
03041 oval_datetime_format_t oval_component_get_timedif_format_2(struct oval_component *);
03049 char *oval_component_get_regex_pattern(struct oval_component *);
03057 struct oval_value *oval_component_get_literal_value(struct oval_component *);
03063 bool oval_component_is_locked(struct oval_component *component);
03074 bool oval_component_iterator_has_more(struct oval_component_iterator *);
03080 struct oval_component *oval_component_iterator_next(struct oval_component_iterator *);
03085 void oval_component_iterator_free(struct oval_component_iterator *);
03090 int oval_component_iterator_remaining(struct oval_component_iterator *);
03145 bool oval_component_is_valid(struct oval_component *);
03156 bool oval_string_iterator_has_more(struct oval_string_iterator *);
03161 char *oval_string_iterator_next(struct oval_string_iterator *);
03166 int oval_string_iterator_remaining(struct oval_string_iterator *);
03171 void oval_string_iterator_free(struct oval_string_iterator *);
03178 #endif