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 #include <libxml/tree.h>
00045
00046
00052 typedef enum {
00053 OVAL_AFCFML_UNKNOWN = 0,
00054 OVAL_AFCFML_CATOS = 1,
00055 OVAL_AFCFML_IOS = 2,
00056 OVAL_AFCFML_MACOS = 3,
00057 OVAL_AFCFML_PIXOS = 4,
00058 OVAL_AFCFML_UNDEFINED = 5,
00059 OVAL_AFCFML_UNIX = 6,
00060 OVAL_AFCFML_WINDOWS = 7
00061 } oval_affected_family_t;
00062
00064 typedef enum {
00065 OVAL_NODETYPE_UNKNOWN = 0,
00066 OVAL_NODETYPE_CRITERIA = 1,
00067 OVAL_NODETYPE_CRITERION = 2,
00068 OVAL_NODETYPE_EXTENDDEF = 3
00069 } oval_criteria_node_type_t;
00070
00072 typedef enum {
00073 OVAL_OPERATOR_UNKNOWN = 0,
00074 OVAL_OPERATOR_AND = 1,
00075 OVAL_OPERATOR_ONE = 2,
00076 OVAL_OPERATOR_OR = 3,
00077 OVAL_OPERATOR_XOR = 4
00078 } oval_operator_t;
00079
00081 typedef enum {
00082 OVAL_OPERATION_UNKNOWN = 0,
00083 OVAL_OPERATION_EQUALS = 1,
00084 OVAL_OPERATION_NOT_EQUAL = 2,
00085 OVAL_OPERATION_CASE_INSENSITIVE_EQUALS = 3,
00086 OVAL_OPERATION_CASE_INSENSITIVE_NOT_EQUAL = 4,
00087 OVAL_OPERATION_GREATER_THAN = 5,
00088 OVAL_OPERATION_LESS_THAN = 6,
00089 OVAL_OPERATION_GREATER_THAN_OR_EQUAL = 7,
00090 OVAL_OPERATION_LESS_THAN_OR_EQUAL = 8,
00091 OVAL_OPERATION_BITWISE_AND = 9,
00092 OVAL_OPERATION_BITWISE_OR = 10,
00093 OVAL_OPERATION_PATTERN_MATCH = 11
00094 } oval_operation_t;
00095
00097 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,
00104 } oval_definition_class_t;
00105
00107 typedef enum {
00108 OVAL_EXISTENCE_UNKNOWN = 0,
00109 OVAL_ALL_EXIST = 1,
00110 OVAL_ANY_EXIST = 2,
00111 OVAL_AT_LEAST_ONE_EXISTS = 3,
00112 OVAL_ONLY_ONE_EXISTS = 4,
00113 OVAL_NONE_EXIST = 5
00114 } oval_existence_t;
00115
00117 typedef enum {
00118 OVAL_CHECK_UNKNOWN = 0,
00119 OVAL_CHECK_ALL = 1,
00120 OVAL_CHECK_AT_LEAST_ONE = 2,
00121 OVAL_CHECK_NONE_EXIST = 3,
00122 OVAL_CHECK_NONE_SATISFY = 4,
00123 OVAL_CHECK_ONLY_ONE = 5
00124 } oval_check_t;
00125
00127 typedef enum {
00128 OVAL_OBJECTCONTENT_UNKNOWN = 0,
00129 OVAL_OBJECTCONTENT_ENTITY = 1,
00130 OVAL_OBJECTCONTENT_SET = 2,
00131 OVAL_OBJECTCONTENT_FILTER = 3
00132 } oval_object_content_type_t;
00133
00135 typedef enum {
00136 OVAL_ENTITY_TYPE_UNKNOWN,
00137 OVAL_ENTITY_TYPE_ANY,
00138 OVAL_ENTITY_TYPE_BINARY,
00139 OVAL_ENTITY_TYPE_BOOLEAN,
00140 OVAL_ENTITY_TYPE_FLOAT,
00141 OVAL_ENTITY_TYPE_INTEGER,
00142 OVAL_ENTITY_TYPE_STRING,
00143 } oval_entity_type_t;
00144
00146 typedef enum {
00147 OVAL_FILTER_ACTION_UNKNOWN = 0,
00148 OVAL_FILTER_ACTION_EXCLUDE,
00149 OVAL_FILTER_ACTION_INCLUDE
00150 } oval_filter_action_t;
00151
00153 typedef enum {
00154 OVAL_DATATYPE_UNKNOWN = 0,
00155 OVAL_DATATYPE_BINARY = 1,
00156 OVAL_DATATYPE_BOOLEAN = 2,
00157 OVAL_DATATYPE_EVR_STRING = 3,
00158 OVAL_DATATYPE_FILESET_REVISION = 4,
00159 OVAL_DATATYPE_FLOAT = 5,
00160 OVAL_DATATYPE_IOS_VERSION = 6,
00161 OVAL_DATATYPE_VERSION = 7,
00162 OVAL_DATATYPE_INTEGER = 8,
00163 OVAL_DATATYPE_STRING = 9
00164 } oval_datatype_t;
00165
00167 typedef enum {
00168 OVAL_ENTITY_VARREF_UNKNOWN,
00169 OVAL_ENTITY_VARREF_NONE,
00170 OVAL_ENTITY_VARREF_ATTRIBUTE,
00171 OVAL_ENTITY_VARREF_ELEMENT
00172 } oval_entity_varref_type_t;
00173
00175 typedef enum {
00176 OVAL_SET_UNKNOWN,
00177 OVAL_SET_AGGREGATE,
00178 OVAL_SET_COLLECTIVE
00179 } oval_setobject_type_t;
00180
00182 typedef enum {
00183 OVAL_SET_OPERATION_UNKNOWN,
00184 OVAL_SET_OPERATION_COMPLEMENT = 1,
00185 OVAL_SET_OPERATION_INTERSECTION = 2,
00186 OVAL_SET_OPERATION_UNION = 3
00187 } oval_setobject_operation_t;
00188
00190 typedef enum {
00191 OVAL_VARIABLE_UNKNOWN,
00192 OVAL_VARIABLE_EXTERNAL,
00193 OVAL_VARIABLE_CONSTANT,
00194 OVAL_VARIABLE_LOCAL
00195 } oval_variable_type_t;
00196
00197 #define OVAL_FUNCTION 4
00198
00199 typedef enum {
00200 OVAL_COMPONENT_UNKNOWN = 0,
00201 OVAL_COMPONENT_LITERAL = 1,
00202 OVAL_COMPONENT_OBJECTREF = 2,
00203 OVAL_COMPONENT_VARREF = 3,
00204 OVAL_COMPONENT_FUNCTION = 4,
00205 OVAL_FUNCTION_BEGIN = OVAL_FUNCTION + 1,
00206 OVAL_FUNCTION_CONCAT = OVAL_FUNCTION + 2,
00207 OVAL_FUNCTION_END = OVAL_FUNCTION + 3,
00208 OVAL_FUNCTION_SPLIT = OVAL_FUNCTION + 4,
00209 OVAL_FUNCTION_SUBSTRING = OVAL_FUNCTION + 5,
00210 OVAL_FUNCTION_TIMEDIF = OVAL_FUNCTION + 6,
00211 OVAL_FUNCTION_ESCAPE_REGEX = OVAL_FUNCTION + 7,
00212 OVAL_FUNCTION_REGEX_CAPTURE = OVAL_FUNCTION + 8,
00213 OVAL_FUNCTION_ARITHMETIC = OVAL_FUNCTION + 9
00214 } oval_component_type_t;
00215
00217 typedef enum {
00218 OVAL_ARITHMETIC_UNKNOWN = 0,
00219 OVAL_ARITHMETIC_ADD = 1,
00220 OVAL_ARITHMETIC_MULTIPLY = 2,
00221 OVAL_ARITHMETIC_SUBTRACT = 3,
00222 OVAL_ARITHMETIC_DIVIDE = 4
00223 } oval_arithmetic_operation_t;
00224
00226 typedef enum {
00227 OVAL_DATETIME_UNKNOWN = 0,
00228 OVAL_DATETIME_YEAR_MONTH_DAY = 1,
00229 OVAL_DATETIME_MONTH_DAY_YEAR = 2,
00230 OVAL_DATETIME_DAY_MONTH_YEAR = 3,
00231 OVAL_DATETIME_WIN_FILETIME = 4,
00232 OVAL_DATETIME_SECONDS_SINCE_EPOCH = 5
00233 } oval_datetime_format_t;
00234
00235
00239 oval_family_t oval_subtype_get_family(oval_subtype_t);
00240 const char *oval_operator_get_text(oval_operator_t);
00241 const char *oval_subtype_get_text(oval_subtype_t);
00242 const char *oval_family_get_text(oval_family_t);
00243 const char *oval_check_get_text(oval_check_t);
00244 const char *oval_existence_get_text(oval_existence_t);
00245 const char *oval_affected_family_get_text(oval_affected_family_t);
00246 const char *oval_datatype_get_text(oval_datatype_t);
00247 const char *oval_operation_get_text(oval_operation_t);
00248 const char *oval_set_operation_get_text(oval_setobject_operation_t);
00249 const char *oval_datetime_format_get_text(oval_datetime_format_t);
00250 const char *oval_arithmetic_operation_get_text(oval_arithmetic_operation_t);
00251
00252
00257 struct oval_definition_model;
00258
00265 struct oval_definition;
00270 struct oval_definition_iterator;
00276 struct oval_test;
00281 struct oval_test_iterator;
00290 struct oval_object;
00295 struct oval_object_iterator;
00302 struct oval_state;
00307 struct oval_state_iterator;
00322 struct oval_variable;
00327 struct oval_variable_iterator;
00348 struct oval_affected;
00353 struct oval_affected_iterator;
00361 struct oval_reference;
00366 struct oval_reference_iterator;
00375 struct oval_criteria_node;
00380 struct oval_criteria_node_iterator;
00385 struct oval_object_content;
00390 struct oval_object_content_iterator;
00395 struct oval_behavior;
00400 struct oval_behavior_iterator;
00405 struct oval_state_content;
00410 struct oval_state_content_iterator;
00415 struct oval_value;
00420 struct oval_value_iterator;
00425 struct oval_entity;
00429 struct oval_entity_iterator;
00434 struct oval_setobject;
00439 struct oval_setobject_iterator;
00444 struct oval_filter;
00448 struct oval_filter_iterator;
00546 struct oval_component;
00551 struct oval_component_iterator;
00561 struct oval_string_iterator;
00562
00566 struct oval_generator;
00567
00568 struct oval_generator *oval_generator_new(void);
00569 void oval_generator_free(struct oval_generator *generator);
00570 struct oval_generator *oval_generator_clone(struct oval_generator *old_generator);
00571 char *oval_generator_get_product_name(struct oval_generator *generator);
00572 char *oval_generator_get_product_version(struct oval_generator *generator);
00573 char *oval_generator_get_schema_version(struct oval_generator *generator);
00574 char *oval_generator_get_timestamp(struct oval_generator *generator);
00575 bool oval_generator_is_valid(struct oval_generator *generator);
00576 void oval_generator_set_product_name(struct oval_generator *generator, char *product_name);
00577 void oval_generator_set_product_version(struct oval_generator *generator, char *product_version);
00578 void oval_generator_set_schema_version(struct oval_generator *generator, char *schema_version);
00579 void oval_generator_set_timestamp(struct oval_generator *generator, char *timestamp);
00580
00585 struct oval_definition_model *oval_definition_model_new(void);
00592 struct oval_definition_model * oval_definition_model_import(const char *file);
00593
00602 int oval_definition_model_merge(struct oval_definition_model *model, const char *file);
00603
00609 struct oval_definition_model *oval_definition_model_clone(struct oval_definition_model *);
00615 int oval_definition_model_export(struct oval_definition_model *, const char *file);
00620 void oval_definition_model_free(struct oval_definition_model *model);
00621
00626 void oval_definition_model_set_generator(struct oval_definition_model *model, struct oval_generator *generator);
00632 int oval_definition_model_bind_variable_model(struct oval_definition_model *, struct oval_variable_model *);
00633
00634 void oval_definition_model_clear_external_variables(struct oval_definition_model *);
00641 void oval_definition_model_lock(struct oval_definition_model *definition_model);
00648 struct oval_generator *oval_definition_model_get_generator(struct oval_definition_model *model);
00656 struct oval_definition *oval_definition_model_get_definition(struct oval_definition_model *, const char *id);
00665 struct oval_test *oval_definition_model_get_test(struct oval_definition_model *model, const char *id);
00674 struct oval_object *oval_definition_model_get_object(struct oval_definition_model *model, const char *id);
00683 struct oval_state *oval_definition_model_get_state(struct oval_definition_model *model, const char *id);
00692 struct oval_variable *oval_definition_model_get_variable(struct oval_definition_model *model, const char *id);
00697 struct oval_definition_iterator *oval_definition_model_get_definitions(struct oval_definition_model *model);
00704 struct oval_test_iterator *oval_definition_model_get_tests(struct oval_definition_model *model);
00711 struct oval_object_iterator *oval_definition_model_get_objects(struct oval_definition_model *model);
00718 struct oval_state_iterator *oval_definition_model_get_states(struct oval_definition_model *model);
00725 struct oval_variable_iterator *oval_definition_model_get_variables(struct oval_definition_model *model);
00731 bool oval_definition_model_is_locked(struct oval_definition_model *definition_model);
00732
00738 const char * oval_definition_model_supported(void);
00755 bool oval_definition_model_is_valid(struct oval_definition_model *definition_model);
00774 struct oval_definition *oval_definition_new(struct oval_definition_model *, const char *id);
00775
00781 struct oval_definition *oval_definition_clone(struct oval_definition_model *new_model, struct oval_definition *old_definition);
00782
00792 void oval_definition_free(struct oval_definition *);
00793
00805 void oval_definition_set_version(struct oval_definition *, int version);
00813 void oval_definition_set_class(struct oval_definition *, oval_definition_class_t);
00819 void oval_definition_set_deprecated(struct oval_definition *, bool deprecated);
00827 void oval_definition_set_title(struct oval_definition *, char *title);
00835 void oval_definition_set_description(struct oval_definition *, char *description);
00846 void oval_definition_add_affected(struct oval_definition *, struct oval_affected *affected);
00857 void oval_definition_add_reference(struct oval_definition *, struct oval_reference *reference);
00863 void oval_definition_add_note(struct oval_definition *, char *note);
00877 void oval_definition_set_criteria(struct oval_definition *, struct oval_criteria_node *criteria);
00888 char *oval_definition_get_id(struct oval_definition *);
00894 int oval_definition_get_version(struct oval_definition *);
00899 oval_definition_class_t oval_definition_get_class(struct oval_definition *);
00904 bool oval_definition_get_deprecated(struct oval_definition *);
00910 char *oval_definition_get_title(struct oval_definition *);
00916 char *oval_definition_get_description(struct oval_definition *);
00923 struct oval_affected_iterator *oval_definition_get_affected(struct oval_definition *);
00930 struct oval_reference_iterator *oval_definition_get_references(struct oval_definition *);
00937 struct oval_string_iterator *oval_definition_get_notes(struct oval_definition *);
00944 xmlNode *oval_definition_get_metadata(struct oval_definition *);
00950 struct oval_criteria_node *oval_definition_get_criteria(struct oval_definition *);
00956 bool oval_definition_is_locked(struct oval_definition *definition);
00957
00970 bool oval_definition_is_valid(struct oval_definition *definition);
00981 bool oval_definition_iterator_has_more(struct oval_definition_iterator *);
00987 struct oval_definition *oval_definition_iterator_next(struct oval_definition_iterator *);
00992 void oval_definition_iterator_free(struct oval_definition_iterator *);
01015 struct oval_test *oval_test_new(struct oval_definition_model *, const char *id);
01021 struct oval_test *oval_test_clone(struct oval_definition_model *new_model, struct oval_test *old_test);
01026 void oval_test_free(struct oval_test *);
01027
01041 void oval_test_set_subtype(struct oval_test *, oval_subtype_t subtype);
01047 void oval_test_add_note(struct oval_test *, char *note);
01053 void oval_test_set_comment(struct oval_test *, char *comment);
01058 void oval_test_set_deprecated(struct oval_test *, bool deprecated);
01067 void oval_test_set_version(struct oval_test *, int version);
01072 void oval_test_set_state_operator(struct oval_test *, oval_operator_t);
01081 void oval_test_set_existence(struct oval_test *, oval_existence_t);
01091 void oval_test_set_check(struct oval_test *, oval_check_t);
01100 void oval_test_set_object(struct oval_test *, struct oval_object *);
01106 void oval_test_add_state(struct oval_test *, struct oval_state *);
01117 oval_family_t oval_test_get_family(struct oval_test *);
01122 oval_subtype_t oval_test_get_subtype(struct oval_test *);
01129 struct oval_string_iterator *oval_test_get_notes(struct oval_test *);
01135 char *oval_test_get_comment(struct oval_test *);
01141 char *oval_test_get_id(struct oval_test *);
01146 bool oval_test_get_deprecated(struct oval_test *);
01151 int oval_test_get_version(struct oval_test *);
01156 oval_operator_t oval_test_get_state_operator(struct oval_test *);
01161 oval_existence_t oval_test_get_existence(struct oval_test *);
01166 oval_check_t oval_test_get_check(struct oval_test *);
01172 struct oval_object *oval_test_get_object(struct oval_test *);
01179 struct oval_state_iterator *oval_test_get_states(struct oval_test *);
01185 bool oval_test_is_locked(struct oval_test *test);
01186
01202 bool oval_test_is_valid(struct oval_test *);
01213 bool oval_test_iterator_has_more(struct oval_test_iterator *);
01218 struct oval_test *oval_test_iterator_next(struct oval_test_iterator *);
01223 void oval_test_iterator_free(struct oval_test_iterator *);
01244 struct oval_object *oval_object_new(struct oval_definition_model *, const char *id);
01250 struct oval_object *oval_object_clone(struct oval_definition_model *new_model, struct oval_object *old_object);
01255 void oval_object_free(struct oval_object *);
01256
01270 void oval_object_set_subtype(struct oval_object *, oval_subtype_t subtype);
01276 void oval_object_add_note(struct oval_object *, char *note);
01277
01283 void oval_object_set_comment(struct oval_object *, char *comment);
01284
01289 void oval_object_set_deprecated(struct oval_object *, bool deprecated);
01298 void oval_object_set_version(struct oval_object *, int version);
01311 void oval_object_add_object_content(struct oval_object *, struct oval_object_content *content);
01324 void oval_object_add_behavior(struct oval_object *, struct oval_behavior *behavior);
01335 oval_family_t oval_object_get_family(struct oval_object *);
01341 const char *oval_object_get_name(struct oval_object *);
01346 oval_subtype_t oval_object_get_subtype(struct oval_object *);
01353 struct oval_string_iterator *oval_object_get_notes(struct oval_object *);
01359 char *oval_object_get_comment(struct oval_object *);
01365 char *oval_object_get_id(struct oval_object *);
01366
01371 bool oval_object_get_deprecated(struct oval_object *);
01376 int oval_object_get_version(struct oval_object *);
01383 struct oval_object_content_iterator *oval_object_get_object_contents(struct oval_object *);
01390 struct oval_behavior_iterator *oval_object_get_behaviors(struct oval_object *);
01396 bool oval_object_is_locked(struct oval_object *object);
01410 bool oval_object_is_valid(struct oval_object *object);
01421 bool oval_object_iterator_has_more(struct oval_object_iterator *);
01426 struct oval_object *oval_object_iterator_next(struct oval_object_iterator *);
01431 void oval_object_iterator_free(struct oval_object_iterator *);
01452 struct oval_state *oval_state_new(struct oval_definition_model *, const char *id);
01458 struct oval_state *oval_state_clone(struct oval_definition_model *new_model, struct oval_state *old_state);
01463 void oval_state_free(struct oval_state *);
01464
01478 void oval_state_set_subtype(struct oval_state *, oval_subtype_t subtype);
01484 void oval_state_add_note(struct oval_state *, char *note);
01490 void oval_state_set_comment(struct oval_state *, char *comment);
01495 void oval_state_set_deprecated(struct oval_state *, bool deprecated);
01504 void oval_state_set_version(struct oval_state *, int version);
01509 void oval_state_set_operator(struct oval_state *, oval_operator_t);
01522 void oval_state_add_content(struct oval_state *, struct oval_state_content *content);
01533 oval_family_t oval_state_get_family(struct oval_state *);
01539 const char *oval_state_get_name(struct oval_state *);
01544 oval_subtype_t oval_state_get_subtype(struct oval_state *);
01551 struct oval_string_iterator *oval_state_get_notes(struct oval_state *);
01557 char *oval_state_get_comment(struct oval_state *);
01563 char *oval_state_get_id(struct oval_state *);
01568 bool oval_state_get_deprecated(struct oval_state *);
01573 int oval_state_get_version(struct oval_state *);
01578 int oval_state_get_operator(struct oval_state *);
01585 struct oval_state_content_iterator *oval_state_get_contents(struct oval_state *);
01591 bool oval_state_is_locked(struct oval_state *state);
01602 bool oval_state_iterator_has_more(struct oval_state_iterator *);
01607 struct oval_state *oval_state_iterator_next(struct oval_state_iterator *);
01612 void oval_state_iterator_free(struct oval_state_iterator *);
01625 bool oval_state_is_valid(struct oval_state *state);
01652 struct oval_variable *oval_variable_new(struct oval_definition_model *model, const char *id, oval_variable_type_t type);
01658 struct oval_variable *oval_variable_clone(struct oval_definition_model *new_model, struct oval_variable *old_variable);
01663 void oval_variable_free(struct oval_variable *);
01664
01676 void oval_variable_set_comment(struct oval_variable *, char *comment);
01684 void oval_variable_set_version(struct oval_variable *, int version);
01690 void oval_variable_set_deprecated(struct oval_variable *, bool deprecated);
01698 void oval_variable_set_datatype(struct oval_variable *, oval_datatype_t);
01712 void oval_variable_add_value(struct oval_variable *, struct oval_value *);
01713
01714 void oval_variable_clear_values(struct oval_variable *);
01727 void oval_variable_set_component(struct oval_variable *, struct oval_component *component);
01739 char *oval_variable_get_id(struct oval_variable *);
01745 char *oval_variable_get_comment(struct oval_variable *);
01750 int oval_variable_get_version(struct oval_variable *);
01755 bool oval_variable_get_deprecated(struct oval_variable *);
01760 oval_variable_type_t oval_variable_get_type(struct oval_variable *);
01765 oval_datatype_t oval_variable_get_datatype(struct oval_variable *);
01773 struct oval_value_iterator *oval_variable_get_values(struct oval_variable *);
01780 struct oval_component *oval_variable_get_component(struct oval_variable *);
01785 const char *oval_component_type_get_text(oval_component_type_t type);
01791 bool oval_variable_is_locked(struct oval_variable *variable);
01802 bool oval_variable_iterator_has_more(struct oval_variable_iterator *);
01807 struct oval_variable *oval_variable_iterator_next(struct oval_variable_iterator *);
01812 void oval_variable_iterator_free(struct oval_variable_iterator *);
01833 bool oval_variable_is_valid(struct oval_variable *);
01840 struct oval_affected *oval_affected_new(struct oval_definition_model *);
01846 struct oval_affected *oval_affected_clone(struct oval_definition_model *new_model, struct oval_affected *old_affected);
01851 void oval_affected_free(struct oval_affected *);
01852
01861 void oval_affected_set_family(struct oval_affected *, oval_affected_family_t family);
01866 void oval_affected_add_platform(struct oval_affected *, char *platform_name);
01871 void oval_affected_add_product(struct oval_affected *, char *product_name);
01884 oval_affected_family_t oval_affected_get_family(struct oval_affected *);
01892 struct oval_string_iterator *oval_affected_get_platforms(struct oval_affected *);
01900 struct oval_string_iterator *oval_affected_get_products(struct oval_affected *);
01906 bool oval_affected_is_locked(struct oval_affected *);
01917 bool oval_affected_is_valid(struct oval_affected *);
01928 bool oval_affected_iterator_has_more(struct oval_affected_iterator *);
01933 struct oval_affected *oval_affected_iterator_next(struct oval_affected_iterator *);
01938 void oval_affected_iterator_free(struct oval_affected_iterator *);
01944 struct oval_reference *oval_reference_new(struct oval_definition_model *);
01949 struct oval_reference *oval_reference_clone
01950 (struct oval_definition_model *new_model, struct oval_reference *old_reference);
01954 void oval_reference_free(struct oval_reference *);
01955
01965 void oval_reference_set_source(struct oval_reference *, char *);
01969 void oval_reference_set_id(struct oval_reference *, char *);
01973 void oval_reference_set_url(struct oval_reference *, char *);
01985 char *oval_reference_get_source(struct oval_reference *);
01991 char *oval_reference_get_id(struct oval_reference *);
01997 char *oval_reference_get_url(struct oval_reference *);
02003 bool oval_reference_is_locked(struct oval_reference *reference);
02013 bool oval_reference_iterator_has_more(struct oval_reference_iterator *);
02017 struct oval_reference *oval_reference_iterator_next(struct oval_reference_iterator *);
02021 void oval_reference_iterator_free(struct oval_reference_iterator *);
02032 bool oval_reference_is_valid(struct oval_reference *reference);
02055 struct oval_criteria_node *oval_criteria_node_new(struct oval_definition_model *, oval_criteria_node_type_t type);
02061 struct oval_criteria_node *oval_criteria_node_clone
02062 (struct oval_definition_model *new_model, struct oval_criteria_node *old_node);
02067 void oval_criteria_node_free(struct oval_criteria_node *);
02068
02078 void oval_criteria_node_set_negate(struct oval_criteria_node *, bool negate);
02084 void oval_criteria_set_node_type(struct oval_criteria_node *node, oval_criteria_node_type_t type);
02090 void oval_criteria_node_set_comment(struct oval_criteria_node *, char *comment);
02098 void oval_criteria_node_set_operator(struct oval_criteria_node *, oval_operator_t op);
02109 void oval_criteria_node_add_subnode(struct oval_criteria_node *, struct oval_criteria_node *node);
02117 void oval_criteria_node_set_test(struct oval_criteria_node *, struct oval_test *);
02125 void oval_criteria_node_set_definition(struct oval_criteria_node *, struct oval_definition *);
02136 oval_criteria_node_type_t oval_criteria_node_get_type(struct oval_criteria_node *);
02141 bool oval_criteria_node_get_negate(struct oval_criteria_node *);
02147 char *oval_criteria_node_get_comment(struct oval_criteria_node *);
02153 oval_operator_t oval_criteria_node_get_operator(struct oval_criteria_node *);
02161 struct oval_criteria_node_iterator *oval_criteria_node_get_subnodes(struct oval_criteria_node *);
02168 struct oval_test *oval_criteria_node_get_test(struct oval_criteria_node *);
02175 struct oval_definition *oval_criteria_node_get_definition(struct oval_criteria_node *);
02181 bool oval_criteria_node_is_locked(struct oval_criteria_node *);
02192 bool oval_criteria_node_iterator_has_more(struct oval_criteria_node_iterator *);
02198 struct oval_criteria_node *oval_criteria_node_iterator_next(struct oval_criteria_node_iterator *);
02203 void oval_criteria_node_iterator_free(struct oval_criteria_node_iterator *);
02222 bool oval_criteria_node_is_valid(struct oval_criteria_node *);
02228 struct oval_object_content *oval_object_content_new(struct oval_definition_model *model, oval_object_content_type_t type);
02229
02234 struct oval_object_content *oval_object_content_clone
02235 (struct oval_definition_model *new_model, struct oval_object_content *old_content);
02236
02240 void oval_object_content_free(struct oval_object_content *);
02241
02250 void oval_object_content_set_type(struct oval_object_content *, oval_object_content_type_t);
02254 void oval_object_content_set_field_name(struct oval_object_content *, char *);
02258 void oval_object_content_set_entity(struct oval_object_content *, struct oval_entity *);
02262 void oval_object_content_set_varCheck(struct oval_object_content *, oval_check_t);
02266 void oval_object_content_set_setobject(struct oval_object_content *, struct oval_setobject *);
02278 char *oval_object_content_get_field_name(struct oval_object_content *);
02283 oval_object_content_type_t oval_object_content_get_type(struct oval_object_content *);
02289 struct oval_entity *oval_object_content_get_entity(struct oval_object_content *);
02294 oval_check_t oval_object_content_get_varCheck(struct oval_object_content *);
02300 struct oval_setobject *oval_object_content_get_setobject(struct oval_object_content *);
02306 bool oval_object_content_is_locked(struct oval_object_content *object_content);
02316 bool oval_object_content_iterator_has_more(struct oval_object_content_iterator *);
02320 struct oval_object_content *oval_object_content_iterator_next(struct oval_object_content_iterator *);
02324 void oval_object_content_iterator_free(struct oval_object_content_iterator *);
02340 bool oval_object_content_is_valid(struct oval_object_content *object_content);
02346 struct oval_behavior *oval_behavior_new(struct oval_definition_model *);
02347
02352 struct oval_behavior *oval_behavior_clone(struct oval_definition_model *new_model, struct oval_behavior *old_behavior);
02356 void oval_behavior_free(struct oval_behavior *);
02357
02365 void oval_behavior_set_keyval(struct oval_behavior *behavior, const char *key, const char *value);
02377 char *oval_behavior_get_key(struct oval_behavior *);
02383 char *oval_behavior_get_value(struct oval_behavior *);
02389 bool oval_behavior_is_locked(struct oval_behavior *behavior);
02399 bool oval_behavior_iterator_has_more(struct oval_behavior_iterator *);
02403 struct oval_behavior *oval_behavior_iterator_next(struct oval_behavior_iterator *);
02407 void oval_behavior_iterator_free(struct oval_behavior_iterator *);
02418 bool oval_behavior_is_valid(struct oval_behavior *behavior);
02424 struct oval_state_content *oval_state_content_new(struct oval_definition_model *);
02429 struct oval_state_content *oval_state_content_clone (struct oval_definition_model *new_model, struct oval_state_content *old_content);
02433 void oval_state_content_free(struct oval_state_content *);
02434
02442 void oval_state_content_set_entity(struct oval_state_content *, struct oval_entity *);
02446 void oval_state_content_set_varcheck(struct oval_state_content *, oval_check_t);
02450 void oval_state_content_set_entcheck(struct oval_state_content *, oval_check_t);
02462 struct oval_entity *oval_state_content_get_entity(struct oval_state_content *);
02467 oval_check_t oval_state_content_get_var_check(struct oval_state_content *);
02472 oval_check_t oval_state_content_get_ent_check(struct oval_state_content *);
02478 bool oval_state_content_is_locked(struct oval_state_content *);
02489 bool oval_state_content_iterator_has_more(struct oval_state_content_iterator *);
02493 struct oval_state_content *oval_state_content_iterator_next(struct oval_state_content_iterator *);
02497 void oval_state_content_iterator_free(struct oval_state_content_iterator *);
02503 struct oval_value *oval_value_new(oval_datatype_t datatype, char *text_value);
02508 struct oval_value *oval_value_clone(struct oval_value *old_value);
02512 void oval_value_free(struct oval_value *);
02513
02522 oval_datatype_t oval_value_get_datatype(struct oval_value *);
02528 char *oval_value_get_text(struct oval_value *);
02533 unsigned char *oval_value_get_binary(struct oval_value *);
02538 bool oval_value_get_boolean(struct oval_value *);
02543 float oval_value_get_float(struct oval_value *);
02548 long oval_value_get_integer(struct oval_value *);
02554 bool oval_value_is_locked(struct oval_value *value);
02564 bool oval_value_iterator_has_more(struct oval_value_iterator *);
02568 struct oval_value *oval_value_iterator_next(struct oval_value_iterator *);
02572 int oval_value_iterator_remaining(struct oval_value_iterator *iterator);
02576 void oval_value_iterator_free(struct oval_value_iterator *);
02587 bool oval_value_is_valid(struct oval_value *value);
02593 struct oval_entity *oval_entity_new(struct oval_definition_model *);
02598 struct oval_entity *oval_entity_clone(struct oval_definition_model *model, struct oval_entity *old_entity);
02602 void oval_entity_free(struct oval_entity *);
02603
02611 void oval_entity_set_type(struct oval_entity *, oval_entity_type_t);
02615 void oval_entity_set_datatype(struct oval_entity *, oval_datatype_t);
02619 void oval_entity_set_mask(struct oval_entity *, int);
02623 void oval_entity_set_varref_type(struct oval_entity *, oval_entity_varref_type_t);
02627 void oval_entity_set_variable(struct oval_entity *, struct oval_variable *);
02631 void oval_entity_set_value(struct oval_entity *, struct oval_value *);
02635 void oval_entity_set_name(struct oval_entity *, char *);
02639 void oval_entity_set_operation(struct oval_entity *, oval_operation_t);
02651 char *oval_entity_get_name(struct oval_entity *);
02656 oval_entity_type_t oval_entity_get_type(struct oval_entity *);
02661 oval_datatype_t oval_entity_get_datatype(struct oval_entity *);
02666 oval_operation_t oval_entity_get_operation(struct oval_entity *);
02672 struct oval_variable *oval_entity_get_variable(struct oval_entity *);
02678 struct oval_value *oval_entity_get_value(struct oval_entity *);
02683 int oval_entity_get_mask(struct oval_entity *);
02688 oval_entity_varref_type_t oval_entity_get_varref_type(struct oval_entity *);
02694 bool oval_entity_is_locked(struct oval_entity *entity);
02704 bool oval_entity_iterator_has_more(struct oval_entity_iterator *);
02708 struct oval_entity *oval_entity_iterator_next(struct oval_entity_iterator *);
02712 void oval_entity_iterator_free(struct oval_entity_iterator *);
02723 bool oval_entity_is_valid(struct oval_entity *entity);
02729 struct oval_filter *oval_filter_new(struct oval_definition_model *);
02733 void oval_filter_free(struct oval_filter *);
02737 struct oval_filter *oval_filter_clone(struct oval_definition_model *, struct oval_filter *);
02738
02746 void oval_filter_set_state(struct oval_filter *, struct oval_state *);
02750 void oval_filter_set_filter_action(struct oval_filter *, oval_filter_action_t );
02760 bool oval_filter_is_locked(struct oval_filter *);
02764 struct oval_state *oval_filter_get_state(struct oval_filter *);
02768 oval_filter_action_t oval_filter_get_filter_action(struct oval_filter *);
02778 bool oval_filter_iterator_has_more(struct oval_filter_iterator *);
02782 struct oval_filter *oval_filter_iterator_next(struct oval_filter_iterator *);
02786 void oval_filter_iterator_free(struct oval_filter_iterator *);
02796 bool oval_filter_is_valid(struct oval_filter *);
02802 struct oval_setobject *oval_setobject_new(struct oval_definition_model *);
02807 struct oval_setobject *oval_setobject_clone(struct oval_definition_model *new_model, struct oval_setobject *old_setobject);
02811 void oval_setobject_free(struct oval_setobject *);
02812
02819 void oval_setobject_set_type(struct oval_setobject *, oval_setobject_type_t);
02823 void oval_setobject_set_operation(struct oval_setobject *, oval_setobject_operation_t);
02827 void oval_setobject_add_subset(struct oval_setobject *, struct oval_setobject *);
02831 void oval_setobject_add_object(struct oval_setobject *, struct oval_object *);
02835 void oval_setobject_add_filter(struct oval_setobject *, struct oval_filter *);
02846 oval_setobject_type_t oval_setobject_get_type(struct oval_setobject *);
02851 oval_setobject_operation_t oval_setobject_get_operation(struct oval_setobject *);
02859 struct oval_setobject_iterator *oval_setobject_get_subsets(struct oval_setobject *);
02867 struct oval_object_iterator *oval_setobject_get_objects(struct oval_setobject *);
02875 struct oval_filter_iterator *oval_setobject_get_filters(struct oval_setobject *);
02881 bool oval_setobject_is_locked(struct oval_setobject *setobject);
02891 bool oval_setobject_iterator_has_more(struct oval_setobject_iterator *);
02895 struct oval_setobject *oval_setobject_iterator_next(struct oval_setobject_iterator *);
02899 void oval_setobject_iterator_free(struct oval_setobject_iterator *);
02919 bool oval_setobject_is_valid(struct oval_setobject *setobject);
02963 struct oval_component *oval_component_new(struct oval_definition_model *, oval_component_type_t type);
02969 struct oval_component *oval_component_clone(struct oval_definition_model *new_model,
02970 struct oval_component *old_component);
02975 void oval_component_free(struct oval_component *);
02976
02985 void oval_component_set_type(struct oval_component *component, oval_component_type_t type);
02991 void oval_component_set_object(struct oval_component *, struct oval_object *object);
02998 void oval_component_set_object_field(struct oval_component *, char *field);
03004 void oval_component_set_variable(struct oval_component *, struct oval_variable *variable);
03011 void oval_component_add_function_component(struct oval_component *, struct oval_component *);
03015 void oval_component_set_arithmetic_operation(struct oval_component *, oval_arithmetic_operation_t);
03019 void oval_component_set_prefix(struct oval_component *, char *);
03023 void oval_component_set_suffix(struct oval_component *, char *);
03027 void oval_component_set_split_delimiter(struct oval_component *, char *);
03031 void oval_component_set_substring_start(struct oval_component *, int);
03035 void oval_component_set_substring_length(struct oval_component *, int);
03039 void oval_component_set_timedif_format_1(struct oval_component *, oval_datetime_format_t);
03043 void oval_component_set_timedif_format_2(struct oval_component *, oval_datetime_format_t);
03047 void oval_component_set_regex_pattern(struct oval_component *, char *);
03051 void oval_component_set_literal_value(struct oval_component *, struct oval_value *);
03062 oval_component_type_t oval_component_get_type(struct oval_component *);
03070 struct oval_object *oval_component_get_object(struct oval_component *);
03078 char *oval_component_get_object_field(struct oval_component *);
03086 struct oval_variable *oval_component_get_variable(struct oval_component *);
03094 struct oval_component_iterator *oval_component_get_function_components(struct oval_component *);
03100 oval_arithmetic_operation_t oval_component_get_arithmetic_operation(struct oval_component *);
03108 char *oval_component_get_prefix(struct oval_component *);
03116 char *oval_component_get_suffix(struct oval_component *);
03124 char *oval_component_get_split_delimiter(struct oval_component *);
03130 int oval_component_get_substring_start(struct oval_component *);
03136 int oval_component_get_substring_length(struct oval_component *);
03142 oval_datetime_format_t oval_component_get_timedif_format_1(struct oval_component *);
03148 oval_datetime_format_t oval_component_get_timedif_format_2(struct oval_component *);
03156 char *oval_component_get_regex_pattern(struct oval_component *);
03164 struct oval_value *oval_component_get_literal_value(struct oval_component *);
03170 bool oval_component_is_locked(struct oval_component *component);
03181 bool oval_component_iterator_has_more(struct oval_component_iterator *);
03187 struct oval_component *oval_component_iterator_next(struct oval_component_iterator *);
03192 void oval_component_iterator_free(struct oval_component_iterator *);
03197 int oval_component_iterator_remaining(struct oval_component_iterator *);
03252 bool oval_component_is_valid(struct oval_component *);
03263 bool oval_string_iterator_has_more(struct oval_string_iterator *);
03268 char *oval_string_iterator_next(struct oval_string_iterator *);
03273 int oval_string_iterator_remaining(struct oval_string_iterator *);
03278 void oval_string_iterator_free(struct oval_string_iterator *);
03285 #endif